Skip to content

Latest commit

 

History

102 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Stars GitHub Forks GitHub Issues Last Commit Code Size Contributors

Python Django Django Ninja Redis TailwindCSS SQLite License


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


📸 Aperçu

Salle de composition Correction IA Bulletin officiel
Composition Correction Bulletin
Interface anti-triche temps réel Multi-provider IA automatique Format officiel béninois PDF

🎯 Pourquoi Académie Numérique IA ?

Le problème

  • 📋 Corrections manuelles longues et coûteuses
  • 📬 Bulletins distribués avec semaines de retard
  • 📊 Aucun suivi analytique des performances
  • 🌍 Accès limité à l'éducation de qualité en Afrique

Notre solution

  • ⚡ Correction automatique en < 30 secondes par IA
  • 📄 Bulletins PDF générés et envoyés instantanément
  • 📈 Tableaux de bord analytiques en temps réel
  • 🌐 Plateforme accessible depuis n'importe quel appareil

✨ Fonctionnalités

🤖 Correction IA

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

🏛 Compositions en ligne

  • 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

📊 Bulletins & Certifications

  • 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)

🎮 Gamification

  • Points XP, badges, niveaux et classements
  • Streaks de participation et récompenses
  • Leaderboard par classe et par matière

📡 Temps Réel (SSE + WebSockets)

  • Notifications push instantanées (cloche, compteur)
  • Suivi live du statut de correction IA
  • Synchronisation multi-onglets

💳 Paiements Mobile Money

  • Intégration FedaPay (MTN MoMo, Moov Money)
  • Commission automatique : 70% prof · 20% plateforme · 10% parrainage
  • Webhooks de confirmation en temps réel

🗺 Architecture

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ôles & Permissions

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

🚀 Installation

Prérequis

  • Python 3.10+
  • Redis (optionnel — fallback thread si absent)
  • Git

1. Cloner et installer

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.txt

2. Configurer l'environnement

cp .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_xxx

3. Initialiser la base de données

python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

Ouvrez http://127.0.0.1:8000


🧪 Tests rapides

# 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/')
"

🌍 Déploiement (Render.com)

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.UvicornWorker

Variables d'environnement à configurer sur le dashboard Render : DJANGO_SECRET_KEY · DATABASE_URL · GROQ_API_KEY · REDIS_URL · FEDAPAY_SECRET_KEY


📈 Statistiques du projet

GitHub Activity Top Language Repo Size

GitHub Stats

GitHub Streak


🛡 Sécurité

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

🤝 Contribuer

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-fonctionnalite

📄 Licence

Distribué sous la licence MIT. Voir LICENSE pour plus d'informations.


Développé avec passion pour l'éducation africaine

LinkedIn GitHub

Si ce projet vous aide, laissez une ⭐ — cela fait toujours plaisir !