Invigilate
A web application to proctor students for online examinations.

Table of contents
About
- The application allows organizations (schools and colleges) to conduct their examinations on the platform using google forms.
- The platform proctors the students during the examination and informs the organization if any malpractices like tab switching, exiting full screen mode were performed during the test by the student.
- Face verification is carried out to verify the users.
Why Invigilate?
- The pandemic in the last few years has shifted the mode of education from offline to online.
- Universities have subscribed/purchased proctoring applications which works accurately but is expensive
- Most schools in India use google forms as the examination portal for conducting online exams because they cannot affored proctoring applications
- Invigilate is a proctoring application that allows schools to continue to use google forms as the question paper with the integration of a proctoring application providing a cost efficient and easy to use solution.
Demonstration
Organization Sign-up
- Organizations (Schools Colleges need to create their accounts by filling in the details)

- On the home page of the organizations they have the option ofhe fiels creating a test by clicking on the scheduling a test button and filling in the details.
- They can add the google form link of the test here, set the time duration,limits for screen changes, full screen exits.

- The organization can then copy the test link generated by our application and share it with their students. The test link contains contains the database keys of the test generated and is encrpyed using cryptojs.
- The proctor button significance will be covered ahead.

Student Sign-up
- Once the students create their account on the application they can enter the test link and will be redirected to a server where the test will be conducted in a google form under a proctored enviournment.


- Once the test link is validated after it is decrypted at the backend the student can view the test details.
- Clicking on notify me will send an email to the students email with the test date,time and duration
- The student can start the test once they are ready

- After the test is started the student is redirected to a new server where the test will take place.
- Initially face recognition is conducted by the server

Online Tests
- Upon validation the student can move to the google form
- Once the test begins the full screen mode is enabled.

Malpractice Detection and Analysis
- If the user changes his tab or exits full screen mode, the changi is immidietly detected

- The information regarding the students activities is recorded and updated at the organizations portal.
- Upon clicking the proctor button the organization can view the no of students giving the test and the malpractices performed (if any).
- The organization has the option to terminate the students test if they suspect malicious activity

Project Architecture and Implementaion Details
- Authentication was done using Firebase Authentication considering the fact that it provides an easy token based authentication system
- The organization and student data was saved in the Firebase Realtime Database.
- Face Verification was carried out using Deep Face.
- Email JS was used in React to notify students about their examinations.
- Cryptojs was used for encryption of examination database keys and generation of a test link.
- Shoutout to Jason Zissman for his wonderful repository that helped a lot.
Tech Stacks used
- Tech Stack used: React JS, Node JS, Python and Firebase.
How to clone the repository
- There are 2 servers.
- The react server is set up for authentication and the dashboard of both teachers and students. On this server teachers can schedule exams on their dashboard and on the students dashboard students can enter the test code provided by the teachers and register for the tests.
- The node server is where the examination takes place and face verification takes place. (Face detection takes place every 5 seconds. If the user switches tabs the teacher will be informed on her dashboard.)
The master branch consists of the react server code which will run on localhost:3000.
The nodeServer branch consists of the node server code which will run on localhost:4000.
Clone and start both the servers before using the application.
Project Contributors
Abhishek Sharma
Prithvi Rohira
Shashwat Satao
Tanay Munot