Projects

Personal portfolio - Content and PDF exports

  • FastAPI
  • React
  • Data-as-Code
  • Python
  • SQLite
  • Vite
  • Architecture Stateless
  • CI/CD Vercel

I built this website to present my experience and projects, with downloadable CVs and experience portfolios in French and English.

JSON files describe the assignments and projects. These sources feed the FastAPI API, React pages and PDF exports. Pydantic checks the data structure; additional checks compare dates and titles between assignments and CVs.

Visitors can filter experience by skill and open each assignment at a dedicated URL. Pages are also generated at build time so their content is available before JavaScript loads. Vercel serves the website and API routes.

Content sources and API

  • Structured assignments, projects and CVs in JSON, with Pydantic validation models.
  • Created the SQLite database and the script that rebuilds it from the source files.
  • Developed FastAPI routes and consistency checks for dates, organizations and assignment links.

Navigation and documents

  • Built the React interface with skill filters and detail pages for each assignment or project.
  • Created CV and experience-portfolio PDF layouts using the website data.
  • Added French and English content, light and dark themes, and keyboard navigation.

Publishing and checks

  • Configured Vercel routing and generated pages and metadata at build time.
  • Configured the local proxy between Vite and FastAPI for development.
  • Checked routes and rendering in the browser, then reviewed the exported PDFs.