Site iconSite icon Anthony Jacob

Refonte de mon site vitrine : du PHP « statique » à un écosystème modulaire en Flask, Next.js & PostgreSQL

Temps de lecture estimé: 4 minutes

🔍 Préambule

Ce projet est plus qu’un simple CV en ligne. J’ai conçu une architecture modulaire composée de trois applications distinctes — toutes exposées publiquement :

Chacune de ces applications est déployée en production, mais je propose également une version démo de l’ensemble pour permettre à d’autres de tester librement les fonctionnalités.

Enfin, l’ensemble du code source est disponible en accès libre sur mon GitLab, pour celles et ceux qui souhaiteraient explorer le projet ou s’en inspirer.

Pourquoi refaire mon site vitrine ?

Depuis plusieurs années, mon site personnel me sert de CV en ligne. À l’origine, il s’agissait d’un site PHP développé avec CodeIgniter, utilisé principalement pour :

Mais le cœur du contenu (notamment mon CV) était intégralement écrit en dur dans les templates HTML (un template pour le français, un template pour l’anglais). Difficile à maintenir, difficile à faire évoluer.

Expériences hardcodées

Je l’ai fait initialement de cette manière par manque de temps. J’ai eu envie d’un projet plus structuré, plus dynamique, et surtout d’un terrain de jeu pour expérimenter de nouvelles technologies.


🧪 Pourquoi trois applis séparées ?

Ce choix est volontaire et pédagogique. En séparant mon projet en 3 blocs indépendants, je voulais :


🏗️ Une refonte complète autour de trois applications

1. 🧠 Une API centrale en Python + Flask

API-postman

J’ai commencé par développer une API REST en Python avec Flask. Cette API gère tout le CRUD des entités principales de mon CV :

Ainsi qu’une passerelle pour l’envoi d’emails, qui utilise l’API Graph de Microsoft (via OAuth2).

Quelques choix techniques notables :

à défaut d’avoir fait une documentation, une collection Postman est disponible sur mon gitlab .

2. 🛠️ Un backoffice admin en Next.js + React

Liste des expériences sur l’interface d’administration

Je voulais aussi explorer React et Next.js, deux technos largement utilisées côté front.

J’ai donc développé une interface d’administration en Next.js (avec TypeScript), pour gérer facilement la modifications des données, des images et des PDF de mon CV :

Cela m’a permis de :

3. 🌐 Un site vitrine dynamique en Flask

Enfin, j’ai refait mon site vitrine (le CV en ligne) toujours avec Flask, mais cette fois :


🚀 Déploiement en production et en démo

🔄 Déploiement automatique de la version demo

La version de démonstration est automatiquement déployée grâce à GitLab CI/CD :

Cela me permet de tester en conditions réelles la dernière version de mes applications, sans avoir à intervenir manuellement.

🧼 Réinitialisation automatique de la démo

Un cron job régulier s’assure que la version démo reste propre et fonctionnelle :

🛠️ Mise à jour de la production

Le déploiement en production, quant à lui, reste manuel. Cela me permet de :

J’ai fait un article si tu souhaite en savoir plus sur mon infra.

⚠️ Disclaimer

Ce projet reste un side project, développé sur mon temps personnel, dans une logique de preuve de concept (POC).

Il fonctionne globalement bien, mais je tiens à préciser quelques points importants pour toute personne qui souhaiterait :

💬 Peu (ou pas) de documentation :

🔍 Code encore perfectible :

🎯 Cela dit, le fonctionnement global est assuré, et l’objectif initial — proposer un CV en ligne dynamique, administrable et bien découpé — est atteint.

🔚 Conclusion : un projet personnel devenu terrain d’expérimentation

Ce projet de refonte m’a permis de :

Partagez l'article:
Quitter la version mobile