- 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
40 lines
1.6 KiB
Markdown
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.
|