# CleanTogo — Backend
API REST de la plateforme de gestion de la collecte des déchets ménagers
à Lomé. Spring Boot 4, Java 17, PostgreSQL, authentification JWT.
Trois clients consomment cette API : l'espace d'administration web
(Angular), l'application mobile foyer et l'application mobile chauffeur
(Flutter).
## Prérequis
- Java 17 ou supérieur
- PostgreSQL 15 ou supérieur
- Maven (inclus via `mvnw`, aucune installation nécessaire)
## Démarrage sur une machine neuve
### 1. Créer le rôle et la base
Une seule fois, en tant que superutilisateur PostgreSQL :
```bash
psql -U postgres -h localhost -f db/00_init_role_database.sql
```
Ce script crée le rôle applicatif `CleanAdmin` et la base `CleanTogoDB`.
Il ne crée **ni table ni compte utilisateur** : le schéma est généré par
Hibernate au démarrage. C'est la confusion la plus fréquente sur ce
projet — le « CleanAdmin » de ce script est un rôle PostgreSQL, pas
l'administrateur de l'application.
### 2. Lancer le backend
```bash
./mvnw spring-boot:run
```
L'API écoute sur `
localhost`.
Documentation interactive : `
localhost`.
### 3. Se connecter
Au premier démarrage, si la base ne contient aucun administrateur, le
backend en crée un et le signale dans le journal :
```
INFO InitialisationAdministrateur : Premier administrateur cree : admin@cleantogo.tg
```
| | |
|---|---|
| Adresse | `admin@cleantogo.tg` |
| Mot de passe | `Admin@2026` |
Le traitement est idempotent : dès qu'un administrateur existe, quel que
soit son email, il ne fait plus rien. Il peut donc tourner à chaque
démarrage sans risque.
Si l'adresse choisie appartient déjà à un client ou à un chauffeur, aucun
compte n'est créé et le journal l'indique en erreur : créer un doublon
rendrait la connexion imprévisible.
## Configuration
Tout se surcharge par variables d'environnement, sans toucher à
`application.properties`. Les valeurs ci-dessous sont les défauts du poste
de développement.
### Base de donnée …