# Backend — API de gestion des bénévoles FastAPI · SQLModel · PostgreSQL · Alembic. Dépendances gérées par `uv`. ## Développement Toujours via Docker Compose depuis la racine du dépôt : ```bash docker compose up --build # démarre db + backend (reload actif) docker compose run --rm backend uv run pytest docker compose run --rm backend uv run ruff check . ``` ## Migrations ```bash docker compose run --rm backend uv run alembic revision --autogenerate -m "..." docker compose run --rm backend uv run alembic upgrade head ``` ## Structure | Chemin | Rôle | |---------------------|--------------------------------------------------------| | `app/main.py` | Instance FastAPI, middlewares, routers | | `app/config.py` | Configuration (variables d'environnement) | | `app/db.py` | Engine SQLAlchemy + dépendance de session | | `app/api/` | Routers HTTP | | `app/models/` | Tables SQLModel du domaine | | `app/validation/` | Moteur de règles d'affectation (cœur du produit) | | `app/i18n/` | `t(key)` + `locales/fr.json` — aucun texte en dur ailleurs | | `app/migrations/` | Alembic | | `tests/` | pytest, base de test PostgreSQL réelle | ## Note `uv.lock` est versionné (généré dans le conteneur). Le régénérer après toute modification des dépendances : `docker compose run --rm backend uv lock`.