Formation+
Une plateforme de cours en ligne découpée en microservices : comptes, cours, vidéos, progression et avis, derrière une passerelle unique.

Le point de départ
Une plateforme de formation grandit par morceaux : le catalogue, la lecture des cours, la progression, les avis. Chaque partie doit pouvoir évoluer et se déployer sans bloquer les autres.
L'approche choisie
- 01
Cinq services métier Spring Boot (utilisateurs, cours, vidéos, progression, avis), chacun avec sa base PostgreSQL et ses migrations Flyway.
- 02
Une passerelle Spring Cloud Gateway qui valide les JWT et route vers les services découverts par Eureka.
- 03
Des événements RabbitMQ publiés par la progression et les avis, et des appels OpenFeign entre services.
- 04
Une SPA React : catalogue filtrable, lecteur de cours, parcours, tableau de bord et studio du créateur.


Sous le capot
Une base par service
Aucun service ne lit les tables d'un autre : les dépendances passent par l'API ou par les événements.
Jetons sans localStorage
Jeton d'accès de 15 minutes en mémoire, jeton de rafraîchissement opaque de 7 jours, haché en base et renouvelé à chaque usage.
Librairie partagée
formation-commons regroupe le JWT et les exceptions, communs à tous les services.
Ce que j'ai construit
- Catalogue paginé avec filtres
- Parcours de formation
- Avis et notes
- Recherche ⌘K
- Thèmes clair et sombre
- Documentation Swagger
Bilan et perspectives
Lancement complet par Docker Compose : PostgreSQL, RabbitMQ, les sept applications Spring Boot et l'interface derrière Nginx.
- Tests encore minimaux (JWT et filtres de recherche), tests d'intégration prévus.
Projet suivant
Kioku
Carnet de voyage familial installable : tout préparer en amont, tout retrouver sur place, même hors ligne.
