Skip to content
Puneet Moger
← All projects

2026 · Solo build — MCA capstone

Vision-Based Exam Proctoring System

AI-assisted review of recorded exam sessions.

Role
Solo build — MCA capstone
Year
2026
Discipline
Full-stack · AI · Backend

01 — The problem

Reviewing hours of exam footage by hand is slow, tiring, and inconsistent — two reviewers watching the same session will notice different things. The goal was a system that could watch every frame, flag the patterns that matter, and hand a reviewer a short list instead of a long video.

02 — Approach

  1. 01

    Keep inference out of the request cycle. Uploading returns immediately and a Celery worker does the expensive work against Redis as the broker.

  2. 02

    Store detections as timestamped events rather than a verdict, so a report can be rebuilt and audited after the fact.

  3. 03

    Treat the teacher as an admin role from the first migration, with JWT auth guarding every exam and report route.

  4. 04

    Build the UI around the two things a reviewer actually does: start an analysis, then read the report.

03 — What I built

  • Teacher-facing upload, exam management and report views in Next.js 15 with the App Router.
  • Django REST Framework endpoints for sessions, violations and report generation.
  • A Celery + Redis pipeline that keeps video analysis off the request path.
  • YOLOv11 pose-based detection for face presence, absence and multiple people in frame.
  • JWT authentication with a single admin role and PostgreSQL persistence for every event.

04 — Outcome

  • A recorded session produces a structured report with timestamps a reviewer can jump to, instead of requiring a full manual watch-through.
  • The UI stays responsive while inference runs, because the work is queued rather than awaited.

05 — What I learned

Long-running model work does not belong inside a web request. Designing around a queue forced cleaner boundaries between the API, the worker and the database — and made the slow part observable instead of mysterious.

Stack

  • Next.js 15
  • TypeScript
  • Django REST Framework
  • PostgreSQL
  • YOLOv11
  • Celery
  • Redis