diff --git a/src/assets/data/team.json b/src/assets/data/team.json
new file mode 100644
index 0000000..cff7068
--- /dev/null
+++ b/src/assets/data/team.json
@@ -0,0 +1,79 @@
+[
+ {
+ "img": "/src/assets/img/team/Benjamin Frost.webp",
+ "name": "Benjamin Frost",
+ "lastRole": { "de": "Jury", "en": "Jury" },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/Jonas Wanke.webp",
+ "name": "Jonas Wanke",
+ "lastRole": { "en": "Expert", "de": "Bundestrainer" },
+ "skill": {
+ "de": "App-Entwicklung",
+ "en": "Mobile Applications Development"
+ },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/Dr. Olaf Kappler.webp",
+ "name": "Dr. Olaf Kappler",
+ "lastRole": { "en": "Expert", "de": "Bundestrainer" },
+ "skill": {
+ "de": "Software-Entwicklung",
+ "en": "Software Applications Development"
+ }
+ },
+ {
+ "img": "/src/assets/img/team/Doreen Kappler.webp",
+ "name": "Doreen Kappler",
+ "lastRole": { "de": "Good Fairy", "en": "Good Fairy" }
+ },
+ {
+ "img": "/src/assets/img/team/Glenn Skrzypczak.webp",
+ "name": "Glenn Skrzypczak",
+ "lastRole": { "en": "Expert", "de": "Bundestrainer" },
+ "skill": {
+ "de": "Web-Entwicklung",
+ "en": "Web Technologies"
+ },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/Elisa Boose.webp",
+ "name": "Elisa Boose",
+ "lastRole": { "en": "Trainer", "de": "Trainer" }
+ },
+ {
+ "img": "/src/assets/img/team/Michael Boose.webp",
+ "name": "Michael Boose",
+ "lastRole": { "en": "Trainer", "de": "Trainer" }
+ },
+ {
+ "img": "/src/assets/img/team/Joachim Schiller.webp",
+ "name": "Joachim Schiller",
+ "lastRole": { "de": "Jury", "en": "Jury" },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/Justin Konratt.webp",
+ "name": "Justin Konratt",
+ "lastRole": { "de": "Jury", "en": "Jury" },
+ "hasMultipleRoles": true
+ },
+ {
+ "img": "/src/assets/img/team/Kai Redmann.webp",
+ "name": "Kai Redmann",
+ "lastRole": { "en": "Workshop-Manager", "de": "Workshop Manager" }
+ },
+ {
+ "img": "/src/assets/img/team/Lukas Fischer.webp",
+ "name": "Lukas Fischer",
+ "lastRole": { "en": "Workshop-Manager", "de": "Workshop Manager" }
+ },
+ {
+ "img": "/src/assets/img/team/Thomas Steinfeld.webp",
+ "name": "Thomas Steinfeld",
+ "lastRole": { "en": "Mr. Speed Programming", "de": "Mr. Speed Programming" }
+ }
+]
diff --git a/src/assets/img/team.webp b/src/assets/img/team.webp
new file mode 100644
index 0000000..06c68b9
Binary files /dev/null and b/src/assets/img/team.webp differ
diff --git a/src/assets/img/team/Benjamin Frost.webp b/src/assets/img/team/Benjamin Frost.webp
new file mode 100644
index 0000000..3b893d0
Binary files /dev/null and b/src/assets/img/team/Benjamin Frost.webp differ
diff --git a/src/assets/img/team/Doreen Kappler.webp b/src/assets/img/team/Doreen Kappler.webp
new file mode 100644
index 0000000..367ad76
Binary files /dev/null and b/src/assets/img/team/Doreen Kappler.webp differ
diff --git a/src/assets/img/team/Dr. Olaf Kappler.webp b/src/assets/img/team/Dr. Olaf Kappler.webp
new file mode 100644
index 0000000..d95a7ca
Binary files /dev/null and b/src/assets/img/team/Dr. Olaf Kappler.webp differ
diff --git a/src/assets/img/team/Elisa Boose.webp b/src/assets/img/team/Elisa Boose.webp
new file mode 100644
index 0000000..56e8c57
Binary files /dev/null and b/src/assets/img/team/Elisa Boose.webp differ
diff --git a/src/assets/img/team/Glenn Skrzypczak.webp b/src/assets/img/team/Glenn Skrzypczak.webp
new file mode 100644
index 0000000..781d312
Binary files /dev/null and b/src/assets/img/team/Glenn Skrzypczak.webp differ
diff --git a/src/assets/img/team/Joachim Schiller.webp b/src/assets/img/team/Joachim Schiller.webp
new file mode 100644
index 0000000..08cfc01
Binary files /dev/null and b/src/assets/img/team/Joachim Schiller.webp differ
diff --git a/src/assets/img/team/Jonas Wanke.webp b/src/assets/img/team/Jonas Wanke.webp
new file mode 100644
index 0000000..4e6f63c
Binary files /dev/null and b/src/assets/img/team/Jonas Wanke.webp differ
diff --git a/src/assets/img/team/Justin Konratt.webp b/src/assets/img/team/Justin Konratt.webp
new file mode 100644
index 0000000..3abb48f
Binary files /dev/null and b/src/assets/img/team/Justin Konratt.webp differ
diff --git a/src/assets/img/team/Kai Redmann.webp b/src/assets/img/team/Kai Redmann.webp
new file mode 100644
index 0000000..bd06396
Binary files /dev/null and b/src/assets/img/team/Kai Redmann.webp differ
diff --git a/src/assets/img/team/Lukas Fischer.webp b/src/assets/img/team/Lukas Fischer.webp
new file mode 100644
index 0000000..c3f5172
Binary files /dev/null and b/src/assets/img/team/Lukas Fischer.webp differ
diff --git a/src/assets/img/team/Michael Boose.webp b/src/assets/img/team/Michael Boose.webp
new file mode 100644
index 0000000..7c7a4a0
Binary files /dev/null and b/src/assets/img/team/Michael Boose.webp differ
diff --git a/src/assets/img/team/Thomas Steinfeld.webp b/src/assets/img/team/Thomas Steinfeld.webp
new file mode 100644
index 0000000..ea24f2f
Binary files /dev/null and b/src/assets/img/team/Thomas Steinfeld.webp differ
diff --git a/src/components/Header.astro b/src/components/Header.astro
index 47ec657..2ef6258 100644
--- a/src/components/Header.astro
+++ b/src/components/Header.astro
@@ -24,7 +24,7 @@ const skills = [
{
name: t({
de: "Web-Entwicklung",
- en: "Web Technologies"
+ en: "Web Technologies",
}),
href: getRelativeLocaleUrl(lang, "web-technologies"),
},
@@ -46,13 +46,12 @@ const skills = [
-
+
& {
+interface Props {
name: string;
- img: string;
- info?: string;
-};
+ lastRole: Record;
+ img?: string;
+ skill?: Record;
+ hasMultipleRoles?: boolean;
+}
-const { name, img, info, links = [] } = Astro.props;
+const { name, img, lastRole, skill, hasMultipleRoles = false } = Astro.props;
+
+const lang = getLangFromUrl(Astro.url);
+const t = useTranslations(lang);
---
-

-
-
-
{name}
- {info &&
{info}
}
+
+
+
{name}
+
+
+ {t(lastRole)}
+
+
+ {hasMultipleRoles && t({ de: "und mehr", en: "and more" })}
+
-
+
+ {skill ||
}
+
diff --git a/src/components/team/PersonImage.tsx b/src/components/team/PersonImage.tsx
new file mode 100644
index 0000000..1919fb5
--- /dev/null
+++ b/src/components/team/PersonImage.tsx
@@ -0,0 +1,18 @@
+import clsx from "clsx";
+
+export type PersonImageProps = {
+ img?: string;
+};
+
+export const PersonImage = ({ img }: PersonImageProps) => {
+ return (
+

+ );
+};
diff --git a/src/components/team/Team.astro b/src/components/team/Team.astro
index 78c968d..1a29970 100644
--- a/src/components/team/Team.astro
+++ b/src/components/team/Team.astro
@@ -1,23 +1,24 @@
---
-import type { ComponentProps } from "astro/types";
import Person from "./Person.astro";
-
-interface Props {
- members: ComponentProps
[];
-}
-
-const { members } = Astro.props;
+import team from "~/assets/data/team.json";
---
-
- {
- members.map((member) => (
- -
-
-
- ))
- }
-
+
+
+ {
+ team
+ .sort((first, second) => first["name"].localeCompare(second["name"]))
+ .map((member) => (
+
+ ))
+ }
+
+
diff --git a/src/layouts/SkillPage.astro b/src/layouts/SkillPage.astro
index 438dbfe..364d588 100644
--- a/src/layouts/SkillPage.astro
+++ b/src/layouts/SkillPage.astro
@@ -7,7 +7,6 @@ import HeadedSection from "~/components/sections/HeadedSection.astro";
import WavedSection from "~/components/sections/WavedSection.astro";
import SkillInformation from "~/components/skill/SkillInformation.astro";
import SkillRoadmap from "~/components/skill/SkillRoadmap.astro";
-import type Person from "~/components/team/Person.astro";
import TimeLine from "~/components/timeline/TimeLine.astro";
import { getLangFromUrl, useTranslations } from "~/i18n";
import Layout from "./Layout.astro";
@@ -18,7 +17,6 @@ interface Props {
skillInformation: ComponentProps;
img: ImageMetadata;
contact: string;
- nationalTeam: ComponentProps[];
timelineEntries: ComponentProps["entries"];
additionalLinks: ComponentProps[];
}
@@ -28,7 +26,6 @@ const {
skillDescription,
skillInformation,
img,
- nationalTeam,
timelineEntries,
additionalLinks,
contact,
diff --git a/src/pages/[lang]/our-team.astro b/src/pages/[lang]/our-team.astro
new file mode 100644
index 0000000..1cccc77
--- /dev/null
+++ b/src/pages/[lang]/our-team.astro
@@ -0,0 +1,17 @@
+---
+import { getLangFromUrl, localeParams, useTranslations } from "~/i18n/utils";
+import Hero from "../../components/Hero.astro";
+import TeamPage from "../../components/team/Team.astro";
+import Layout from "../../layouts/Layout.astro";
+import TeamImage from "~/assets/img/team.webp";
+
+export const getStaticPaths = localeParams;
+
+const lang = getLangFromUrl(Astro.url);
+const t = useTranslations(lang);
+---
+
+
+
+
+
diff --git a/src/pages/en/it-software-solutions-for-business.astro b/src/pages/en/it-software-solutions-for-business.astro
index fb2383e..59b1136 100644
--- a/src/pages/en/it-software-solutions-for-business.astro
+++ b/src/pages/en/it-software-solutions-for-business.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill09"];
}}
img={Skill09Image}
contact="mailto:skills@kapplers.de"
- nationalTeam={[]}
timelineEntries={Object.values(historyData)}
additionalLinks={[
{
diff --git a/src/pages/en/mobile-applications-development.astro b/src/pages/en/mobile-applications-development.astro
index 6ff13f5..3cbdcf5 100644
--- a/src/pages/en/mobile-applications-development.astro
+++ b/src/pages/en/mobile-applications-development.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill08"];
}}
img={Skill08Image}
contact="mailto:worldskills@jonas-wanke.de"
- nationalTeam={[]}
timelineEntries={Object.values(historyData)}
additionalLinks={[
{
diff --git a/src/pages/en/web-technologies.astro b/src/pages/en/web-technologies.astro
index 1d6d52a..d486ca1 100644
--- a/src/pages/en/web-technologies.astro
+++ b/src/pages/en/web-technologies.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill17"];
}}
img={Skill09Image}
contact="mailto:glenn.skrzypczak@gmail.com"
- nationalTeam={[]}
timelineEntries={Object.values(historyData)}
additionalLinks={[
{
diff --git a/src/pages/it-software-solutions-for-business.astro b/src/pages/it-software-solutions-for-business.astro
index 87e0753..e9c85e9 100644
--- a/src/pages/it-software-solutions-for-business.astro
+++ b/src/pages/it-software-solutions-for-business.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill09"];
}}
img={Skill09Image}
contact="mailto:skills@kapplers.de"
- nationalTeam={[]}
timelineEntries={Object.values(historyData)}
additionalLinks={[
{
diff --git a/src/pages/mobile-applications-development.astro b/src/pages/mobile-applications-development.astro
index 7ff2133..1280463 100644
--- a/src/pages/mobile-applications-development.astro
+++ b/src/pages/mobile-applications-development.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill08"];
}}
img={Skill08Image}
contact="mailto:worldskills@jonas-wanke.de"
- nationalTeam={[]}
timelineEntries={Object.values(historyData)}
additionalLinks={[
{
diff --git a/src/pages/web-technologies.astro b/src/pages/web-technologies.astro
index 82232b1..ec6f784 100644
--- a/src/pages/web-technologies.astro
+++ b/src/pages/web-technologies.astro
@@ -24,7 +24,6 @@ const historyData = historyJson[lang]["skill17"];
}}
img={Skill09Image}
contact="mailto:glenn.skrzypczak@gmail.com"
- nationalTeam={[]}
timelineEntries={Object.values(historyData)}
additionalLinks={[
{