| backend | ||
| deploy | ||
| docs | ||
| frontend | ||
| README.md | ||
Groupe Méditation — Application PWA
District 87-16 · Région 87 · Alcooliques anonymes
Application mobile-first pour la gestion des groupes AA. 1 module = 1 tâche.
Architecture
| Couche | Technologie |
|---|---|
| Frontend | React 18 + Vite (PWA installable) |
| UI | Tailwind CSS (mobile-first) |
| État | Zustand |
| Backend | FastAPI (Python) async, 82 routes |
| DB | PostgreSQL + SQLAlchemy async (23+ tables) |
| Auth | JWT 30 jours + bcrypt 12 rounds (prénom + PIN) |
| WeasyPrint | |
| Serveur | NGINX (statiques + reverse proxy HTTPS) |
Modules
Consultation (C1-C7) — Tous les membres
- C1 Rapports PDF — finances, PV, résolutions, rapport complet
- C2 Événements à venir — anniversaires de sobriété et événements ad hoc du district
- C4 Littérature — inventaire avec prix, alerte stock bas
- C5 Décisions en cours — suivi des résolutions
- C6 Votes ouverts — sondages de conscience de groupe, vote anonyme
- C7 Mon profil — modifier, changer PIN, notifications
- C8 Propositions — soumettre, seconder, voter (créables en tout temps)
- C9 S'impliquer — postes vacants, candidatures
Saisie hebdomadaire (S1-S5)
- S1 Collecte 7e Tradition — saisie le jour de réunion, confirmation par un second membre, historique mensuel avec totaux
- S1T Trésorerie — soldes (banque + encaisse + disponible après réserves), réception des collectes et ventes de littérature, registre détaillé des transactions, opérations bancaires (dépôt/retrait/relevé)
- S2 Remise de jeton — 9 types, historique
- S3 Vente littérature — stock auto-décrémenté, montant à remettre au trésorier
- S4 Rapport de réunion — thème + annonces
- S5 Dépenses — 6 champs, engagements non débités, confirmation de débit par le trésorier
Saisie mensuelle (M1-M6)
- M1 Rédiger PV — auto-renseigné depuis les propositions secondées, décisions structurées
- M2 Présences réunion d'affaires
- M3 Rapport RSG — template 3 sections
- M4 Envoi contributions — somme disponible affichée par défaut, destinataire + montant + méthode
- M5 Ajuster inventaire — +/−, ajout catalogue
- M6 Commander jetons — état stock 30 jours
Gestion (G1-G9) — Exécutif
- G1 Inviter un membre — code 48h
- G2 Gérer les membres — fiche complète, droit à l'oubli
- G3 Affecter les postes — n'affiche que les postes vacants
- G4 Terminer un mandat — transition manuelle, note pour le successeur
- G5 Planifier les rotations — calendrier serviteurs
- G6 Lancer un sondage — oui/non, choix multiple, unanimité
- G7 Jumeler parrain/filleul — confidentiel
- G9 Paramètres du groupe — nom, horaire, adresse, format
- G10 Gérer les postes — créer, abolir, candidatures
Trésorerie
Le calcul des soldes repose sur le relevé bancaire mensuel :
- Solde banque = dernier relevé + dépôts − retraits depuis le relevé
- Disponible = solde banque − engagements non débités − réserves
- Réserves = réserve prudente (500 $) + réserve anniversaire (20 $/mois)
- Encaisse = collectes reçues + ventes remises − dépôts − dépenses cash
Toute dépense par chèque ou virement est un engagement. Le trésorier confirme le débit lorsque l'argent quitte effectivement le compte.
Propositions et résolutions
Les propositions peuvent être créées en tout temps par n'importe quel membre, sans nécessiter une réunion d'affaires. Le cycle est : proposée → secondée → votée (adoptée/rejetée). Lorsqu'adoptée, la proposition devient une résolution numérotée (RES-2026-001) et peut être associée à l'assemblée d'affaires lors du vote.
Le PV de la réunion d'affaires s'auto-renseigne depuis les propositions secondées en attente de vote.
Principes
- Anonymat AA (12e Tradition) — prénom seul dans les écrans partagés
- Pas d'administrateur (2e Tradition) — permissions = exécutif du groupe
- Mandats manuels — aucune terminaison automatique
- Zéro traçage — pas d'analytics, pas de cookies tiers
- Hébergé au Québec — souveraineté numérique · 100 % logiciel libre
Fichiers
backend/ API FastAPI (Python)
app/
core/ Config, DB, sécurité
models/ Modèles SQLAlchemy (23+ tables)
routers/ Routes API (26 groupes)
schemas/ Schémas Pydantic
frontend/ React + Vite + Tailwind
src/
pages/ 33 pages
stores/ Zustand + API helper
components/ Composants réutilisables
deploy/ Service systemd, NGINX, seed, backup
docs/ DEPLOIEMENT.md, RUNBOOK.md
«Nos leaders sont des serviteurs de confiance ; ils ne gouvernent pas.» — 2e Tradition