# 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 module Trésorerie s'ouvre sur l'état des résultats. Les opérations de modification sont réservées aux postes exécutifs. ### Soldes - **Solde banque** : calculé depuis le registre comptable - **Disponible** : banque − engagements non débités − réserves affectées - **Encaisse** : cash reçu mais pas encore déposé à la banque - **Réserves** : soldes calculés depuis l'historique des mouvements de réserves - **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é des transactions : collectes, ventes, dépenses, contributions et opérations bancaires. Le registre comptable est la source de vérité des soldes. ### 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 ### Flux mensuel recommandé 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 --- ## 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 --- ## Gouvernance (C5) ### 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 ### 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. ### 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 C5 (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 l'état des résultats et la position de trésorerie 4. **Exécutif** : transforme les propositions secondées en résolutions (C5) ### 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 | |---------|---------|---------| | État des résultats | `/api/rapports/etat-resultats/{annee}/{mois}` | Revenus + charges + excédent/déficit + trésorerie | | Réunions du mois | `/api/rapports/reunions/{annee}/{mois}` | Réunions + thèmes | > **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*