diff --git a/webapp/.storybook/preview.ts b/webapp/.storybook/preview.ts
index f7573730..93bed5ea 100644
--- a/webapp/.storybook/preview.ts
+++ b/webapp/.storybook/preview.ts
@@ -55,7 +55,7 @@ const preview: Preview = {
light: '',
dark: 'dark bg-background',
},
- defaultTheme: 'dark',
+ defaultTheme: 'light',
}),
applicationConfig(appConfig),
],
diff --git a/webapp/src/app/@types/github.d.ts b/webapp/src/app/@types/github.d.ts
new file mode 100644
index 00000000..60fa31f8
--- /dev/null
+++ b/webapp/src/app/@types/github.d.ts
@@ -0,0 +1,10 @@
+export namespace GitHub {
+ export interface Contributor {
+ id: number;
+ login: string;
+ url: string;
+ html_url: string;
+ avatar_url: string;
+ // More fields can be added here
+ }
+}
diff --git a/webapp/src/app/about/about.component.html b/webapp/src/app/about/about.component.html
new file mode 100644
index 00000000..f3fc9ecf
--- /dev/null
+++ b/webapp/src/app/about/about.component.html
@@ -0,0 +1,53 @@
+
+
About
+
+ Hephaestus leverages generative AI to streamline software development and enhance developer training. Focused on improving every phase of the software development lifecycle
+ (SDLC) and supporting agile practices, Hephaestus helps teams work more efficiently and adhere to best practices.
+
+
Team
+ @if (query.isPending()) {
+
Loading...
+ } @else if (query.error()) {
+
An error has occurred
+ }
+
+ @if (projectManager(); as projectManager) {
+
+ }
+
+ @if (contributors(); as contributors) {
+
Contributors
+
+ }
+
diff --git a/webapp/src/app/about/about.component.ts b/webapp/src/app/about/about.component.ts
new file mode 100644
index 00000000..d28bd965
--- /dev/null
+++ b/webapp/src/app/about/about.component.ts
@@ -0,0 +1,42 @@
+import { HttpClient } from '@angular/common/http';
+import { Component, computed, inject } from '@angular/core';
+import { injectQuery } from '@tanstack/angular-query-experimental';
+import { lastValueFrom } from 'rxjs';
+import { AvatarComponent } from 'app/ui/avatar/avatar.component';
+import { AvatarImageComponent } from 'app/ui/avatar/avatar-image.component';
+import { AvatarFallbackComponent } from 'app/ui/avatar/avatar-fallback.component';
+import { ButtonComponent } from 'app/ui/button/button.component';
+import { GitHub } from 'app/@types/github';
+
+@Component({
+ selector: 'app-about',
+ standalone: true,
+ imports: [AvatarComponent, AvatarImageComponent, AvatarFallbackComponent, ButtonComponent],
+ templateUrl: './about.component.html'
+})
+export class AboutComponent {
+ http = inject(HttpClient);
+
+ query = injectQuery(() => ({
+ queryKey: ['contributors'],
+ queryFn: async () => lastValueFrom(this.http.get('https://api.github.com/repos/ls1intum/hephaestus/contributors')) as Promise