Ceci est le backend de notre projet
# Meredian Backend
API de veille des inondations au Sénégal — NestJS + PostgreSQL (TypeORM).
Suit le niveau d'eau par zone via des capteurs, calcule la gravité (`sec` /
`vigilance` / `alerte` / `critique`), gère les épisodes de crue, les alertes
et les diffusions, et expose des vues dérivées (impacts, veille sanitaire,
mobilité) pour le frontend.
## Prérequis
- Node.js 20+
- Docker (pour PostgreSQL en local)
## Lancement local
```bash
npm install
cp .env.example .env # ajuster si besoin (voir Variables d'environnement)
docker compose up -d # démarre PostgreSQL
npm run start:dev # API sur
localhost
```
En développement (`NODE_ENV=development`), TypeORM crée automatiquement le
schéma en base au démarrage (`synchronize: true`) — aucune migration à jouer
manuellement.
## Docker Compose
`docker-compose.yml` démarre uniquement PostgreSQL (l'API tourne en local,
pas en conteneur, pour profiter du hot-reload de `start:dev`) :
```bash
docker compose up -d # démarrer
docker compose ps # statut
docker compose down # arrêter (les données persistent dans le volume)
docker compose down -v # arrêter et supprimer les données
```
Le port hôte publié est **5434** (pas 5432), pour éviter les conflits avec
une éventuelle instance PostgreSQL déjà présente sur la machine — vérifie
`docker-compose.yml` / `.env` si tu changes cette valeur.
## Peupler la base (seed)
```bash
npm run seed
```
Crée 2 régions (Dakar, Kaolack), 4 zones avec leurs capteurs, relais,
7 jours de mesures et leurs épisodes de crue. **Idempotent** : ne fait rien
si des zones existent déjà en base.
Capteurs créés (clé API à passer dans l'en-tête `X-Sensor-Key` pour
`POST /ingest`) :
| Zone | Capteur | Clé API |
| ----------------- | ------- | ---------------- |
| yeumbeul-nord | YN-02 | `dev-yn-02-key` |
| malika | MK-01 | `dev-mk-01-key` |
| keur-massar-sud | KM-05 | `dev-km-05-key` |
| kaolack-cent …