groupe-meditation/docs/RUNBOOK.md

248 lines
8.9 KiB
Markdown
Raw Normal View History

2026-03-04 14:01:00 -05:00
# Runbook opérationnel — Groupe Méditation
## Opérations courantes
### Inviter un nouveau membre
2026-04-17 04:04:04 -04:00
1. Un membre de l'exécutif ouvre **G1 — Inviter**
2026-03-04 14:01:00 -05:00
2. Un code à 12 caractères est généré (expire 48h)
3. Le code est partagé en personne ou par SMS
4. Le nouveau membre ouvre l'app → Inscription → entre le code + prénom + nom + PIN
2026-04-17 04:04:04 -04:00
> **Note :** le seed crée le premier code d'invitation avec une expiration de 7 jours.
2026-03-04 14:01:00 -05:00
### Affecter un poste
1. Exécutif ouvre **G3 — Affecter les postes**
2026-04-17 04:04:04 -04:00
2. Seuls les **postes vacants** apparaissent dans le menu déroulant
3. Si tous les postes sont pourvus, un message indique de terminer un mandat d'abord (G4)
4. Sélectionne le membre et le poste → le membre voit ses nouvelles tuiles immédiatement
2026-03-04 14:01:00 -05:00
### Terminer un mandat
1. Exécutif ouvre **G4 — Terminer un mandat**
2026-04-17 04:04:04 -04:00
2. Sélectionne l'affectation active, saisit une note de transition
3. Les permissions sont retirées instantanément et le poste redevient disponible
4. **Rappel** : les mandats ne se terminent jamais automatiquement
---
## Saisie hebdomadaire (pendant/après la réunion)
### Collecte 7e Tradition (S1)
1. Le jour de la réunion, à partir de l'heure prévue, le trésorier ouvre **S1**
2. La date est renseignée automatiquement
3. Saisir le montant et indiquer qui a l'argent ce soir
4. Un second membre confirme le montant (le même membre ne peut pas saisir et confirmer)
5. L'onglet **mensuel** affiche toutes les collectes du mois avec date, montant, qui a saisi et qui détient l'argent
### Autres saisies hebdomadaires
- **Animateur** : S4 (thème + annonces)
- **Resp. jetons** : S2 (si anniversaire ou nouveau)
- **Resp. littérature** : S3 (si vente — le montant sera visible dans la trésorerie pour confirmation)
---
## Trésorerie (S1T)
2026-05-25 17:39:38 -04:00
Le module Trésorerie s'ouvre sur l'état des résultats. Les opérations de modification sont réservées aux postes exécutifs.
2026-04-17 04:04:04 -04:00
### Soldes
2026-05-25 17:39:38 -04:00
- **Solde banque** : calculé depuis le registre comptable
- **Disponible** : banque − engagements non débités − réserves affectées
2026-04-17 04:04:04 -04:00
- **Encaisse** : cash reçu mais pas encore déposé à la banque
2026-05-25 17:39:38 -04:00
- **Réserves** : soldes calculés depuis l'historique des mouvements de réserves
2026-04-17 04:04:04 -04:00
- **En circulation** : collectes pas encore remises au trésorier
### À recevoir
Deux catégories :
1. **Collectes** non encore reçues par le trésorier — bouton « Accuser réception »
2. **Ventes de littérature** non remises — le responsable de la littérature vend, puis le trésorier confirme qu'il a reçu l'argent via « Confirmer la remise »
### Registre
2026-05-25 17:39:38 -04:00
Journal détaillé des transactions : collectes, ventes, dépenses, contributions et opérations bancaires. Le registre comptable est la source de vérité des soldes.
2026-04-17 04:04:04 -04:00
2026-05-25 17:39:38 -04:00
### Opérations
Trois fonctions :
- **Dépôt** : enregistrer un dépôt bancaire provenant de l'encaisse ou d'un don direct
- **Retrait** : enregistrer un retrait de la banque vers l'encaisse
- **Virement** : transférer des montants entre les réserves
2026-04-17 04:04:04 -04:00
### Flux mensuel recommandé
2026-05-25 17:39:38 -04:00
1. Recevoir le relevé bancaire → vérifier le registre de trésorerie
2. Vérifier que le solde correspond → les écarts signalent des opérations non enregistrées ou une correction à saisir
3. Préparer l'état des résultats pour la réunion d'affaires
2026-04-17 04:04:04 -04:00
---
## Dépenses (S5)
### Saisir une dépense
Trois onglets : Saisir, Engagements, Historique.
- La dépense est créée avec `payé = Non` par défaut (engagement)
- Les méthodes chèque/virement créent un engagement visible dans l'onglet « Engagements »
- Pour les dépenses non courantes payées par chèque/virement, une résolution est attendue
### Confirmer un débit
Lorsque l'argent quitte effectivement le compte :
1. Trésorier ouvre S5 → onglet **Engagements**
2. Clique **Confirmer le débit** sur chaque dépense débitée
3. L'engagement disparaît et le solde disponible est mis à jour
---
2026-05-25 17:39:38 -04:00
## Gouvernance (C5)
2026-04-17 04:04:04 -04:00
### Soumettre une proposition
1. N'importe quel membre peut soumettre une proposition **en tout temps** (pas besoin d'une réunion d'affaires)
2. Le sujet est obligatoire ; la réunion d'affaires est optionnelle
3. Un autre membre doit **seconder** la proposition pour qu'elle soit recevable
2026-05-25 17:39:38 -04:00
### Transformer en résolution
1. L'exécutif transforme une proposition secondée en résolution
2. Les sections **ÉTANT DONNÉ QUE** et **LE GROUPE A DÉCIDÉ DE** sont obligatoires
3. Si adoptée, un numéro est attribué : `RES` pour une résolution, `NOM` pour une nomination, `DON` pour une contribution
### Rejeter une proposition
Un membre de l'exécutif peut rejeter une proposition en cours depuis C5.
2026-04-17 04:04:04 -04:00
### Lien avec le PV
Lors de la rédaction du PV (M1), le secrétaire peut **importer les propositions secondées** en un clic. Elles pré-remplissent la section décisions avec le sujet, le proposeur et le secondeur.
---
## Réunion d'affaires mensuelle
### Avant la réunion
2026-05-25 17:39:38 -04:00
- Les membres soumettent leurs propositions via C5 (en tout temps)
2026-04-17 04:04:04 -04:00
- D'autres membres secondent les propositions recevables
### Pendant la réunion
1. **Secrétaire** : M2 (présences) → M1 (PV avec import des propositions)
2026-03-04 14:01:00 -05:00
2. **RSG** : M3 (rapport du district)
2026-05-25 17:39:38 -04:00
3. **Trésorier** : présente l'état des résultats et la position de trésorerie
4. **Exécutif** : transforme les propositions secondées en résolutions (C5)
2026-03-04 14:01:00 -05:00
2026-04-17 04:04:04 -04:00
### Après la réunion
Le secrétaire finalise le PV avec les décisions votées.
2026-03-04 14:01:00 -05:00
---
2026-04-17 04:04:04 -04:00
## Envoi des contributions (M4)
2026-03-04 14:01:00 -05:00
2026-04-17 04:04:04 -04:00
1. Le trésorier ouvre **M4 — Envoi contributions**
2. Le montant disponible (après réserves) est affiché et pré-rempli
3. Sélectionner le destinataire (district par défaut) et la méthode (virement/chèque)
4. Enregistrer l'envoi
---
## Gestion des rapports PDF (C1)
2026-03-04 14:01:00 -05:00
| Rapport | URL API | Contenu |
|---------|---------|---------|
2026-05-25 17:39:38 -04:00
| État des résultats | `/api/rapports/etat-resultats/{annee}/{mois}` | Revenus + charges + excédent/déficit + trésorerie |
2026-04-17 04:04:04 -04:00
| Réunions du mois | `/api/rapports/reunions/{annee}/{mois}` | Réunions + thèmes |
2026-03-04 14:01:00 -05:00
2026-04-17 04:04:04 -04:00
> **Note :** les routes PDF nécessitent WeasyPrint installé sur le serveur.
2026-03-04 14:01:00 -05:00
---
## Surveillance
### Vérifier que l'application tourne
```bash
sudo systemctl status groupe-meditation
2026-05-31 17:13:04 -04:00
curl -s https://app.87-16.org/api/health
2026-03-04 14:01:00 -05:00
sudo journalctl -u groupe-meditation -f --no-pager
2026-04-17 04:04:04 -04:00
sudo tail -f /var/log/nginx/groupe-meditation-error.log
2026-03-04 14:01:00 -05:00
```
### Vérifier les sauvegardes
```bash
ls -la /var/backups/groupe-meditation/ | tail -5
```
### Statistiques base de données
```bash
sudo -u postgres psql -d groupe_meditation -c "
SELECT schemaname, tablename, n_live_tup AS lignes
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC;
"
```
---
## Opérations d'urgence
### L'API ne répond plus
```bash
sudo systemctl restart groupe-meditation
sudo journalctl -u groupe-meditation --since "5 minutes ago"
```
### Un membre a oublié son PIN
2026-04-17 04:04:04 -04:00
Pas de récupération en libre-service (par design). L'exécutif doit :
1. Utiliser **G2** pour désactiver le membre
2. Créer une nouvelle invitation **G1**
2026-03-04 14:01:00 -05:00
3. Le membre se réinscrit avec un nouveau PIN
2026-04-17 04:04:04 -04:00
### Droit à l'oubli
2026-03-04 14:01:00 -05:00
1. Exécutif ouvre **G2 — Gérer les membres**
2. Sélectionne le membre → **Droit à l'oubli**
3. Le prénom et l'ID demeurent pour préserver l'historique
4. Le nom, le téléphone, l'identifiant de connexion, le PIN, les préférences de notification, les abonnements push et la date d'abstinence sont effacés ou neutralisés
5. Le compte ne peut plus être réactivé
2026-03-04 14:01:00 -05:00
### Restaurer la base après incident
```bash
sudo systemctl stop groupe-meditation
sudo -u postgres dropdb groupe_meditation
sudo -u postgres createdb -O grpmed groupe_meditation
2026-04-17 04:04:04 -04:00
sudo -u postgres psql -d groupe_meditation -c "GRANT ALL ON SCHEMA public TO grpmed;"
pg_restore -U grpmed -h 127.0.0.1 -d groupe_meditation \
/var/backups/groupe-meditation/grpmed_DERNIER.dump
2026-03-04 14:01:00 -05:00
sudo systemctl start groupe-meditation
```
---
2026-04-17 04:04:04 -04:00
## Matrice des modules par rôle
| Module | RSG | RSG sub | Trés. | Secr. | Anim. | Litt. | Jetons | Tous |
|--------|:---:|:-------:|:-----:|:-----:|:-----:|:-----:|:------:|:----:|
| C1-C9 Consultation | | | | | | | | ✓ |
2026-05-25 17:39:38 -04:00
| S1 Collecte | ✓ | ✓ | ✓ | ✓ | | | | |
2026-04-17 04:04:04 -04:00
| S1T Trésorerie | | | ✓ | | | | | |
| S2 Remise jeton | | | | | | | ✓ | |
| S3 Vente litt. | | | | | | ✓ | | |
| S4 Rapport réunion | | | | | ✓ | | | |
| S5 Dépense | | | ✓ | | | | | |
| M1 PV | | | | ✓ | | | | |
| M2 Présences | | | | ✓ | | | | |
| M3 Rapport RSG | ✓ | ✓ | | | | | | |
| M4 Contributions | | | ✓ | | | | | |
| M5 Inventaire | | | | | | ✓ | | |
| M6 Commander jetons | | | | | | | ✓ | |
| G1-G9 Gestion | ✓ | ✓ | ✓ | ✓ | | | | |
> Le RSG substitut a exactement les mêmes accès que le RSG — continuité assurée.
> Un membre peut cumuler plusieurs postes. L'écran affiche l'union de tous ses modules.
2026-03-04 14:01:00 -05:00
---
## Contacts et références
- **aa87.org** — Site de la Région 87
- **BSG** — Bureau des Services généraux (aa.org)
2026-05-31 17:13:04 -04:00
- Documentation API : `https://app.87-16.org/api/docs`
2026-03-04 14:01:00 -05:00
---
*«Nos leaders sont des serviteurs de confiance ; ils ne gouvernent pas.» — 2e Tradition*