243 lines
8.6 KiB
Markdown
243 lines
8.6 KiB
Markdown
# Runbook opérationnel — Groupe Méditation
|
||
|
||
## Opérations courantes
|
||
|
||
### Inviter un nouveau membre
|
||
1. Un membre de l'exécutif ouvre **G1 — Inviter**
|
||
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
|
||
|
||
> **Note :** le seed crée le premier code d'invitation avec une expiration de 7 jours.
|
||
|
||
### Affecter un poste
|
||
1. Exécutif ouvre **G3 — Affecter les postes**
|
||
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
|
||
|
||
### Terminer un mandat
|
||
1. Exécutif ouvre **G4 — Terminer un mandat**
|
||
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)
|
||
|
||
Le trésorier dispose de quatre onglets.
|
||
|
||
### Soldes
|
||
- **Solde banque** : basé sur le dernier relevé + dépôts/retraits enregistrés depuis
|
||
- **Disponible** : solde banque − engagements non débités − réserves
|
||
- **Encaisse** : cash reçu mais pas encore déposé à la banque
|
||
- **Réserves** : prudente (500 $) + anniversaire (+20 $/mois depuis la création du groupe)
|
||
- **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
|
||
Journal détaillé de toutes les transactions du mois courant : collectes, ventes, dépenses, contributions, opérations bancaires. Avec totaux entrées/sorties.
|
||
|
||
### Opération bancaire
|
||
Trois types :
|
||
- **Dépôt** : enregistrer un dépôt bancaire
|
||
- **Retrait** : enregistrer un retrait
|
||
- **Relevé** : saisir le solde du relevé mensuel de la banque (sert de base au calcul des soldes)
|
||
|
||
### Flux mensuel recommandé
|
||
1. Recevoir le relevé bancaire → enregistrer un **relevé** dans S1T
|
||
2. Vérifier que le solde correspond → les écarts signalent des opérations non enregistrées
|
||
3. Préparer le rapport financier pour la réunion d'affaires
|
||
|
||
---
|
||
|
||
## 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
|
||
|
||
---
|
||
|
||
## Propositions et résolutions (C8)
|
||
|
||
### 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
|
||
|
||
### Voter une résolution
|
||
1. L'exécutif vote **Adopter** ou **Rejeter** lors de la réunion d'affaires
|
||
2. Si adoptée, un numéro de résolution est attribué (RES-2026-001)
|
||
3. La proposition est automatiquement associée à la réunion d'affaires lors du vote
|
||
|
||
### 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
|
||
- Les membres soumettent leurs propositions via C8 (en tout temps)
|
||
- D'autres membres secondent les propositions recevables
|
||
|
||
### Pendant la réunion
|
||
1. **Secrétaire** : M2 (présences) → M1 (PV avec import des propositions)
|
||
2. **RSG** : M3 (rapport du district)
|
||
3. **Trésorier** : présente le rapport financier (depuis le registre S1T)
|
||
4. **Exécutif** : vote les propositions secondées (C8)
|
||
|
||
### Après la réunion
|
||
Le secrétaire finalise le PV avec les décisions votées.
|
||
|
||
---
|
||
|
||
## Envoi des contributions (M4)
|
||
|
||
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)
|
||
|
||
| Rapport | URL API | Contenu |
|
||
|---------|---------|---------|
|
||
| Financier mensuel | `/api/rapports/finances/{annee}/{mois}` | Collectes + dépenses + solde |
|
||
| Réunions du mois | `/api/rapports/reunions/{annee}/{mois}` | Réunions + thèmes |
|
||
| Financier complet | `/api/rapports/financier-complet/{annee}/{mois}` | Collectes + dépenses + contributions + impayés |
|
||
|
||
> **Note :** les routes PDF nécessitent WeasyPrint installé sur le serveur.
|
||
|
||
---
|
||
|
||
## Surveillance
|
||
|
||
### Vérifier que l'application tourne
|
||
|
||
```bash
|
||
sudo systemctl status groupe-meditation
|
||
curl -s https://groupe-meditation.87-16.org/api/health
|
||
sudo journalctl -u groupe-meditation -f --no-pager
|
||
sudo tail -f /var/log/nginx/groupe-meditation-error.log
|
||
```
|
||
|
||
### 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
|
||
|
||
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**
|
||
3. Le membre se réinscrit avec un nouveau PIN
|
||
|
||
### Droit à l'oubli
|
||
|
||
1. Exécutif ouvre **G2 — Gérer les membres**
|
||
2. Sélectionne le membre → **Droit à l'oubli**
|
||
3. Les données personnelles sont supprimées, les données historiques anonymisées
|
||
|
||
### 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
|
||
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
|
||
sudo systemctl start groupe-meditation
|
||
```
|
||
|
||
---
|
||
|
||
## Matrice des modules par rôle
|
||
|
||
| Module | RSG | RSG sub | Trés. | Secr. | Anim. | Litt. | Jetons | Tous |
|
||
|--------|:---:|:-------:|:-----:|:-----:|:-----:|:-----:|:------:|:----:|
|
||
| C1-C9 Consultation | | | | | | | | ✓ |
|
||
| S1 Collecte | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||
| 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.
|
||
|
||
---
|
||
|
||
## Contacts et références
|
||
|
||
- **aa87.org** — Site de la Région 87
|
||
- **BSG** — Bureau des Services généraux (aa.org)
|
||
- Documentation API : `https://groupe-meditation.87-16.org/api/docs`
|
||
|
||
---
|
||
|
||
*«Nos leaders sont des serviteurs de confiance ; ils ne gouvernent pas.» — 2e Tradition*
|