OBJECTIF : Générer le code complet d'une application web d'examen en ligne, conçue pour tourner sans bug même avec des connexions internet instables, et dotée d'une sécurité anti-triche stricte.
FONCTIONNALITÉS REQUISES :
Moteur Anti-Triche Strict (JavaScript) :
Détection de la perte de focus de l'écran (événements visibilitychange et blur). Si l'étudiant change d'onglet, ouvre le multitâche ou quitte la page de l'examen, sa session est instantanément verrouillée (passage au statut 'blocked') et l'enseignant est alerté.
Désactivation du clic droit, de la sélection de texte, du copier-coller (Ctrl+C / Ctrl+V et appuis longs sur mobile).
Détection de double connexion : un même matricule ne peut pas être connecté sur deux appareils en même temps.
Double Chronomètre de Précision :
Phase 1 (Rédaction) : Un compte à rebours dynamique s'affiche (ex: 2h). L'étudiant peut répondre.
Phase 2 (Ramassage / Temps de grâce) : Dès que le temps de rédaction expire, les champs de saisie (inputs, textareas) se désactivent automatiquement. Un temps de grâce (ex: 5 minutes) s'enclenche avec un chrono rouge clignotant pour laisser l'étudiant soumettre sa copie.
Phase 3 (Verrouillage automatique) : Si le temps de grâce expire sans soumission manuelle, le formulaire est soumis automatiquement par le script.
Résilience Internet (Mode Hors-Ligne Temporaire) :
Sauvegarde automatique des réponses en temps réel dans le localStorage du navigateur de l'étudiant.
Si la connexion internet est coupée pendant l'examen, l'étudiant peut continuer à composer. Les données se synchronisent avec le serveur dès que la connexion est rétablie ou lors de la soumission finale.
Générateur de Sujet Aléatoire :
Système capable de mélanger l'ordre des questions et des options de réponse pour chaque étudiant afin d'éviter la triche sur le voisin de table.
Exportation des Résultats :
Génération automatique d'un tableau des notes au format Excel/CSV et PDF pour l'enseignant à la fin de l'épreuve.
LIVRABLES ATTENDUS :
Génère un code propre, modulaire et documenté :
Le schéma de base de données SQL optimisé (MySQL/PostgreSQL) avec indexation.
Le script JavaScript complet (app.js) gérant le double chrono, la détection de triche, le blocage des actions utilisateur et la sauvegarde locale.
Les scripts serveurs de liaison (API PHP ou Node.js) pour gérer l'enregistrement des réponses et le verrouillage de session en temps réel.