MathQuest est une plateforme éducative interactive destinée aux élèves, parents et enseignants.
Elle permet de :
- Créer et attribuer des exercices et QCM 🎯
- Rejoindre des salons virtuels 🧑🏫
- Suivre la progression des élèves 📊
- Consulter les classements et les badges de performance 🏅
Le projet est développé en Spring Boot (backend) et React (frontend), avec une base de données MongoDB.
| Couche | Technologie |
|---|---|
| Backend | Spring Boot 3 (Java 21) |
| Frontend | React 18 (Vite.js, TypeScript) |
| Base de données | MongoDB |
| Sécurité | JWT (JSON Web Token) |
| Conteneurisation | Docker & Docker Compose |
| CI/CD | GitLab CI |
| Déploiement | AWS & Serveur Université de Rouen |
| Outils supplémentaires | SonarQube, Postman, Keycloak (authentification) |
mathquest/
├── backend/
│ └── src/main/java/com/mathquest/
│ ├── config/ → Configuration (CORS, Security, etc.)
│ ├── controller/ → API REST Controllers
│ ├── service/ → Logique métier
│ ├── repository/ → Accès aux données MongoDB
│ ├── model/ → Entités (User, Exercice, Submission, Salon, etc.)
│ └── dto/ → Objets de transfert de données
│
├── frontend/
│ ├── src/
│ │ ├── pages/ → Pages principales (Dashboard, Classement, Exercices, etc.)
│ │ ├── components/ → Composants réutilisables React
│ │ ├── services/ → API Calls vers le backend
│ │ └── styles/ → Feuilles de style
│ └── package.json
│
└── docker-compose.yml
cd backend
./mvnw spring-boot:runL’application démarre par défaut sur :
http://localhost:8080
cd frontend
npm install
npm run devLe client démarre sur :
http://localhost:3000
💡 Par défaut, le frontend pointe vers le serveur de production :
const API_URL = "http://srv-dpi-proj-mathquest-prod.univ-rouen.fr/api";👉 Pour exécuter MathQuest en local, il faut remplacer cette ligne par :
const API_URL = "http://localhost:8080/api";📍 Fichier concerné :
frontend/src/services/classement.service.ts
Cela permet à l’application React de communiquer avec le backend local Spring Boot.
- ✅ Tests unitaires avec JUnit 5 (backend)
- ✅ Tests d’intégration Postman (API)
- ✅ ESLint + Prettier (frontend)
- ✅ Analyse SonarQube (qualité du code)
- Gestion complète des utilisateurs (élèves, enseignants, parents)
- Création de salons avec code d’accès
- Attribution d’exercices par type
- Soumission et correction automatique
- Classement et badges selon la performance
- Suivi de progression et statistiques par élève
- Interface responsive et ergonomique 🎨
🎓 Master 2 Génie Informatique Logiciel — Université de Rouen
equipe mathquest
🌐 GitHub
Projet académique — utilisation pédagogique et démonstration technique uniquement.