Le Circographe suit une architecture MVC étendue avec des services, des présentateurs et des jobs:
app/
├── models/ # Modèles ActiveRecord
├── views/ # Vues (ERB, Slim)
├── controllers/ # Contrôleurs
├── services/ # Services métier
├── presenters/ # Présentateurs pour les vues
├── jobs/ # Jobs ActiveJob
├── mailers/ # Mailers pour les emails
├── helpers/ # Helpers pour les vues
├── assets/ # Assets (JS, CSS, images)
│ ├── javascripts/
│ ├── stylesheets/
│ └── images/
├── javascript/ # JavaScript moderne (Stimulus)
└── components/ # Composants View Component
L'application est organisée autour de six domaines métier principaux:
- Adhésion - Gestion des adhérents et de leur statut
- Cotisation - Gestion des cotisations et des tarifs
- Paiement - Gestion des paiements et des factures
- Présence - Gestion des présences aux activités
- Rôles - Gestion des rôles et des permissions
- Notification - Gestion des notifications et des communications
Chaque domaine est implémenté avec ses propres modèles, contrôleurs, services et vues.
| Composant | Technologie | Documentation |
|---|---|---|
| Framework | Ruby on Rails 8.0.1 | Documentation Rails |
| Base de données | SQLite3 | Documentation SQLite |
| Authentification | Authentification native Rails 8 | Documentation Rails Authentication |
| Autorisation | Système d'autorisation personnalisé | Spécifications Rôles |
| Jobs asynchrones | ActiveJob | Documentation ActiveJob |
| Planification | Rufus-Scheduler | Documentation Rufus |
| Tests | RSpec, FactoryBot | Documentation RSpec |
| Composant | Technologie | Documentation |
|---|---|---|
| CSS | Tailwind CSS | Documentation Tailwind |
| Composants | Flowbite | Documentation Flowbite |
| JavaScript | Hotwire (Turbo, Stimulus) | Documentation Hotwire |
| Formulaires | Simple Form | Documentation Simple Form |
| Pagination | Pagy | Documentation Pagy |
Les diagrammes d'architecture de l'application sont disponibles dans le dossier ../assets/diagrams/.
Dernière mise à jour: Mars 2023