É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
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user