Ce projet est une plateforme de gestion et de passage d'examens de programmation avec un IDE en ligne intégré pour les étudiants.
Avant de commencer, assurez-vous d'avoir installé sur votre machine :
- Node.js (v18 ou supérieur recommandé)
- MongoDB (requis pour l'IDE étudiant et les logs d'exécution)
- Vous pouvez l'installer localement ou utiliser une instance Docker / Atlas.
- Par défaut, l'application cherche MongoDB sur
mongodb://localhost:27017/pse.
Suivez scrupuleusement ces étapes pour lancer le projet sans erreur sur votre machine :
- Allez dans le dossier
backend. - Copiez le fichier
.env.exampleet renommez-le en.env. - Assurez-vous que les variables suivantes sont correctes pour votre environnement (notamment la chaîne de connexion MongoDB
MONGO_URIsi elle diffère de celle par défaut).
- Allez dans le dossier
frontend. - Copiez le fichier
.env.exampleet renommez-le en.env(ou.env.local). - Les valeurs par défaut pointent vers
http://localhost:3001, ce qui est correct pour le développement.
Ouvrez deux terminaux différents ou exécutez ces commandes :
cd backend
npm installcd frontend
npm install-
Lancez MongoDB (si ce n'est pas déjà fait en arrière-plan) :
- Sous Windows, assurez-vous que le service MongoDB est démarré.
- Ou via Docker :
docker run -d -p 27017:27017 --name local-mongo mongo:latest
-
Démarrez le Backend (Terminal 1) :
cd backend npm run devNote : Au premier démarrage, SQLite se connecte automatiquement au fichier
database.dbfourni et applique les migrations/seeds par défaut si nécessaire. -
Démarrez le Frontend (Terminal 2) :
cd frontend npm run dev
L'application frontend est maintenant accessible sur http://localhost:3000.
La base de données SQLite inclut par défaut les comptes suivants pour tester l'application immédiatement :
- Administrateur :
- Email :
admin@supnum.mr - Mot de passe :
admin
- Email :
- Professeur :
- Email :
professor@supnum.mr - Mot de passe :
password123
- Email :
- Étudiant :
- Email :
student@supnum.mr(Matricule:24001) - Mot de passe :
password123
- Email :
Pour que l'affichage des sujets fonctionne correctement :
- Les fichiers PDF des sujets sont stockés sous
backend/uploads/exams/. - Le sujet de test pour l'examen 30 (
1782159333873_2023-2024.pdf) est déjà inclus dans le dépôt sousbackend/uploads/exams/30/pour garantir son affichage direct. - Helmet et les en-têtes CORS sont configurés dans
backend/src/server.jspour permettre l'intégration des PDF dans les iframes de l'IDE étudiant sans blocage de sécurité.