AdamThomasandClaude Sonnet 5 40127a2252 Étape 22 : feuilles de poste (PDF), complément des badges
Une page par poste et par jour, listant les créneaux avec les bénévoles
affectés et leur téléphone — à imprimer et afficher sur place. Aucune
nouvelle entité : dérivé de Position/Shift/Assignment/Volunteer
existants (contrairement aux badges, pas de personnalisation à
configurer). Un créneau à besoin 0/0 sans affectation n'apparaît pas.

Backend : app/sheets/pdf.py (ReportLab, Platypus — SimpleDocTemplate/
Table plutôt que le canvas bas niveau des badges, plus adapté à un
rapport texte multi-pages), POST /editions/{id}/position-sheets/generate
(COORDINATION, {position_ids?} — absent = tous les postes).

Frontend : bouton « Feuilles de poste » dans la grille des besoins,
respecte le filtre de catégorie déjà actif à l'écran.

Vérifié : pytest (284 passés), ruff, alembic check, tsc --noEmit,
eslint, vite build, smoke (flux de bout en bout en mode démonstration)
— tous verts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 21:27:01 +02:00
2026-09-16 21:49:34 +02:00
2026-09-16 21:49:34 +02:00
2026-09-16 21:49:34 +02:00
2026-09-16 21:09:28 +02:00

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

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)
S
Description
No description provided
Readme
1.8 MiB
Languages
Python 51.8%
TypeScript 47.6%
JavaScript 0.2%
Makefile 0.2%
Dockerfile 0.1%