Application de gestion complète pour l'association MO5, construite avec SolidJS et une architecture DDD pragmatique. Ce système permet de gérer les membres, les événements, la billeterie, les cotisations et tous les aspects organisationnels de l'association.
MO5 est un espace membre complet avec plusieurs niveaux d'accès et de nombreuses fonctionnalités :
- Public : Billeterie pour les expositions
- Membres : Inscription aux événements (système Doodle-like)
- Bureau : Gestion administrative complète
- Pôles : Outils spécialisés (Live/Vidéo, etc.)
- Billeterie publique pour les expositions
- Gestion d'événements (organisation + inscriptions membres)
- Outils pôle Live/Vidéo (scripts, planning)
- Gestion des cotisations
- Gestion de la collection
- Authentification Discord (intégration serveur asso)
- Node.js 22+
- Yarn
- MySQL
- Serveur Discord de l'association
# Cloner le projet
git clone <repository-url>
cd mo5-solid
# Installer les dépendances
yarn install
# Configurer les variables d'environnement
cp env.example .env
# Éditer .env avec vos valeurs
# Démarrer en développement
yarn devsrc/
├── features/ # Features métier
│ ├── auth/ # Authentification Discord
│ │ ├── auth.api.ts # Routes API
│ │ ├── auth.feature # Documentation feature
│ │ ├── auth.profile.tsx # Profil utilisateur
│ │ ├── auth.signin.tsx # Connexion
│ │ └── auth.signout.tsx # Déconnexion
│ ├── events/ # Gestion des événements
│ ├── ticketing/ # Billeterie publique
│ ├── members/ # Gestion des membres
│ ├── subscriptions/ # Gestion des cotisations
│ ├── collection/ # Gestion de la collection
│ └── live-video/ # Outils pôle Live/Vidéo
├── database/ # Configuration Drizzle
├── ui/ # Composants réutilisables
├── utils/ # Utilitaires
└── types/ # Types TypeScript globaux
- Colocation : Tests à côté du code
- Isolation : Features indépendantes
- Namespaces : Préfixes clairs (xxx.store.ts)
- Scope : Feature trop grosse = mal découpée
- Shared : Ce qui n'est pas dans features est partagé
# Lancer tous les tests
yarn test
# Tests en mode watch
yarn test --watch
# Tests avec interface UI
yarn test:ui
# Tests avec couverture
yarn test:coverageLe projet utilise Tailwind CSS v4 avec des couleurs personnalisées définies dans src/app.css :
@theme {
--color-bg: #f2f2f2;
--color-primary: #4088cf;
--color-secondary: #e84855;
--color-discord: #5468ff;
/* ... */
}L'authentification utilise Auth.js avec Discord comme provider :
- Configuration dans
src/features/auth/auth.api.ts - Variables d'environnement requises dans
.env - Hooks et composants dans
src/features/auth/
Le système utilise les rôles Discord pour gérer les permissions :
@everyone: Accès public (billeterie)Membre: Accès espace membre (inscriptions événements)Bureau: Gestion administrative complètePôle Live: Outils spécialisés Live/VidéoPôle Vidéo: Outils spécialisés VidéoAdmin: Accès complet au système
- ORM : Drizzle ORM
- Base : MySQL
- Configuration :
src/database/ - URL :
DATABASE_URLdans.env
yarn dev # Développement
yarn build # Build de production
yarn start # Serveur de production
yarn lint # Linting
yarn test # Tests
yarn test:ui # Tests avec UI
yarn test:coverage # Tests avec couverture
yarn db:generate # Générer migrations
yarn db:migrate # Appliquer migrations
yarn db:push # Push schema
yarn db:studio # Interface Drizzle Studiodocs/: Documentation techniquedocs/features/: Documentation des featuresdocs/architecture/: Architecture et tech stack
- ✅ Auth : Authentification Discord complète avec rôles
- 🔄 Events : Gestion des événements (création, modification, inscriptions)
- 🔄 Members : Gestion des membres et profils
- ⏳ Ticketing : Billeterie publique pour expositions
- ⏳ Public Events : Affichage public des événements
- ⏳ Subscriptions : Gestion des cotisations
- ⏳ Collection : Gestion de la collection
- ⏳ Reports : Tableaux de bord et rapports
- ⏳ Live Video Tools : Scripts, planning pour pôle Live/Vidéo
- ⏳ Advanced Features : Fonctionnalités avancées selon besoins
- Billeterie pour les expositions
- Événements publics à venir
- Informations sur l'association
- Tableau de bord personnel
- Inscription aux événements (système Doodle-like)
- Historique des participations
- Gestion du profil
- Gestion des événements (création, modification)
- Gestion des membres et rôles
- Gestion des cotisations
- Rapports et statistiques
- Pôle Live/Vidéo : Scripts, planning, ressources
- Autres pôles : Outils selon besoins spécifiques
- Authentification Discord pour tous les accès
- Rôles granulaires selon les responsabilités
- Chiffrement des données sensibles
- Traçabilité des actions importantes
- Fork le projet
- Créer une branche feature (
git checkout -b feature/nouvelle-feature) - Commit les changements (
git commit -m 'Ajouter nouvelle feature') - Push vers la branche (
git push origin feature/nouvelle-feature) - Ouvrir une Pull Request
Ce projet est sous licence MIT.
MO5 - Espace membre d'association moderne et complet 🏛️