9e0be07726fd731ef0eb23a916139527bbd46cd3
Deux bugs sur l'écran référent (/mobile-referent) : - Il était resté à l'étape maquette (`PhoneFrame`/`DesignNote`, cadre de téléphone à taille fixe) alors que la vue bénévole avait déjà été convertie en vraie page responsive. Repli sur `positions.data[0]` en l'absence de poste géré par le compte connecté : un référent qui n'est encore désigné sur aucun poste se voyait quand même affiché comme référent du premier poste de l'édition (« Accueil artistes » dans les données de démo) au lieu de voir qu'il n'en a aucun. Réécriture de `MobileLeadPage.tsx` en page responsive (mobile d'abord, `sm:` pour l'élargissement, comme `MobileVolunteerPage.tsx`) : plus de maquette de téléphone, une carte par poste réellement géré (`Position.lead_account_id === account.id`, sans repli), créneau en cours ou à venir calculé sur l'heure réelle (nouveau hook partagé `useNowMinutes`, extrait de la vue bénévole), équipe affectée avec pointage présent/absent (toujours local à l'écran : le pointage sur site reste hors périmètre, CLAUDE.md §5). État vide explicite si le compte n'est référent d'aucun poste. `PhoneFrame`/`DesignNote` n'avaient plus d'autre utilisateur : supprimés avec leurs clés i18n devenues mortes. Non inclus dans ce commit (édités en parallèle par l'utilisateur, laissés en l'état) : backend/app/seed.py, frontend/tailwind.config.js. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017uUsRg7XzopkCPWimwg9ZM
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) |
.gitlab-ci.yml |
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%