Back to all work

02AI / Web Application

Online Exam Proctoring SystemTrustMeter

An AI-assisted exam monitor that watches for integrity signals (faces, gaze, phones, tab switches) and turns them into a report.

faceWEBCAM · MONITORINGEVENT LOGgaze diversiontab switchmultiple facesphone in frameINTEGRITY SCORE100
Illustration, not a product screenshot.

01 Overview: An invigilator for exams taken at home

The Online Exam Proctoring System, developed as TrustMeter, monitors students through their webcam during online exams using computer vision.

Each session starts with an integrity score of 100 that adjusts as suspicious behaviour is detected. Every event is logged, so an exam ends with a clear report rather than a guess.

02 Problem: Remote exams remove the person in the room

In an exam hall, an invigilator notices things: someone else in view, a phone, attention drifting away from the paper.

Online, those signals have to be picked up another way, fairly and without recording everything a student does.

03 What I Built: Monitoring, scoring and reporting

  • Real-time webcam monitoring with face detection (OpenCV Haar cascade), including detection of multiple faces.
  • Gaze tracking with MediaPipe Face Mesh to notice attention moving away from the screen.
  • YOLO-based object detection for spotting a phone in frame.
  • Tab-switch detection, and automatic exam termination if the camera or microphone is disabled.
  • A dynamic integrity score with low, medium and high risk levels, backed by timestamped event logs.
  • A live monitoring dashboard with Chart.js and an automatically generated exam report.
  • A privacy-first approach: behaviour events are logged, but video isn't recorded.

04 Technical Approach: From webcam frame to integrity report

  1. 01RegisterThe student enters their details and grants webcam access.
  2. 02MonitorOpenCV and MediaPipe analyse the live webcam feed.
  3. 03DetectFaces, gaze, phones and tab switches are checked continuously.
  4. 04ScoreThe integrity score and risk level update as events occur.
  5. 05ReportEvents are stored in MongoDB and compiled into a report.

The backend is a Flask application exposing a REST API. The frontend is HTML, CSS and JavaScript, with Chart.js for the score timeline.

Built with

  • Python
  • Flask
  • OpenCV
  • MediaPipe
  • YOLO
  • MongoDB
  • JavaScript
  • Chart.js
  • HTML5
  • CSS3

Section: mathan/lets-talk

Have a project, internship or opportunity in mind?

I’m open to internships and to AI, computer-vision and full-stack work. The quickest way to reach me is below.

Email me Resume