Une plateforme moderne et complète de gestion d'événements avec interface SuperAdmin ultra-premium, système de commissions et gestion des payouts.
- Fonctionnalités
- Technologies
- Installation
- Configuration
- Lancement
- Comptes de Test
- Structure du Projet
- API Documentation
- Scripts Utiles
- Système JWT complet avec refresh tokens
- Rôles: SuperAdmin, Organisateur, Participant
- Protection des routes côté frontend et backend
- Visualisation de tous les utilisateurs
- Suspension/Activation des comptes
- Promotion des rôles
- Statistiques détaillées
- Création d'événements (physiques, virtuels, hybrides)
- Modération et mise en vedette
- Catégories et tags personnalisables
- Gestion des inscriptions et QR codes
- Commission globale configurable
- Commissions personnalisées par catégorie
- Tracking automatique des transactions
- Historique complet
- Demandes de payout des organisateurs
- Approbation/Rejet par le SuperAdmin
- Multiples méthodes de paiement
- Suivi des statuts en temps réel
- Dashboard ultra-premium avec animations
- Statistiques en temps réel
- Graphiques et métriques
- Croissance et tendances
- FastAPI (Python 3.12) - Framework web moderne
- PostgreSQL - Base de données relationnelle
- SQLAlchemy - ORM Python
- Pydantic - Validation des données
- JWT - Authentification sécurisée
- Passlib + bcrypt - Hashing des mots de passe
- React 19.2.0 - Bibliothèque UI
- React Router 7.1.1 - Navigation
- Axios - Requêtes HTTP
- Tailwind CSS 3.4.17 - Framework CSS
- React Icons - Bibliothèque d'icônes
- React Toastify - Notifications toast
- Python 3.12+
- Node.js 18+
- PostgreSQL 14+
- Git
git clone <repository-url>
cd evMondecd backend
# Créer l'environnement virtuel
python -m venv venv
# Activer l'environnement (Windows)
venv\Scripts\activate
# Activer l'environnement (Linux/Mac)
source venv/bin/activate
# Installer les dépendances
pip install -r requirements.txtcd frontend
# Installer les dépendances
npm install- Créer la base de données:
CREATE DATABASE evmonde_db;- Configurer
backend/.env:
# Base de données
DATABASE_URL=postgresql://postgres:votre_mot_de_passe@localhost:5432/evmonde_db
# JWT
SECRET_KEY=votre_secret_key_très_sécurisée
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
REFRESH_TOKEN_EXPIRE_DAYS=7
# CORS
FRONTEND_URL=http://localhost:3000- Créer les tables:
cd backend
python -c "from app.config.database import Base, engine; Base.metadata.create_all(bind=engine)"cd backend
venv\Scripts\activate # Windows
# ou: source venv/bin/activate # Linux/Mac
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000Backend accessible sur: http://localhost:8000
Documentation API: http://localhost:8000/docs
cd frontend
npm startFrontend accessible sur: http://localhost:3000
cd backend
venv\Scripts\python.exe seed_data.pyCe script génère:
- ✅ 6 catégories (dont 3 avec commissions personnalisées)
- ✅ 8 tags
- ✅ 5 organisateurs
- ✅ 5 participants
- ✅ 8 événements variés
- ✅ 408 inscriptions
- ✅ 408 transactions de commission
- ✅ 4 demandes de payout (statuts variés)
Email : [email protected]
Password : Admin123!
Email : [email protected]
Password : password123
Email : [email protected]
Password : password123
Email : [email protected]
Password : password123
Email : [email protected]
Password : password123
evMonde/
├── backend/ # API FastAPI
│ ├── app/
│ │ ├── api/ # Routes API
│ │ │ ├── auth.py # Authentification
│ │ │ ├── users.py # Gestion utilisateurs
│ │ │ ├── events.py # Gestion événements
│ │ │ ├── categories.py # Catégories & tags
│ │ │ ├── payouts.py # Gestion payouts
│ │ │ └── commission.py # Configuration commission
│ │ ├── models/ # Modèles SQLAlchemy
│ │ ├── schemas/ # Schémas Pydantic
│ │ ├── config/ # Configuration
│ │ └── utils/ # Utilitaires
│ ├── seed_data.py # Script de génération de données
│ ├── create_superadmin.py # Script création SuperAdmin
│ └── requirements.txt # Dépendances Python
│
├── frontend/ # Application React
│ ├── src/
│ │ ├── api/ # Couche API (Axios)
│ │ ├── components/ # Composants réutilisables
│ │ ├── pages/ # Pages de l'application
│ │ │ ├── superadmin/ # Pages SuperAdmin
│ │ │ │ ├── DashboardSuperAdmin.js
│ │ │ │ ├── UsersManagement.js
│ │ │ │ ├── EventsManagement.js
│ │ │ │ ├── StatsManagement.js
│ │ │ │ ├── CategoriesManagement.js
│ │ │ │ ├── PayoutsManagement.js
│ │ │ │ └── CommissionSettings.js
│ │ │ └── auth/ # Pages d'authentification
│ │ ├── App.js # Configuration des routes
│ │ └── index.js # Point d'entrée
│ └── package.json # Dépendances Node
│
└── README.md # Ce fichier
L'API est auto-documentée avec Swagger/OpenAPI.
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
POST /api/v1/auth/register - Créer un compte
POST /api/v1/auth/login - Se connecter
POST /api/v1/auth/refresh - Rafraîchir le token
POST /api/v1/auth/logout - Se déconnecter
GET /api/v1/auth/me - Obtenir l'utilisateur connecté
GET /api/v1/admin/users - Liste des utilisateurs
PUT /api/v1/admin/users/{id}/suspend - Suspendre un utilisateur
PUT /api/v1/admin/users/{id}/activate - Activer un utilisateur
PUT /api/v1/admin/users/{id}/promote - Promouvoir un utilisateur
GET /api/v1/admin/events - Liste des événements
PUT /api/v1/admin/events/{id}/feature - Mettre en vedette
PUT /api/v1/admin/events/{id}/flag - Signaler un événement
GET /api/v1/marketplace/categories - Liste des catégories
POST /api/v1/marketplace/categories - Créer une catégorie
PUT /api/v1/marketplace/categories/{id} - Modifier une catégorie
DELETE /api/v1/marketplace/categories/{id} - Supprimer une catégorie
GET /api/v1/marketplace/tags - Liste des tags
POST /api/v1/marketplace/tags - Créer un tag
GET /api/v1/marketplace/payouts - Liste des payouts (SuperAdmin)
PUT /api/v1/marketplace/payouts/{id} - Traiter un payout
GET /api/v1/marketplace/my-balance - Solde de l'organisateur
POST /api/v1/marketplace/payouts/request - Demander un payout
GET /api/v1/marketplace/my-payouts - Mes payouts
GET /api/v1/marketplace/commission/settings - Configuration actuelle
PUT /api/v1/marketplace/commission/settings - Modifier la configuration
GET /api/v1/marketplace/commission/transactions - Historique des commissions
# Créer le SuperAdmin
cd backend
venv\Scripts\python.exe create_superadmin.py
# Générer des données de test
venv\Scripts\python.exe seed_data.py
# Lancer le serveur en mode développement
uvicorn app.main:app --reload
# Lancer le serveur en mode production
uvicorn app.main:app --host 0.0.0.0 --port 8000# Lancer en mode développement
npm start
# Build pour la production
npm run build
# Lancer les tests
npm test- Bleu (
#3B82F6) - Actions principales - Purple (
#8B5CF6) - Événements - Vert (
#10B981) - Succès, revenus - Orange (
#F59E0B) - Commissions - Rouge (
#EF4444) - Danger, suppression - Jaune (
#F59E0B) - Avertissements, attente
- ✨ Animations fluides et transitions
- 🎨 Design ultra-moderne avec gradients
- 📱 Responsive (mobile, tablet, desktop)
- 🌈 Palette de couleurs cohérente
- 💫 Effets hover sophistiqués
- 🎯 UX optimisée
- Modèles: 10 (User, Event, Category, Tag, Registration, Ticket, Payout, Commission, etc.)
- Endpoints API: 50+
- Middlewares: CORS, JWT, Error Handling
- Validation: Pydantic schemas pour toutes les requêtes
- Pages: 8 pages SuperAdmin + authentification
- Composants: 10+ composants réutilisables
- Routes protégées: Oui (JWT + Guards)
- Gestion d'état: React Hooks (useState, useEffect)
Le script seed_data.py génère automatiquement:
- 1 SuperAdmin
- 5 Organisateurs (France, Sénégal)
- 5 Participants
- 🎵 Musique - Commission: 7%
- 🎤 Conférences - Commission: 5% (globale)
- ⚽ Sport - Commission: 10%
- 💻 Tech - Commission: 5% (globale)
- 🎨 Art & Culture - Commission: 6%
- 💼 Business - Commission: 5% (globale)
- Festival Jazz International 2025
- Tech Summit Africa 2025
- Marathon de Dakar 2025
- Exposition Art Contemporain
- Startup Pitch Night
- Concert Youssou N'Dour - Live
- Webinaire: Future of AI in Africa
- Formation Leadership & Management
- Revenus totaux: 5,825,000 XOF
- Commissions prélevées: 340,500 XOF
- Taux moyen: 5.8%
- 408 inscriptions générées
# Trouver le processus
netstat -ano | findstr :8000
# Tuer le processus (Windows)
taskkill /PID <PID> /F- Vérifier que PostgreSQL est démarré
- Vérifier les identifiants dans
.env - Vérifier que la base de données
evmonde_dbexiste
# Supprimer node_modules et réinstaller
rm -rf node_modules package-lock.json
npm installCe projet est sous licence MIT.
- Développeur Principal: Équipe evMonde
Pour toute question ou problème:
- 📧 Email: [email protected]
- 💬 Discord: [Lien vers Discord]
- 📚 Documentation:
http://localhost:8000/docs
Merci d'utiliser evMonde ! 🚀
Dernière mise à jour: Novembre 2025 Version: 1.0.0