La première plateforme d'évaluation scolaire intelligente du Bénin. Compositions en ligne, correction par IA, bulletins officiels et suivi en temps réel — tout en un.
🚀 Démarrage rapide · 📸 Aperçu · 🤖 IA & Correction · 📡 Temps réel · 🗺 Architecture
| Salle de composition | Correction IA | Bulletin officiel |
|---|---|---|
| Interface anti-triche temps réel | Multi-provider IA automatique | Format officiel béninois PDF |
|
|
Groq (principal) → Gemini (fallback) → Mistral → DeepSeek → NVIDIA Nemotron (OCR)
- Correction de copies manuscrites via OCR NVIDIA Nemotron
- Analyse du contenu, pertinence, orthographe, structure
- Note, commentaires et suggestions personnalisés
- Détection de plagiat inter-copies
- Salle de composition sécurisée (anti-triche, détection de focus)
- Upload de copies scannées page par page
- Timer synchronisé avec l'heure officielle du serveur
- QR Code par résultat pour téléchargement mobile du bulletin
- Format officiel béninois avec coefficients par matière et par série
- Export PDF signé numériquement (PyHanko)
- QR Code d'authenticité vérifiable
- Envoi automatique par email (Resend API)
- Points XP, badges, niveaux et classements
- Streaks de participation et récompenses
- Leaderboard par classe et par matière
- Notifications push instantanées (cloche, compteur)
- Suivi live du statut de correction IA
- Synchronisation multi-onglets
- Intégration FedaPay (MTN MoMo, Moov Money)
- Commission automatique : 70% prof · 20% plateforme · 10% parrainage
- Webhooks de confirmation en temps réel
academie-numerique/
├── accounts/ # Utilisateurs UUID, rôles, Google OAuth2, SSO Laravel
├── core/ # Classes, matières, paramètres système
├── exams/ # Examens, assignments, relevés de notes
├── compositions/ # Sessions, salle en ligne, anti-triche, résultats
├── correction/ # Pipeline IA multi-provider + correction humaine
├── corrections/ # App dédiée corrections prof
├── bulletins/ # Génération PDF, coefficients officiels béninois
├── qcm/ # QCM auto-générés par IA par examen
├── devoirs/ # Devoirs nationaux, cycle complet
├── notifications/ # SSE temps réel, annonces globales
├── gamification/ # XP, badges, leaderboard
├── payments/ # FedaPay, abonnements, commissions
├── subscriptions/ # Plans, accès paywall
├── realtime/ # Django Channels / WebSockets
├── certifications/ # Certificats numériques signés
├── plagiat/ # Détection inter-copies
├── analytics/ # Tableaux de bord, statistiques
├── messaging/ # Messagerie interne
├── parents/ # Portail parents
├── library/ # Bibliothèque de ressources
├── schedule/ # Emploi du temps
├── attendance/ # Suivi présences
├── cahier/ # Cahier de textes numérique
├── audittrail/ # Journal d'audit complet
├── webhooks/ # Webhooks sortants
├── schools/ # Multi-établissements
├── api/ # REST API (Django Ninja)
└── academie_numerique/ # Config principale + ASGI + Redis
| Rôle | Accès | Capacités clés |
|---|---|---|
| 👨💼 Administrateur | Global | Gestion devoirs nationaux, approbations, statistiques globales |
| 👨🏢 Conseiller Pédagogique | École | Supervision, validation bulletins, analytics classe |
| 👨🏫 Professeur | Matière | Création examens/QCM, correction, bulletins, revenus |
| 👨🎓 Élève | Personnel | Compositions, résultats, bulletins, gamification |
| 👨👩👧 Parent | Enfant | Suivi résultats, notifications, bulletins |
- Python 3.10+
- Redis (optionnel — fallback thread si absent)
- Git
git clone https://github.com/Durrell-229/academie-composition.git
cd academie-composition
python -m venv venv
source venv/bin/activate # Linux/macOS
.\venv\Scripts\activate # Windows
pip install -r requirements.txtcp .env.example .envÉditez .env avec vos clés :
DJANGO_SECRET_KEY=votre-cle-secrete-tres-longue
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# IA (au moins un provider)
AI_PROVIDER=groq
GROQ_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx
# Paiements (optionnel — sandbox disponible)
FEDAPAY_ENVIRONMENT=sandbox
FEDAPAY_PUBLIC_KEY=pk_sandbox_xxx
FEDAPAY_SECRET_KEY=sk_sandbox_xxxpython manage.py migrate
python manage.py createsuperuser
python manage.py runserverOuvrez http://127.0.0.1:8000
# Vérification Django (0 erreurs)
python manage.py check
# Créer des données de démonstration
python manage.py shell -c "
from accounts.models import User
from core.models import Classe, Matiere
from exams.models import Exam
from django.utils import timezone
from datetime import timedelta
# Créer un professeur et un élève de test
prof = User.objects.create_user(email='prof@demo.bj', password='demo2026', role='prof', first_name='Jean', last_name='Demo')
eleve = User.objects.create_user(email='eleve@demo.bj', password='demo2026', role='eleve', first_name='Marie', last_name='Demo', classe='Terminale')
print('Demo créé — connectez-vous sur /accounts/login/')
"Le projet est prêt pour Render avec render.yaml et Procfile inclus.
# render.yaml (extrait)
services:
- type: web
name: academie-numerique
runtime: python
buildCommand: pip install -r requirements.txt && python manage.py migrate
startCommand: gunicorn academie_numerique.asgi:application -k uvicorn.workers.UvicornWorkerVariables d'environnement à configurer sur le dashboard Render :
DJANGO_SECRET_KEY · DATABASE_URL · GROQ_API_KEY · REDIS_URL · FEDAPAY_SECRET_KEY
| Protection | Statut | Détail |
|---|---|---|
| Variables sensibles | ✅ | Gérées via .env (jamais committées) |
| Authentication | ✅ | Django auth + OAuth2 + SSO |
| CSRF | ✅ | Protection Django native |
| Rate limiting | ✅ | Sur login et endpoints critiques |
| Audit trail | ✅ | Journal complet de toutes les actions |
| Signatures PDF | ✅ | PyHanko pour bulletins officiels |
Les contributions sont les bienvenues !
# 1. Forkez le projet
# 2. Créez votre branche
git checkout -b feature/ma-fonctionnalite
# 3. Committez
git commit -m "feat: ajout de ma fonctionnalité"
# 4. Poussez et ouvrez une Pull Request
git push origin feature/ma-fonctionnaliteDistribué sous la licence MIT. Voir LICENSE pour plus d'informations.