1
1
mirror of https://github.com/theoludwig/theoludwig.git synced 2025-09-11 23:09:22 +02:00

fix: update Curriculum Vitae + add Fusey interest

This commit is contained in:
2025-08-31 20:38:14 +02:00
parent 39ef3e80ce
commit b3140dd977
8 changed files with 32 additions and 55 deletions

View File

@@ -173,9 +173,8 @@ code .line::before {
}
.curriculum-vitae {
background: #f0f0f0;
color: #333;
font-family: Arial, sans-serif;
font-family: Montserrat, sans-serif;
hr {
margin-top: 15px;
@@ -251,8 +250,8 @@ code .line::before {
padding: 10px 0;
}
.profile-pic img {
width: 100px;
height: 100px;
width: 80px;
height: 80px;
border-radius: 50%;
vertical-align: middle;
border: 0;

View File

@@ -88,7 +88,7 @@
"position": "Stagiaire Développeur Web Full Stack",
"startDate": "2023-04-11",
"endDate": "2023-07-26",
"duration": "4 mois",
"duration": "3 mois",
},
// {
// "summary": "Agent administratif - Numérisation et archivage des plans électriques initialement sous format papier calque.",

View File

@@ -87,17 +87,17 @@
"title": "Studies"
},
"interests": {
"high-tech": "Passionate about High-Tech",
"fusey": "<link>Fusey (fusey.gg)</link>: website I'm developing for the game ARK: Survival Ascended that tracks the number of players connected to the servers in real time and has over ~5,000 visitors each month, ~100,000 members on Discord, and ~120,000 followers on X/Twitter.",
"open-source": "Open-Source Enthusiast"
},
"work": {
"ircad": {
"duration": "4 ans",
"duration": "4 years",
"position": "Full Stack Web Developer Apprentice",
"summary": "Development of WebSurg, a virtual university dedicated to medical-surgical training, in React.js/Next.js and API Platform with Symfony."
},
"numerize": {
"duration": "4 months",
"duration": "3 months",
"position": "Full Stack Web Developer Intern",
"summary": "Development of an DMS (Document Management System) tool in React.js, Laravel and GraphQL."
},

View File

@@ -87,7 +87,7 @@
"title": "Études"
},
"interests": {
"high-tech": "Passionné de High-Tech",
"fusey": "<link>Fusey (fusey.gg)</link> : site web que je développe pour le jeu ARK: Survival Ascended qui permet de suivre en temps réel le nombre de joueurs connectés sur les serveurs et a plus de ~5 000 visiteurs chaque mois, ~100 000 membres sur Discord et ~120 000 followers sur X/Twitter.",
"open-source": "Enthousiaste de l'Open-Source"
},
"work": {
@@ -97,7 +97,7 @@
"summary": "Développement de WebSurg, une université virtuelle consacrée à la formation médico-chirurgicale, en React.js/Next.js et API Platform avec Symfony."
},
"numerize": {
"duration": "4 mois",
"duration": "3 mois",
"position": "Stagiaire Développeur Web Full Stack",
"summary": "Développement d'un outil GED (Gestion Électronique de Documents) en React.js, Laravel et GraphQL."
},

View File

@@ -1,4 +1,3 @@
import { CurriculumVitaeAbout } from "./CurriculumVitaeAbout.tsx"
import { CurriculumVitaeEducation } from "./CurriculumVitaeEducation.tsx"
import { CurriculumVitaeInterests } from "./CurriculumVitaeInterests.tsx"
import { CurriculumVitaeProfile } from "./CurriculumVitaeProfile.tsx"
@@ -16,18 +15,14 @@ export const CurriculumVitae: React.FC<CurriculumVitaeProps> = () => {
<div className="card background-card">
<div className="background-details">
<CurriculumVitaeAbout />
<hr />
<section className="flex">
<section className="flex justify-between">
<CurriculumVitaeEducation />
<CurriculumVitaeSkills />
</section>
<hr />
<section className="flex">
<section className="flex justify-between">
<CurriculumVitaeWork />
<CurriculumVitaeInterests />
</section>

View File

@@ -1,25 +0,0 @@
import { useTranslations } from "next-intl"
import { FaUser } from "react-icons/fa"
import { CurriculumVitaeSection } from "./CurriculumVitaeSection.tsx"
export interface CurriculumVitaeAboutProps {}
export const CurriculumVitaeAbout: React.FC<CurriculumVitaeAboutProps> = () => {
const t = useTranslations()
return (
<CurriculumVitaeSection
id="about"
title={t("curriculum-vitae.about.title")}
icon={<FaUser size={24} />}
>
<p>
{t.rich("curriculum-vitae.about.description", {
br: () => {
return <br />
},
})}
</p>
</CurriculumVitaeSection>
)
}

View File

@@ -11,7 +11,15 @@ export const CurriculumVitaeInterests: React.FC<
const interests = [
t("curriculum-vitae.interests.open-source"),
t("curriculum-vitae.interests.high-tech"),
t.rich("curriculum-vitae.interests.fusey", {
link: (children) => {
return (
<a href="https://fusey.gg" target="_blank">
{children}
</a>
)
},
}),
]
return (
@@ -21,9 +29,9 @@ export const CurriculumVitaeInterests: React.FC<
icon={<FaHeart size={24} />}
>
<ul className="list-unstyled m-0">
{interests.map((interest) => {
{interests.map((interest, index) => {
return (
<li key={interest} className="card card-nested">
<li key={index} className="card card-nested">
<p>
<strong>{interest}</strong>
</p>

View File

@@ -22,12 +22,12 @@ export const CurriculumVitaeProfile: React.FC<
className="mx-auto block"
alt={t("meta.title")}
src="/images/logo_background.webp"
width={800}
height={800}
width={400}
height={400}
/>
</div>
<div className="name-and-profession text-center">
<h1 className="h3">
<h1 className="h3 my-1!">
<strong>{t("meta.title")}</strong>
</h1>
<h2 className="text-muted h5">{t("curriculum-vitae.description")}</h2>
@@ -39,18 +39,18 @@ export const CurriculumVitaeProfile: React.FC<
</div>
<div className="flex justify-center">
<div className="relative px-3">
<span className="info">
<a className="link-disguise" href="mailto:contact@theoludwig.fr">
<strong className="info">
<a className="" href="mailto:contact@theoludwig.fr">
contact@theoludwig.fr
</a>
</span>
</strong>
</div>
<div className="detail">
<span className="info">
<Link className="link-disguise" href="/">
https://theoludwig.fr/
<strong className="info">
<Link className="" href="/">
https://theoludwig.fr
</Link>
</span>
</strong>
</div>
</div>
<hr />