5f7718adfd806285c854f47740d1e2c48516414b
La cellule « Affectés / idéal » (figée en haut à gauche) et le libellé « N postes » partageaient le même z-index (6) — une égalité entre deux éléments sticky peut se départager de façon imprévisible pendant un défilement selon le navigateur. Par ailleurs, l'infobulle de survol d'une cellule de créneau (z-20) n'était pas isolée dans son propre contexte d'empilement et rivalisait donc directement avec les en-têtes figés (max z-6) : un survol déclenché par la molette pendant un défilement (le curseur reste immobile, ce sont les cellules qui défilent dessous) pouvait la faire passer au-dessus de l'en-tête le temps de sa transition de disparition. Hiérarchie refaite sans égalité (coins figés 20/21 > en-têtes 11/12 > libellés de poste 10 > cellules, chacune isolée via `relative z-0`). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Gestion des bénévoles
Application web de gestion des bénévoles pour un festival associatif. Backend FastAPI + PostgreSQL, frontend React (à venir), déploiement Docker Compose auto-hébergé.
Voir CLAUDE.md pour le vocabulaire du domaine, l'arborescence
et les conventions.
Démarrage rapide
make demo # base + backend + frontend, jeu de démonstration chargé
make blank # idem, mais édition vierge + 1er compte coordination
- Frontend : http://localhost:5173
- API : http://localhost:8000 · Docs : http://localhost:8000/docs
make downarrête tout ·make logssuit les logs du backend
Chaque commande construit les images, applique les migrations, prépare les
données, bascule le frontend sur l'API réelle (.env) et affiche les
identifiants de connexion.
make blank accepte des paramètres :
make blank EMAIL=moi@festival.fr PASSWORD=mon-mot-de-passe-solide \
NAME="Festival 2026" START=2026-07-01 END=2026-07-04
Le jeu de démo : 120 bénévoles fictifs, 15 postes, 4 jours. L'édition vierge : une édition + un compte coordination (mot de passe) + 3 créneaux types.
Tests
docker compose run --rm backend uv run pytest
La base de test (benevoles_test) est créée automatiquement au premier
démarrage du conteneur PostgreSQL.
Structure
| Dossier | Rôle |
|---|---|
backend/ |
API FastAPI, modèle SQLModel, migrations Alembic |
frontend/ |
Interface React + Vite + TS + Tailwind (service frontend) |
deploy/ |
Configuration de déploiement production (compose, Caddy, runbook) |
.gitea/workflows/ |
Chaîne CI/CD (tests → build → SSH sur le VPS) |
Languages
Python
51.8%
TypeScript
47.6%
JavaScript
0.2%
Makefile
0.2%
Dockerfile
0.1%