groupe-meditation/docs/RUNBOOK.md
2026-04-17 04:04:04 -04:00

8.6 KiB
Raw Blame History

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

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

ls -la /var/backups/groupe-meditation/ | tail -5

Statistiques base de données

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

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

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