 Hello everyone. I am Kashmira Nagvekar, senior project technical assistant at IIT Bombay. I'll be presenting on heartbeat monitoring in modal quiz for auto incrementing quiz time limit. Okay. My previous contributions include download SS submissions. It was a feature request, like in modal quiz, there was no way through which we can download all the SA questions submissions. Like the way it is in assignment module wherein we can download all the assignments in one go. Here in quiz module, for every user, we need to go to that particular user, click on review attempt, and then only we are able to view all the SA questions submissions. Attachments provided for that particular SA question. So it was requested as a feature in modal tracker. So we gave it a shot, and now it is available in modal plugins directory. The next is merge PDF files. This is still under review. It is used for merging all the course PDFs. You'll get a single merge document with page numbers stamped on it. So we are currently developing a quiz access rule plugin, heartbeat monitoring for auto incrementing the quiz time limit. So in modal, consider a scenario where a teacher has set up a quiz with a limited time duration. The user logs in and starts the quiz. After some time, suppose he encounters a problem which results in the interruption and disconnection of that particular quiz. Interruption of the quiz. So the user loses a certain amount of time, quiz time, until and unless that particular problem is resolved. So after the user comes live again, the teacher has to create an override. There is a modal feature, user override, through which the teacher can allot some extra time as a compensation for your time lost during that particular quiz attempt. So that particular amount of time is added to that particular user's quiz attempt. Now here the challenge was there is no way to automatically quantify the amount of time lost, actual amount of time lost. And also the compensation for the time lost has to be given manually with the help of user overrides. So we propose a solution wherein the user connections and disconnections will be monitored through hardbeats provided by WebSockets. Connections and disconnections will be recorded. The time lost will be calculated and automatically the user rights will be set up for the users who have lost time. The technologies used are Node.js, Express and Socket.io for hard-bit tracking, and then trigger modal to automatically create the user override. So Node.js is a JavaScript runtime. It is an event-driven, non-blocking I.O. model, which is useful for many concurrent connections. Socket.io, it has two parts. The server side library and client side library. It is a JavaScript library. It is based on WebSocket concept. Then Express is like a minimal flexible Node.js web application framework. Like what is jQuery for JavaScript? Same thing as Express for Node.js. So implementation. What is hard-bit mechanism? It is a kind of a signal sent between machines. It is a periodic signal sent between machines. So send between machines to see if the destination is reachable. It is in the form of ping-pong messages sent at regular intervals. So if the endpoint does not receive the hard-bit for some time, the machine which should have sent the hard-bit is considered to be dead. So integration of this module will be as a quiz access rule. It will go under access rule folder of quiz module. And the workflow will be monitoring the health of the connections using hard-bits provided by WebSockets. Node.js HTTP server is used and socket is used with Express for providing a bidirectional communication channel between a client and a server. Then the connections and disconnections of all the sockets are recorded in a database table. Also the time lost is calculated. Like here the time to consider is when that particular socket went offline. When it came back online and accordingly the lifetime and dead time are calculated and stored in the database table itself. Then the module is triggered to automatically create a user override by the amount of time left. So in future whenever a user loses time due to network failure or any such crisis, there will be no manual intervention. If you need not manually create a user override, it will be taken care of automatically. So I have a small demonstration. First the node server needs to be started. It is listening on a certain port. Then here the administrator locks in. This is the admin interface under access rules, hard-bit monitor quiz access rule. Here it displays a list of users which are currently taking the quiz and their status. Now user takes a quiz. Here this is the admin site. The live user entry is recorded in the table. Again student site. Now the student goes offline. And accordingly the status is updated at the admin site. Now the user comes online again. He continues with the attempt. So sometime he has lost sometime due to disconnection. So when he comes live again, the status update is reflected at the admin site. And the amount of time lost is the dead time. So your override is created when you click on save. So he had lost six minutes which were added to his quiz time. So when the user refreshes his screen or goes to the next question, the time will get added to that. Thank you. Any questions? Sorry? Yes. So every time he can switch off, study the question, google the answer and then come back. Yeah. Hello. Does it again work on the fixed IP concept? No, nothing as such. Sorry, I can't hear. I can't hear. I think this is an excellent thing you are doing. This was very much needed because the developers are here. Please make it a priority to bring it in Moodle core. We desperately need this. This is a recurrent problem all of us face. So wonderful you are doing this. There are a lot of other technical things which we can discuss offline. Thank you.