Inspiration
Covid-19 has brought unforeseen disruptions into various aspects of our lives. Due to social distancing measures, its impact is quite profound in traditionally in-person high schools and universities as they have been forced to go remote, often with no prior experience in such an endeavour. This also brought with it the problem of administering online exams that were accessible to all the students, while maintaining fairness and prevention of cheating when the students take the exams from their home spaces. One example of a potential problem is that since students will have to have access to their computers, one has to ensure only the portals/applications related to the exam is accessed and not any that could give them an unfair advantage. It is also important that we ensure the right person is taking the test.
However, the solutions proposed in this sphere could often either be expensive or not be comprehensive enough with checking the students' activity during the exam, thereby placing an additional burden on the exam proctor. Our objective with e-Proctor is to address this challenge of accessibility while also using additional methods to reduce the effort needed from the proctor to administer exams.
What it does
Through e-Proctor, both students and proctors can log in their own side of the exam room at the same time. Students will stream their screen and webcam directly to the proctor through an encrypted peer to peer connection and the proctor can monitor the students through their exam room dashboard like they were in a real class. In addition, we provide the proctor with 2 powerful tools to make them more productive using both the screen share of students and their webcam streams. To do this we used machine-learning to detect changes in the person taking the test and we analyzed the student’s screen to flag tab changes and watch for new tabs being opened. A proctor using this system can be highly efficient as they only have to respond to automatically detected behaviors.
How we built it
Security and privacy were the major concerns throughout its development. To address this, we chose to use a peer to peer connection. This means that not even our server has access to the video streams, only the proctor does. Additionally the videos are encrypted to reduce any and all chances of eavesdropping. To aid the proctor with monitoring the exam, we used the machine learning library face-api.js to identify the faces and detect changes. This was then used to flag the student’s stream on the proctor dashboard depending on the degree of uncertainty regarding the identity of the individual on the screen. We also used resemble.js to analyze frames from the screen share of the student and detect if there were any tab changes or new tabs being opened.
Challenges we ran into
Every component of our project presented us with a challenge. Some of the prominent ones are as follows:
- Creating a signalling server from scratch.
- Generating new connections. WebRTC has no easy way of dealing with more than one connection, so this took a lot of effort.
- Identifying the appropriate libraries and getting the face recognition component set up on the webcam stream.
- Segmenting the screen share image using resemble.js to accurately identify tab changes.
While each of these individually took up a lot of our time, we were glad to have learned a lot through the experience.
Accomplishments that we're proud of
We are proud of making a fully functional web application. The end application was more than what we envisioned for our MVP and that has us proud for having pushed ourselves so far. We are also happy about having contributed to solving a real world problem in these unforeseen circumstances. Even though its seriousness has increased as more students transfer to online schooling, we hope that solutions like ours will ease the transition and give students the quality educational experience they deserve.
What I learned
Through the project we got a lot of exposure to security and privacy while building websites. We were also able to get hands on experience with front end development, something not all of us were familiar with. We also got to incorporate, get inferences and extract features from various machine learning models on the web which has made us confident about using them in future projects.
What's next for e-Proctor
One of the biggest additional features we have in mind for e-Proctor is with regards to memory concerns. The peer to peer connections could prove a computational burden so we want to work on optimizing the performance so that we reduce its impact on the memory. We also want to make e-Proctor accessible and available to all. To continue the mission of the e-proctor project, we next hope to set up the project on a real server and minimally charge school districts to make it available for use to all schools that fall under them. This way, we hope to make a fairer schooling system that rewards hard work and ensures fairness.
Built With
- bootstrap
- css
- express.js
- face-api
- html
- javascript
- node.js
- resemble.js
- webrtc
Log in or sign up for Devpost to join the conversation.