FitManager - SaaS de gestion de salles de sport et fitness pour le Senegal (Spring Boot + React)
# FitManager — SaaS de gestion de salles de sport (Sénégal)
Plateforme cloud multi-tenant pour la gestion de salles de musculation et fitness en Afrique francophone : membres, abonnements, contrôle d'accès par QR code, paiements (cash + mobile money), coaching, boutique, comptabilité, et 6 agents IA (actuellement en mode règles/templates — voir Statut).
## Stack réellement utilisée
- **Backend** : Java 21, Spring Boot 3.5, Spring Security (JWT), PostgreSQL 16 (isolation multi-tenant par Row-Level Security), Redis, Flyway, PDFBox, Maven
- **Frontend** : React 19, TypeScript, Vite, Material UI, TanStack React Query, React Router — état d'authentification en simple React Context (pas de librairie d'état globale)
- **Infra locale** : Docker Compose (Postgres + Redis pour le dev)
Le backend est un **module Spring Boot unique** (`backend/core-service`), pas une architecture microservices — voir docs/01-architecture-technique.md pour la distinction entre ce qui est construit et la cible à plus long terme.
## Lancer le projet en local
**1. Base de données et cache**
```bash
docker compose up -d postgres redis
```
**2. Backend** (nécessite un `JWT_SECRET` — l'app refuse de démarrer sans, volontairement) :
```bash
cd backend/core-service
# .env.example documente les variables (dont un JWT_SECRET de dev) — Spring
# Boot ne les charge pas automatiquement, il faut les exporter vous-même :
JWT_SECRET=qVlqut5yV2ci1LPxIgPSHwsJgNLovY9zxMe0hnK2o68= ./mvnw spring-boot:run
```
Démarre sur `
localhost`. Migrations Flyway appliquées automatiquement au démarrage.
**3. Frontend**
```bash
cd frontend/web-app
npm install
npm run dev
```
Démarre sur `
localhost` (Vite). Nécessite Node `^20.19.0` ou `>=22.12.0`.
**4. Premier compte**
Ouvrez `
localhost` pour créer votre organisation et votre compte propriétaire — aucun compte n'est préconfiguré.
## Documentation de conception
L'architecture (technique, fonctionnelle, base de données, API, ag …