mirror of
https://github.com/theoludwig/theoludwig.git
synced 2024-11-08 22:31:30 +01:00
chore: use the right resume.json
This commit is contained in:
parent
1f4aa54211
commit
9351edf626
@ -1,15 +1,15 @@
|
|||||||
FROM node:16.15.1 AS dependencies
|
FROM node:16.16.0 AS dependencies
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY ./package*.json ./
|
COPY ./package*.json ./
|
||||||
RUN npm install
|
RUN npm install
|
||||||
|
|
||||||
FROM node:16.15.1 AS builder
|
FROM node:16.16.0 AS builder
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY ./ ./
|
COPY ./ ./
|
||||||
COPY --from=dependencies /usr/src/app/node_modules ./node_modules
|
COPY --from=dependencies /usr/src/app/node_modules ./node_modules
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
FROM node:16.15.1 AS runner
|
FROM node:16.16.0 AS runner
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
COPY --from=builder /usr/src/app/next.config.js ./next.config.js
|
COPY --from=builder /usr/src/app/next.config.js ./next.config.js
|
||||||
|
@ -4,7 +4,13 @@ import Image from 'next/image'
|
|||||||
import { Language } from './Language'
|
import { Language } from './Language'
|
||||||
import { SwitchTheme } from './SwitchTheme'
|
import { SwitchTheme } from './SwitchTheme'
|
||||||
|
|
||||||
export const Header: React.FC = () => {
|
export interface HeaderProps {
|
||||||
|
showLanguage?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Header: React.FC<HeaderProps> = (props) => {
|
||||||
|
const { showLanguage = false } = props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header className='sticky top-0 z-50 flex w-full justify-between border-b-2 border-gray-600 bg-white px-6 py-2 dark:border-gray-400 dark:bg-black'>
|
<header className='sticky top-0 z-50 flex w-full justify-between border-b-2 border-gray-600 bg-white px-6 py-2 dark:border-gray-400 dark:bg-black'>
|
||||||
<Link href='/'>
|
<Link href='/'>
|
||||||
@ -34,7 +40,7 @@ export const Header: React.FC = () => {
|
|||||||
</a>
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<Language />
|
{showLanguage && <Language />}
|
||||||
<SwitchTheme />
|
<SwitchTheme />
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
@ -1 +0,0 @@
|
|||||||
{}
|
|
@ -1,118 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
|
|
||||||
"meta": {
|
|
||||||
"theme": "custom"
|
|
||||||
},
|
|
||||||
"basics": {
|
|
||||||
"name": "Théo LUDWIG",
|
|
||||||
"label": "Développeur Full Stack Junior • Passionné de High-Tech",
|
|
||||||
"image": "https://divlo.fr/images/logo_orange.png",
|
|
||||||
"email": "contact@divlo.fr",
|
|
||||||
"location": {},
|
|
||||||
"url": "https://divlo.fr",
|
|
||||||
"summary": "Je me forme en autodidacte dans l'informatique en suivant des formations en ligne et je suis aussi un étudiant à l'université suivant la formation \"BUT Informatique\" (première année). <br/> Je mets en pratique tout ce que j'apprends et réalise de nombreux projets."
|
|
||||||
},
|
|
||||||
"education": [
|
|
||||||
{
|
|
||||||
"startDate": "2022",
|
|
||||||
"studyType": "Diplôme du Bachelor Universitaire de Technologie (BUT) Informatique",
|
|
||||||
"institution": "IUT Robert Schuman à Illkirch-Graffenstaden",
|
|
||||||
"score": "En cours"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"startDate": "2019",
|
|
||||||
"endDate": "2021",
|
|
||||||
"studyType": "Diplôme du Baccalauréat Général (Mathématiques et Numériques Sciences Informatiques)",
|
|
||||||
"institution": "Lycée Heinrich Nessel à Haguenau",
|
|
||||||
"score": "Mention Assez Bien"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"startDate": "2014",
|
|
||||||
"endDate": "2018",
|
|
||||||
"studyType": "Diplôme national du brevet",
|
|
||||||
"institution": "Collège Gustave Doré à Hochfelden",
|
|
||||||
"score": "Mention Bien"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"work": [
|
|
||||||
{
|
|
||||||
"summary": "Développement site web en React.js et Strapi afin de répondre <a href=\"https://www.nuitdelinfo.com/nuitinfo/_media/infos:la_nuit_de_l_info_2021_-_sujet.pdf\">au sujet de la Nuit de l'Info 2021</a>.<br /> TOP 1 France: Défi de l'entreprise <a href=\"https://www.nuitdelinfo.com/inscription/defis/300\">ToolPad</a>.",
|
|
||||||
"website": "https://www.nuitdelinfo.com/",
|
|
||||||
"name": "La Nuit de l'info 2021",
|
|
||||||
"position": "Participation avec l'équipe <a href=\"https://www.nuitdelinfo.com/inscription/equipes/46\">Who are We</a>",
|
|
||||||
"startDate": "2021-12-02",
|
|
||||||
"endDate": "2021-12-03"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"summary": "Agent administratif en vue de faire face au sucroît temporaire d'activités liés à la numérisation des plans des postes sources <br /> actuellement sous format papier calque suite à la libération des locaux des archives.",
|
|
||||||
"website": "https://www.es.fr/",
|
|
||||||
"name": "ÉS (Électricité de Strasbourg)",
|
|
||||||
"location": "5 Rue André Marie Ampère, 67450 Mundolsheim",
|
|
||||||
"position": "Emploi d'été en qualité d'agent administratif",
|
|
||||||
"startDate": "2021-07-07",
|
|
||||||
"endDate": "2021-07-30"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"summary": "Hackathon développement d'une landing page et web scraping.",
|
|
||||||
"website": "https://www.wildcodeschool.fr/",
|
|
||||||
"name": "Wild Code School",
|
|
||||||
"location": "32 Rue du Bass. d'Austerlitz, 67100 Strasbourg",
|
|
||||||
"position": "Stage initiation métier développeur web",
|
|
||||||
"startDate": "2019-06-24",
|
|
||||||
"endDate": "2019-06-28"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"summary": "Développement d'un site web pour trouver un restaurant à la pause repas.",
|
|
||||||
"website": "https://www.itpartners.fr/",
|
|
||||||
"name": "Tribe | IT Partners",
|
|
||||||
"location": "16 Rue du Parc, 67205 Oberhausbergen",
|
|
||||||
"position": "Stage initiation métier développeur web",
|
|
||||||
"startDate": "2019-06-17",
|
|
||||||
"endDate": "2019-06-21"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"summary": "Apprentissage du métier \"Chargé de communication\" et des logiciels de graphisme tels que \"Adobe Photoshop\".",
|
|
||||||
"website": "https://www.es.fr/",
|
|
||||||
"name": "ÉS (Électricité de Strasbourg)",
|
|
||||||
"location": "26 Bd du Président-Wilson, 67000 Strasbourg",
|
|
||||||
"position": "Stage de découverte (3ème)",
|
|
||||||
"startDate": "2018-02-19",
|
|
||||||
"endDate": "2018-02-23"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"interests": [
|
|
||||||
{
|
|
||||||
"name": "Développeur Full Stack Junior"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Passionné de High-Tech"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Enthousiaste de l'Open-Source"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"skills": [
|
|
||||||
{
|
|
||||||
"keywords": ["JavaScript", "TypeScript", "Python", "C/C++"],
|
|
||||||
"name": "Langages de programmation"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"keywords": ["HTML", "CSS", "Tailwind CSS", "React.js (+ Next.js)"],
|
|
||||||
"name": "Front-end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"keywords": ["Node.js", "Fastify", "PostgreSQL", "MySQL"],
|
|
||||||
"name": "Back-end"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"keywords": [
|
|
||||||
"GNU/Linux",
|
|
||||||
"Ubuntu",
|
|
||||||
"Visual Studio Code",
|
|
||||||
"git",
|
|
||||||
"Docker"
|
|
||||||
],
|
|
||||||
"name": "Logiciels et outils"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -4,7 +4,7 @@ import { defineConfig } from 'vite'
|
|||||||
import { createHtmlPlugin } from 'vite-plugin-html'
|
import { createHtmlPlugin } from 'vite-plugin-html'
|
||||||
import date from 'date-and-time'
|
import date from 'date-and-time'
|
||||||
|
|
||||||
const jsonResumeURL = new URL('./resume.json', import.meta.url)
|
const jsonResumeURL = new URL('../resume.json', import.meta.url)
|
||||||
const dataResumeStringJSON = await fs.promises.readFile(jsonResumeURL, {
|
const dataResumeStringJSON = await fs.promises.readFile(jsonResumeURL, {
|
||||||
encoding: 'utf-8'
|
encoding: 'utf-8'
|
||||||
})
|
})
|
||||||
|
@ -16,7 +16,7 @@ const Error404: NextPage<Error404Props> = (props) => {
|
|||||||
<>
|
<>
|
||||||
<Head title='404 | Divlo' />
|
<Head title='404 | Divlo' />
|
||||||
|
|
||||||
<Header />
|
<Header showLanguage />
|
||||||
<main className='flex flex-col md:mx-auto md:max-w-4xl lg:max-w-7xl'>
|
<main className='flex flex-col md:mx-auto md:max-w-4xl lg:max-w-7xl'>
|
||||||
<ErrorPage statusCode={404} message={t('errors:not-found')} />
|
<ErrorPage statusCode={404} message={t('errors:not-found')} />
|
||||||
</main>
|
</main>
|
||||||
|
@ -16,7 +16,7 @@ const Error500: NextPage<Error500Props> = (props) => {
|
|||||||
<>
|
<>
|
||||||
<Head title='500 | Divlo' />
|
<Head title='500 | Divlo' />
|
||||||
|
|
||||||
<Header />
|
<Header showLanguage />
|
||||||
<main className='flex flex-col md:mx-auto md:max-w-4xl lg:max-w-7xl'>
|
<main className='flex flex-col md:mx-auto md:max-w-4xl lg:max-w-7xl'>
|
||||||
<ErrorPage statusCode={500} message={t('errors:server-error')} />
|
<ErrorPage statusCode={500} message={t('errors:server-error')} />
|
||||||
</main>
|
</main>
|
||||||
|
@ -23,7 +23,7 @@ const Home: NextPage<HomeProps> = (props) => {
|
|||||||
<>
|
<>
|
||||||
<Head />
|
<Head />
|
||||||
|
|
||||||
<Header />
|
<Header showLanguage />
|
||||||
<main className='flex flex-col md:mx-auto md:max-w-4xl lg:max-w-7xl'>
|
<main className='flex flex-col md:mx-auto md:max-w-4xl lg:max-w-7xl'>
|
||||||
<Section isMain id='about'>
|
<Section isMain id='about'>
|
||||||
<Profile />
|
<Profile />
|
||||||
|
Loading…
Reference in New Issue
Block a user