Application Rails 8 de gestion associative pour Le Circographe (adhésions, cotisations, paiements, présences, événements).
Le projet utilise un vocabulaire DDD-light strict. Avant toute contribution, lire :
- docs/glossary.md — lexique canonique (FR/EN), termes interdits.
- docs/domain_model.md — modèle de domaine (diagramme Mermaid).
- docs/payments.md — paiements, lignes, dons.
- docs/migrations/vocabulary_migration.md — plan de migration en cours.
Résumé express :
Person(CRM) ⟶User(compte web, toujours rattaché à unePerson) ⟶Membership(adhésion annuelle) ⟶Contribution(cotisation cirque) selon uneContributionFormula. Les paiements (Payment) regroupent une ou plusieursPaymentLine(adhésion, cotisation, don).
# Pré-requis : Ruby 4.0.1 (RVM/asdf) + SQLite + Foreman
bundle install
bin/rails db:prepare
bin/devApplication disponible sur http://localhost:3000. Letter Opener Web (emails de dev) sur http://localhost:3000/letter_opener.
Le projet utilise RSpec uniquement. Le legacy Minitest (test/) a ete retire.
La stack d'authentification reste native Rails 8 (pas Devise).
bin/rspec spec/services # RSpec sérialisé pour SQLite
bin/test # suite complète + couverture
bin/test_fast # models + services (rapide)
bin/test --no-coverage # sans SimpleCov
bin/test_watch # watch mode via Guard
bundle exec rubocop --force-exclusionAvec SQLite, n'exécutez pas plusieurs processus RSpec en parallèle sur la même base tmp/test.sqlite3.
Utilisez bin/rspec, bin/test, bin/test_fast et bin/test_watch : ils sérialisent l'accès via un lockfile.
| Environnement | URL | Branche |
|---|---|---|
| Development | http://localhost:3000 |
locale |
| Staging | https://staging.lecircographe.fr |
staging |
| Production | https://lecircographe.fr |
main |
Déploiement Kamal automatisé via GitHub Actions :
- Push sur
staging→ déploiement staging. - Push sur
main→ déploiement production. - Workflow « 04 - Promote to Main » : staging → main.
Scripts utilitaires :
./scripts/maintenance.sh [enable|disable|status] [staging|production]
./scripts/server-pull.sh [staging|production] [SERVER_IP]- Ruby
4.0.1 - Rails
8.1.3 - SQLite (multi-base : main / cache / queue / cable)
- Importmap + Propshaft (pas de Node.js)
- SolidQueue / SolidCache / SolidCable
- Docker + Kamal (déploiement)
L'index complet de la documentation se trouve dans docs/README.md. Points d'entrée recommandés :
docs/glossary.md— vocabulaire canonique.docs/domain/business_logic.md— règles métier.docs/architecture/services.md— catalogue des services.docs/development/testing.md— guide TDD.docs/operations/deployment.md— déploiement Kamal.
Application développée pour Le Circographe.