diff --git a/server.js b/server.js index 5400d5b..d6c1a48 100644 --- a/server.js +++ b/server.js @@ -75,7 +75,22 @@ io.on('connection', async function (client) { // Client socket connected sessionStatus = "SessionStatus"; client.emit('updateSessionStatus', getSession(false)); // send the session status to the teacher when he connects (in case he refreshed the page) - io.to('student').emit('sessionUpdated', getSession().sessionStatus); + io.to('student').emit('sessionUpdated', getSession().sessionStatus); + + io.to('student').emit('informationSession', { + quizzTitle: getSession().quizzTitle, + numberOfRegisteredStudents: getNumberOfRegisteredStudent(), + teacherMail: getSession().teacher, + groupName: getSession().groupName, + }); + + + + + + + + client.emit('tempMessage', { status: 'success', @@ -135,7 +150,7 @@ io.on('connection', async function (client) { // Client socket connected questionNumber++; callback(getQuestion()); - io.to('boitier').emit('question number', getQuestion().currentQuestionNumber); // envoie numero de question boitier + io.to('boitier').emit('questionNumber', getQuestion().currentQuestionNumber); // envoie numero de question boitier io.timeout(5000).to('student').emit('getStudentAnswer', { numberQuestion: getQuestion().currentQuestionNumber }, (err, responses) => { if (err) { io.to('teacher').emit('tempMessage', @@ -177,6 +192,30 @@ io.on('connection', async function (client) { // Client socket connected client.on('endOfQuizz', (callback) => { questionNumber++; + io.to('boitier').emit('getStudentsAnswers', (err, responses) => { + + console.log("resp getstudentsanswers", responses); + // responses.forEach(trame => { + // console.log("trame du boitier :", trame) + + + // quizzResults[questionNumber - 1].answers.push({ + // 'studentMail': response.//id du boitier, + // 'studentAnswer': getAnswersAsString(response.answers, quizzQuestionsAndAnswers[1][questionNumber - 1][1]), + // 'result': checkAnswers(response.answers, + // quizzQuestionsAndAnswers[1][questionNumber - 1][1], // list of possible answers + // quizzQuestionsAndAnswers[1][questionNumber - 1][2] // list of good answers + // ) + // }); + + + + // }); + + // traiter le tableau de ahmed avec toutes les réponses. + // push dans quizzResults + }); + io.timeout(5000).to('student').emit('getStudentAnswer', { numberQuestion: quizzQuestionsAndAnswers[1][questionNumber - 1][3] }, (err, responses) => { if (err) { io.to('teacher').emit('tempMessage', @@ -211,6 +250,7 @@ io.on('connection', async function (client) { // Client socket connected sessionStatus = "DisplayResults"; + // Vérifie si un elève ne s'est pas déconnecté en cours de QCM listOfStudents.forEach((student) => { let tempsMail = student.mail let numero = 0; @@ -278,10 +318,6 @@ io.on('connection', async function (client) { // Client socket connected groupName: getSession().groupName, }); - // io.to('student').emit('updateStudentList', getSession()); - // client.emit // send all data - // io.to student // only list of students - client.on('buttonValidateClicked', (value) => { listOfStudents.forEach(student => { if (student.mail == client.mail) { @@ -331,9 +367,8 @@ io.on('connection', async function (client) { // Client socket connected } else if (client.handshake.query.status == 'boitier') { client.join('boitier'); + io.to('boitier').emit('questionNumber', {number : 5}); - client.on('trameComplete', (trame) => { - }) } else { // Unknown client /* things to do when an unknown user connects */ @@ -383,6 +418,7 @@ function resetSession() { questionNumber = 0; quizzResults = []; quizzTime = null; + socket.disconnect(); } function checkAnswers(studentAnswers, possibleAnswers, correctAnswers) { diff --git a/src/scripts/student.js b/src/scripts/student.js index a599eb8..9c7ae82 100644 --- a/src/scripts/student.js +++ b/src/scripts/student.js @@ -34,24 +34,14 @@ answerQuestion.hidden = true; changeDivState('#test'); -socket.on('teacherNotConnected', () => { - waitingRoom.innerHTML = "Le prof n'est pas connecté"; -}); - +// Get information session when student registered socket.on('informationSession', (data) => { - // document.querySelector('#nameOfQuizz').innerHTML = `Nom du quizz : ${data.quizzTitle}`; document.querySelector('#nameOfTeacher').innerHTML = `Nom du professeur : ${data.teacherMail}`; document.querySelector('#statusSessionWaitRoom').innerHTML = `Nom du quizz : ${data.quizzTitle}`; document.querySelector('#numberOfStudentRegistered').innerHTML = `Nombre d'élèves enregistrés : ${data.numberOfRegisteredStudents}`; document.querySelector('#nameOfGroup').innerHTML = `Nom du groupe : ${data.groupName}`; - - - }); -socket.on('test', (dat) => { - console.log(dat); -}); socket.on('sessionStarted', () => { changeDivState('#answerQuestion'); @@ -85,10 +75,10 @@ socket.on('sessionUpdated', (sessionStatus) => { changeDivState('#answerQuestion'); } }); -// A modifier + +// Page end of quizz socket.on('endOfQuizzTeacher', () => { changeDivState('#endOfTheQcm'); - // messageEndQuizz.innerHTML = "fin"; timerReturnHome(); }); @@ -107,7 +97,6 @@ btnAnswers.forEach((button, index) => { socket.on('connect', () => { changeDivState('#formMail'); - formulaireMail.addEventListener('submit', (e) => { e.preventDefault(); let inputMail = document.querySelector('#mailAddress') @@ -296,6 +285,13 @@ function returnHome() { modal.style.display = "none"; } +function informationSession(data) { + document.querySelector('#nameOfTeacher').innerHTML = `Nom du professeur : ${data.teacherMail}`; + document.querySelector('#statusSessionWaitRoom').innerHTML = `Nom du quizz : ${data.quizzTitle}`; + document.querySelector('#numberOfStudentRegistered').innerHTML = `Nombre d'élèves enregistrés : ${data.numberOfRegisteredStudents}`; + document.querySelector('#nameOfGroup').innerHTML = `Nom du groupe : ${data.groupName}`; +} + function timerReturnHome() { let monTimer = setTimeout(() => { returnHome(); diff --git a/student.html b/student.html index c751650..501d9b0 100644 --- a/student.html +++ b/student.html @@ -37,10 +37,14 @@ @@ -151,14 +155,14 @@

-
- -
-
- -
+
+ +
+
+ +
@@ -167,7 +171,8 @@

@@ -236,7 +241,10 @@
Informations de
-

page de fin de quizz

+