DrivingMaster est une plateforme SaaS multi‑tenant de gestion d’auto‑écoles, conçue pour répondre à des exigences réelles, professionnelles et scalables.
Le projet adopte une architecture Shared Database / Separate Schemas afin de garantir :
- 🔐 Isolation stricte des données par auto‑école (tenant)
- 🚀 Scalabilité horizontale
- 🧠 Simplicité métier côté requêtes
- 🏢 Mutualisation de l’infrastructure
- Digitaliser la gestion complète d’une auto‑école
- Fournir une plateforme SaaS extensible et sécurisée
- Mettre en œuvre une architecture multi‑tenant avancée avec Spring Boot
- Séparer clairement les responsabilités métier / sécurité / infrastructure
- Java 21
- Spring Boot 3.5.x
- Spring Security (JWT)
- Hibernate 6 – Multi‑Tenancy (SCHEMA)
- PostgreSQL
- Landing Page : React
- Dashboard Métier : Angular
- Back‑Office Admin : Angular (séparé)
-
Une seule base PostgreSQL
-
Un schéma par auto‑école
-
Un schéma
publicpour :- utilisateurs techniques
- registry des tenants
- authentification
Le tenant est résolu à chaque requête via :
- l’en‑tête HTTP
X-Tenant-ID
Un TenantResolutionFilter positionne dynamiquement :
SET search_path TO <tenant_schema>👉 Résultat :
- AUCUN
tenant_iddans les entités - AUCUNE clause WHERE tenant_id = ?
- Le moteur SQL travaille directement dans le bon schéma
- STUDENT : élève
- MONITOR : moniteur / responsable métier de l’auto‑école
- ROOT : contrôle total de la plateforme
- SUPER_ADMIN : supervision des auto‑écoles
- REVIEWER : validation des demandes (moniteurs)
-
JWT stateless
-
Claims contrôlés
-
Séparation stricte :
- Auth Users (tenant‑aware)
- Auth Platform Admin (public)
- Aucun accès tenant sans
X-Tenant-ID - Aucune donnée partagée entre auto‑écoles
- Aucune logique métier dans les filtres
- Création d’un compte technique (public)
- Statut initial :
PENDINGouREGISTERED
- Réservée au MONITOR validé
- Génération automatique du schéma PostgreSQL
-
Les PlatformAdmin valident :
- moniteurs
- auto‑écoles
- Accès au dashboard tenant
- Données isolées par schéma
- Multi‑tenancy par schéma
- Authentification JWT
- Registry des tenants
- Création automatique des schémas
- Stabilisation de la sécurité admin
- Séparation complète des chaînes de filtres
- Finalisation des workflows de validation
backend/
├── core/
│ ├── tenant/
│ ├── security/
│ ├── auth/
│ └── common/
├── modules/
│ ├── driving-school/
│ ├── student/
│ └── monitor/
└── platform/
└── admin/
Ce projet est conçu comme un vrai produit SaaS, pas comme un exercice académique.
Les choix techniques privilégient :
- la maintenabilité
- la lisibilité
- la séparation des responsabilités
- l’évolutivité long terme
Kamsu Modjo Victor Y Développeur Java / Spring Boot
- 🌐 Agence : https://mv-tech.vercel.app
- 🌐 Portfolio : https://modjovictor.vercel.app
- linkedin : in/victor-modjo
Ce projet est en développement actif. Certaines parties sont volontairement itératives afin de refléter un cycle réel de conception SaaS.
"Build systems like you expect them to scale." 🚀