From 92eca82127d54a97c089be62125b1fd02ebca2c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20LUDWIG?=
Date: Tue, 9 Sep 2025 19:32:06 +0200
Subject: [PATCH] fix: update Curriculum Vitae
---
packages/i18n/src/translations/en-US.json | 7 +-
packages/i18n/src/translations/fr-FR.json | 3 +-
.../CurriculumVitaeEducation.tsx | 115 ++++++++++--------
3 files changed, 73 insertions(+), 52 deletions(-)
diff --git a/packages/i18n/src/translations/en-US.json b/packages/i18n/src/translations/en-US.json
index 954d286..30d6fa2 100644
--- a/packages/i18n/src/translations/en-US.json
+++ b/packages/i18n/src/translations/en-US.json
@@ -41,6 +41,7 @@
"institution": "IUT Robert Schuman in Illkirch-Graffenstaden",
"study-type": "University Bachelor of Technology (BUT) Computer Science",
"years": {
+ "title": "2021 - 2024",
"2021-2022": {
"courses": {
"java": "Object Oriented Development in Java",
@@ -98,17 +99,17 @@
"tasks": {
"WebSurg": "Development of WebSurg, a virtual university dedicated to medical-surgical training, built with React.js/Next.js and API Platform with Symfony.",
"Figma": "Integration of Figma mockups for WebSurg, website dedicated to medical-surgical training.",
- "IRCAD-Core": "IRCAD Core, an internal tool for managing medical training sessions and their requirements (anatomicals models, medications, staff training, etc.).",
+ "IRCAD-Core": "IRCAD Core, an internal tool for managing medical training sessions and their requirements (anatomical models, medications, staff training, etc.).",
"feature-logs": "History and traceability of data modifications (what? who? when?) in IRCAD Core.",
"feature-permissions": "Advanced permissions system and OAuth2 authentication, with read, write, and delete access restricted for specific users of the IRCAD Core application.",
"feature-search": "Search engine with filters, sorting, and customizable display for each user of IRCAD Core.",
- "feature-architecture": "IRCAD Core project architecture in TypeScript Monorepo with Turborepo, and automatic deployment (CI/CD) with Docker Compose, self-hosted internally."
+ "feature-architecture": "IRCAD Core project architecture in TypeScript Monorepo with Turborepo, automatic deployment (CI/CD) and self-hosted internally with Docker Compose."
}
},
"numerize": {
"duration": "3 months",
"position": "Full Stack Web Developer Intern",
- "summary": "Development of an DMS (Document Management System) tool in React.js, Laravel and GraphQL."
+ "summary": "Development of a DMS (Document Management System) tool in React.js, Laravel and GraphQL."
},
"title": "Work experiences"
}
diff --git a/packages/i18n/src/translations/fr-FR.json b/packages/i18n/src/translations/fr-FR.json
index 0404d63..c47864f 100644
--- a/packages/i18n/src/translations/fr-FR.json
+++ b/packages/i18n/src/translations/fr-FR.json
@@ -41,6 +41,7 @@
"institution": "IUT Robert Schuman à Illkirch-Graffenstaden",
"study-type": "Bachelor Universitaire de Technologie (BUT) Informatique",
"years": {
+ "title": "2021 - 2024",
"2021-2022": {
"courses": {
"java": "Développement Orientée Objet en Java",
@@ -102,7 +103,7 @@
"feature-logs": "Historique et traçabilité des modifications des données (quoi? qui? quand?) dans IRCAD Core.",
"feature-permissions": "Système de permissions avancé et authentification OAuth2, avec accès en lecture, écriture et suppression restreint pour des utilisateurs spécifiques de l'application IRCAD Core.",
"feature-search": "Moteur de recherche avec filtres, tris et ordre d'affichage personnalisable pour IRCAD Core.",
- "feature-architecture": "Architecture du projet IRCAD Core en Monorepo TypeScript avec Turborepo, et déploiement automatique (CI/CD) avec Docker Compose, auto-hébergé en interne."
+ "feature-architecture": "Architecture du projet IRCAD Core en Monorepo TypeScript avec Turborepo, déploiement automatique (CI/CD) et hébergé en interne avec Docker Compose."
}
},
"numerize": {
diff --git a/packages/ui/src/CurriculumVitae/CurriculumVitaeEducation.tsx b/packages/ui/src/CurriculumVitae/CurriculumVitaeEducation.tsx
index 726d296..c72e55e 100644
--- a/packages/ui/src/CurriculumVitae/CurriculumVitaeEducation.tsx
+++ b/packages/ui/src/CurriculumVitae/CurriculumVitaeEducation.tsx
@@ -14,50 +14,55 @@ export const CurriculumVitaeEducation: React.FC<
years: t("curriculum-vitae.education.cnam.years.2024-2027.title"),
studyType: t("curriculum-vitae.education.cnam.study-type"),
institution: t("curriculum-vitae.education.cnam.institution"),
- score: t("curriculum-vitae.education.cnam.years.2024-2027.description"),
+ // score: t("curriculum-vitae.education.cnam.years.2024-2027.description"),
courses: [],
},
{
- years: t("curriculum-vitae.education.iut.years.2023-2024.title"),
+ years: t("curriculum-vitae.education.iut.years.title"),
studyType: t("curriculum-vitae.education.iut.study-type"),
institution: t("curriculum-vitae.education.iut.institution"),
- score: t("curriculum-vitae.education.iut.years.2023-2024.description"),
courses: [
- t("curriculum-vitae.education.iut.years.2023-2024.courses.web"),
- t("curriculum-vitae.education.iut.years.2023-2024.courses.ci-cd"),
- t(
- "curriculum-vitae.education.iut.years.2023-2024.courses.complexity-algorithms",
- ),
- t("curriculum-vitae.education.iut.years.2023-2024.courses.no-sql"),
- ],
- },
- {
- years: t("curriculum-vitae.education.iut.years.2022-2023.title"),
- studyType: t("curriculum-vitae.education.iut.study-type"),
- institution: t("curriculum-vitae.education.iut.institution"),
- score: t("curriculum-vitae.education.iut.years.2022-2023.description"),
- courses: [
- t("curriculum-vitae.education.iut.years.2022-2023.courses.web"),
- t("curriculum-vitae.education.iut.years.2022-2023.courses.tests"),
- t("curriculum-vitae.education.iut.years.2022-2023.courses.clean-code"),
- t("curriculum-vitae.education.iut.years.2022-2023.courses.systems-c"),
- // t(
- // "curriculum-vitae.education.iut.years.2022-2023.courses.sql-security",
- // ),
- ],
- },
- {
- years: t("curriculum-vitae.education.iut.years.2021-2022.title"),
- studyType: t("curriculum-vitae.education.iut.study-type"),
- institution: t("curriculum-vitae.education.iut.institution"),
- score: t("curriculum-vitae.education.iut.years.2021-2022.description"),
- courses: [
- t("curriculum-vitae.education.iut.years.2021-2022.courses.java"),
- t("curriculum-vitae.education.iut.years.2021-2022.courses.systems-c"),
- // t(
- // "curriculum-vitae.education.iut.years.2021-2022.courses.windows-forms",
- // ),
- t("curriculum-vitae.education.iut.years.2021-2022.courses.sql"),
+ {
+ year: t("curriculum-vitae.education.iut.years.2021-2022.description"),
+ title: t("curriculum-vitae.education.iut.years.2021-2022.title"),
+ courses: [
+ t("curriculum-vitae.education.iut.years.2021-2022.courses.java"),
+ t(
+ "curriculum-vitae.education.iut.years.2021-2022.courses.systems-c",
+ ),
+ // t(
+ // "curriculum-vitae.education.iut.years.2021-2022.courses.windows-forms",
+ // ),
+ t("curriculum-vitae.education.iut.years.2021-2022.courses.sql"),
+ ],
+ },
+ {
+ year: t("curriculum-vitae.education.iut.years.2022-2023.description"),
+ title: t("curriculum-vitae.education.iut.years.2022-2023.title"),
+ courses: [
+ t("curriculum-vitae.education.iut.years.2022-2023.courses.web"),
+ t("curriculum-vitae.education.iut.years.2022-2023.courses.tests"),
+ t(
+ "curriculum-vitae.education.iut.years.2022-2023.courses.clean-code",
+ ),
+ // t("curriculum-vitae.education.iut.years.2022-2023.courses.sql-security"),
+ t(
+ "curriculum-vitae.education.iut.years.2022-2023.courses.systems-c",
+ ),
+ ],
+ },
+ {
+ year: t("curriculum-vitae.education.iut.years.2023-2024.description"),
+ title: t("curriculum-vitae.education.iut.years.2023-2024.title"),
+ courses: [
+ t("curriculum-vitae.education.iut.years.2023-2024.courses.web"),
+ t("curriculum-vitae.education.iut.years.2023-2024.courses.ci-cd"),
+ t(
+ "curriculum-vitae.education.iut.years.2023-2024.courses.complexity-algorithms",
+ ),
+ t("curriculum-vitae.education.iut.years.2023-2024.courses.no-sql"),
+ ],
+ },
],
},
// {
@@ -83,9 +88,13 @@ export const CurriculumVitaeEducation: React.FC<
{education.studyType}
-
- {education.score}
-
+ {/* {education.score != null ? (
+
+ {education.score}
+
+ ) : (
+ <>>
+ )} */}
{education.institution}
@@ -94,13 +103,23 @@ export const CurriculumVitaeEducation: React.FC<
{education.courses.length > 0 ? (
-
- {education.courses.map((course) => {
- return - {course}
+
+ {education.courses.map(({ year, title, courses }) => {
+ return (
+ -
+ {year}
+ ({title})
+
+ {courses.map((course) => {
+ return - {course}
+ })}
+
+
+ )
})}
) : (