Files
benevoles/backend/README.md
T
AdamThomasandClaude Sonnet 5 09d7d70076 Étape 1 : squelette du projet
- Monorepo backend/ + frontend/ + deploy/
- Backend FastAPI/SQLModel/Alembic/uv qui démarre (health check, config,
  i18n, base de test PostgreSQL, pytest)
- docker-compose de développement (db + backend hot-reload)
- Chaîne CI/CD GitHub Actions : lint + tests, build image, push GHCR,
  déploiement SSH sur le VPS à chaque push main
- CLAUDE.md : vocabulaire du domaine, conventions, commandes

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017uUsRg7XzopkCPWimwg9ZM
2026-09-09 22:19:58 +02:00

40 lines
1.6 KiB
Markdown

# 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
Le `uv.lock` n'est pas encore versionné (pas de `uv` sur le poste de dev).
Il sera figé et commité une fois généré dans le conteneur.