Skip to content

Commit b74f7df

Browse files
committed
Update layout and naming within traceview
1 parent 8a98bf3 commit b74f7df

File tree

15 files changed

+106
-74
lines changed

15 files changed

+106
-74
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2024 ArDoCo
3+
Copyright (c) 2024 - 2025 ardoco
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

package-lock.json

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"next": "^15.3.3",
1818
"react": "^19.0.0",
1919
"react-dom": "^19.0.0",
20+
"react-icons": "^5.5.0",
2021
"react-resizable-panels": "^2.1.7",
2122
"uuid": "^11.1.0"
2223
},

src/app/layout.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ const inter = Inter({subsets: ['latin']});
1313

1414

1515
export const metadata: Metadata = { // those metadatas are the ones that are used for every page in the application. They can be overridden on a page by page basis.
16-
title: ' ArDoCo TraceView 2',
17-
description: 'Is a web application for ARDoCo to visualize tracelinks and inconsistencies between software architecture models and documentation.',
16+
title: ' ARDoCo TraceView',
17+
description: 'Is a web application for ardoco to visualize tracelinks and inconsistencies between software architecture models and documentation.',
1818
icons: {
1919
icon: '/ardoco-logo.png',
2020
}

src/app/page.tsx

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function HeroContent() {
3030
return (
3131
<div className="text-center">
3232
<h1 className="text-balance text-5xl font-semibold tracking-tight text-gray-900 sm:text-7xl">
33-
ArDoCo Trace View
33+
ARDoCo Trace View
3434
</h1>
3535
<div className="mt-10 flex items-center justify-center gap-x-6">
3636
<Link
@@ -40,7 +40,7 @@ function HeroContent() {
4040
Start
4141
</Link>
4242
<Link href="https://ardoco.de/" className=" font-semibold text-black-600 hover:text-black">
43-
About ArDoCo <span></span>
43+
About <span></span>
4444
</Link>
4545
</div>
4646
</div>
@@ -50,33 +50,37 @@ function HeroContent() {
5050
// About Section Component
5151
function AboutSection() {
5252
return (
53-
<div className="flex items-center justify-center gap-x-6 dark:text-white px-12 pb-12 lg:px-16 flex-col">
54-
<h2 className="text-left py-4 text-xl self-start">ArDoCo - Architecture Documentation Consistency</h2>
55-
<p className="py-2">
56-
In this research project, we aim to provide consistency analyses between different kinds of
57-
documentation, namely formal models and informal (textual) documentation.
58-
</p>
59-
<p className="py-2">
60-
Documenting the architecture of a software system is important, especially to capture reasoning
61-
and design decisions. A lot of tacit knowledge is easily lost when the documentation is
62-
incomplete, resulting in threats for the software system’s success and increased costs. However,
63-
software architecture documentation is often missing or outdated. One explanation for this
64-
phenomenon is the tedious and costly process of creating documentation in comparison to
65-
(perceived) low benefits. With our project, we want to step forward in our long-term vision,
66-
where we plan to persist information from any sources, e.g., from whiteboard discussions, to
67-
avoid losing crucial information about a system. A core problem in this vision is the possible
68-
inconsistency of information from different sources. A major challenge of ensuring consistency
69-
is the consistency between formal artefacts, i.e., models, and informal documentation. We plan to
70-
address consistency analyses between models and textual natural language artefacts using natural
71-
language understanding and plan to include knowledge bases to improve these analyses. After
72-
extracting information out of the natural language documents, we plan to create traceability
73-
links and check whether statements within the textual documentation are consistent with the
74-
software architecture models.
75-
</p>
76-
<p className="py-2">
77-
ArDoCo is actively developed by researchers of the Modelling for Continuous Software Engineering
78-
(MCSE) group of KASTEL - Institute of Information Security and Dependability at the KIT.
79-
</p>
53+
<div className="flex justify-center dark:text-white px-6 sm:px-12 pb-12 lg:px-16">
54+
<div className="w-full max-w-5xl text-left bg-gray-100/70 dark:bg-gray-800/60 rounded-lg p-6 sm:p-8 shadow-sm">
55+
<h2 className="py-4 text-xl">ARDoCo - Automating Requirements and Documentation Comprehension</h2>
56+
<p className="py-2">
57+
In this research project, we aim to provide consistency analyses between different kinds of
58+
documentation, namely formal models and informal (textual) documentation.
59+
</p>
60+
<p className="py-2">
61+
Documenting the architecture of a software system is important, especially to capture reasoning
62+
and design decisions. A lot of tacit knowledge is easily lost when the documentation is
63+
incomplete, resulting in threats for the software system’s success and increased costs. However,
64+
software architecture documentation is often missing or outdated. One explanation for this
65+
phenomenon is the tedious and costly process of creating documentation in comparison to
66+
(perceived) low benefits. With our project, we want to step forward in our long-term vision,
67+
where we plan to persist information from any sources, e.g., from whiteboard discussions, to
68+
avoid losing crucial information about a system. A core problem in this vision is the possible
69+
inconsistency of information from different sources. A major challenge of ensuring consistency
70+
is the consistency between formal artefacts, i.e., models, and informal documentation. We plan to
71+
address consistency analyses between models and textual natural language artefacts using natural
72+
language understanding and plan to include knowledge bases to improve these analyses. After
73+
extracting information out of the natural language documents, we plan to create traceability
74+
links and check whether statements within the textual documentation are consistent with the
75+
software architecture models.
76+
</p>
77+
<p className="py-2">
78+
ARDoCo is actively developed by researchers of the{' '}
79+
<Link href="https://mcse.kastel.kit.edu/" className="underline underline-offset-2 hover:opacity-80">Modelling for Continuous Software Engineering</Link>
80+
{' '}group of KASTEL - Institute of Information Security and Dependability at the{' '}
81+
<Link href="https://www.kit.edu/" className="underline underline-offset-2 hover:opacity-80">KIT</Link>.
82+
</p>
83+
</div>
8084
</div>
8185
);
8286
}

src/app/view/[id]/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ const pollForResult = async (apiAddress: string, id: string, signal: AbortSignal
3939
return data;
4040
} else if (data.status !== "ACCEPTED") {
4141
// Throw an error with the message from the server
42-
throw new Error("An error occurred while running the pipeline in ArDoCo: \n" + data.message);
42+
throw new Error("An error occurred while running the pipeline in ardoco: \n" + data.message);
4343
}
4444

4545
// Keep polling

src/components/EditApiAddressModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export default function EditApiAddressModal({isOpen, onClose}: EditApiAddressMod
5959
</DialogTitle>
6060
<div className="mt-4">
6161
<p className="text-sm text-gray-600">
62-
Enter the base URL for the ArDoCo REST API.
62+
Enter the base URL for the ardoco REST API.
6363
</p>
6464
<input
6565
type="url"

src/components/NavBar.tsx

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,21 @@ import {useApiAddressContext} from "@/contexts/ApiAddressContext";
88
import EditApiAddressModal from "@/components/EditApiAddressModal";
99
import {useNavigation} from "@/contexts/NavigationContext";
1010
import clsx from "clsx";
11+
import { FaGithub, FaRegQuestionCircle } from "react-icons/fa";
1112

12-
// Navigation menu items
13+
// Navigation menu items (icons can be defined per item)
1314
const navigation = [
1415
{name: 'New Project', href: '/new-project'},
1516
{name: 'Load Project', href: '/load-project'},
16-
{name: 'About', href: 'https://ardoco.de/'},
17-
{name: 'GitHub', href: 'https://github.com/ArDoCo'},
17+
{name: 'About', href: 'https://ardoco.de/', icon: FaRegQuestionCircle},
18+
{name: 'GitHub', href: 'https://github.com/ardoco', icon: FaGithub},
1819
];
1920

20-
interface ArDoCoLogoProps {
21+
interface ArdocoLogoProps {
2122
onClick: (href: string, event: any) => void;
2223
}
2324

24-
export function ArDoCoLogo({onClick}: ArDoCoLogoProps) {
25+
export function ArdocoLogo({onClick}: ArdocoLogoProps) {
2526
const href = "/";
2627

2728
const handleClick = (event: any) => {
@@ -35,7 +36,7 @@ export function ArDoCoLogo({onClick}: ArDoCoLogoProps) {
3536
onClick={handleClick}
3637
>
3738
<img
38-
alt="ArDoCo Logo"
39+
alt="ARDoCo logo"
3940
src="/ardoco-logo.png"
4041
className={clsx(`w-auto h-3/4`)}
4142
/>
@@ -60,7 +61,7 @@ export default function NavBar() {
6061
<nav aria-label="Global" className="flex items-center justify-between p-3 lg:px-8 h-24">
6162
{/* Logo */}
6263
<div className="flex lg:flex-1">
63-
<ArDoCoLogo onClick={onClickNavigation}/>
64+
<ArdocoLogo onClick={onClickNavigation}/>
6465
</div>
6566

6667
{/* Mobile Menu Button */}
@@ -76,7 +77,7 @@ export default function NavBar() {
7677
</div>
7778

7879
{/* Desktop Navigation */}
79-
<div className="hidden lg:flex lg:gap-x-12">
80+
<div className="hidden lg:flex lg:gap-x-6">
8081

8182
{/* Styled API Address Display */}
8283
<div
@@ -90,14 +91,26 @@ export default function NavBar() {
9091
</button>
9192
</div>
9293

93-
{navigation.map((item) => (
94-
<a key={item.name}
95-
href={item.href}
96-
onClick={(e) => onClickNavigation(item.href, e)}
97-
className="py-2 text-sm font-semibold text-white">
98-
{item.name}
99-
</a>
100-
))}
94+
{navigation.map((item) => {
95+
const Icon = (item as any).icon;
96+
return (
97+
<a
98+
key={item.name}
99+
href={item.href}
100+
onClick={(e) => onClickNavigation(item.href, e)}
101+
className="py-2 text-sm font-semibold text-white hover:opacity-90"
102+
>
103+
{Icon ? (
104+
<>
105+
<Icon className="h-5 w-5" aria-hidden="true" />
106+
<span className="sr-only">{item.name}</span>
107+
</>
108+
) : (
109+
item.name
110+
)}
111+
</a>
112+
);
113+
})}
101114
</div>
102115
</nav>
103116

@@ -114,7 +127,7 @@ export default function NavBar() {
114127
<DialogPanel
115128
className="fixed inset-y-0 right-0 z-50 w-full max-w-sm bg-white px-6 py-6 sm:ring-1 sm:ring-gray-900/10">
116129
<div className="flex items-center justify-between">
117-
<ArDoCoLogo onClick={onClickNavigation}/>
130+
<ArdocoLogo onClick={onClickNavigation}/>
118131
<button
119132
type="button"
120133
onClick={() => setMobileMenuOpen(false)}
@@ -126,15 +139,19 @@ export default function NavBar() {
126139
</div>
127140
<div className="mt-6">
128141
<div className="space-y-2">
129-
{navigation.map((item) => (
130-
<a
131-
key={item.name}
132-
href={item.href}
133-
className="block rounded-lg px-3 py-2 text-base font-semibold text-gray-900 hover:bg-gray-50"
134-
>
135-
{item.name}
136-
</a>
137-
))}
142+
{navigation.map((item) => {
143+
const Icon = (item as any).icon;
144+
return (
145+
<a
146+
key={item.name}
147+
href={item.href}
148+
className="block rounded-lg px-3 py-2 text-base font-semibold text-gray-900 hover:bg-gray-50"
149+
>
150+
{Icon && <Icon className="h-5 w-5 inline-block mr-2" aria-hidden="true" />}
151+
<span>{item.name}</span>
152+
</a>
153+
);
154+
})}
138155
</div>
139156
</div>
140157
</DialogPanel>

src/components/dataTypes/TraceLinkTypes.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export const TraceLinkTypes: Record<string, TraceLinkType> = {
2929
name: "SWATTR",
3030
alternative_name: "sad-sam",
3131
api_name: "SWATTR",
32-
info: "Finds traceLinks between the Software Architecture Documentation (SAD) and the uploaded Software Architecture Model (SAM)",
32+
info: "Finds trace links between the Software Architecture Documentation (SAD) and the uploaded Software Architecture Model (SAM)",
3333
checkCondition: (uploadedFiles: UploadedFile[]) =>
3434
hasArchitectureDocumentation(uploadedFiles) && hasArchitectureModel(uploadedFiles),
3535
providedFiles: [FileType.DOCUMENTATION, FileType.ARCHITECTURE_MODEL_PCM, FileType.ARCHITECTURE_MODEL_UML],
@@ -39,7 +39,7 @@ export const TraceLinkTypes: Record<string, TraceLinkType> = {
3939
name: "ArDoCode",
4040
alternative_name: "sad-code",
4141
api_name: "ArDoCode",
42-
info: "Finds traceLinks between the Software Architecture Documentation (SAD) and the uploaded code",
42+
info: "Finds trace links between the Software Architecture Documentation (SAD) and the uploaded code",
4343
checkCondition: (uploadedFiles: UploadedFile[]) =>
4444
hasArchitectureDocumentation(uploadedFiles) && hasCodeModel(uploadedFiles),
4545
providedFiles: [FileType.DOCUMENTATION, FileType.CODE_MODEL],
@@ -49,7 +49,7 @@ export const TraceLinkTypes: Record<string, TraceLinkType> = {
4949
name: "ArCoTL",
5050
alternative_name: "sam-code",
5151
api_name: "ArCoTL",
52-
info: "Finds traceLinks between the Software Architecture Model (SAM) and the uploaded code",
52+
info: "Finds trace links between the Software Architecture Model (SAM) and the uploaded code",
5353
checkCondition: (uploadedFiles: UploadedFile[]) =>
5454
hasArchitectureModel(uploadedFiles) && hasCodeModel(uploadedFiles),
5555
providedFiles: [FileType.ARCHITECTURE_MODEL_PCM, FileType.ARCHITECTURE_MODEL_UML, FileType.CODE_MODEL],

src/components/inputComponents/InconsistencyCheckbox.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export default function InconsistencyCheckbox({checked, onChange, disabled}: Inc
3636
title={"Inconsistencies"}
3737
descriptionToRender={
3838
<div>
39-
<p>When selected, ArDoCo additionally finds inconsistencies between the documentation and the
39+
<p>When selected, ardoco additionally finds inconsistencies between the documentation and the
4040
architecture model.</p>
4141
<p className="mt-2">An inconsistency can be:</p>
4242
<ul className="list-disc list-inside pl-2">

0 commit comments

Comments
 (0)