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
- 01
Keep inference out of the request cycle. Uploading returns immediately and a Celery worker does the expensive work against Redis as the broker.
- 02
Store detections as timestamped events rather than a verdict, so a report can be rebuilt and audited after the fact.
- 03
Treat the teacher as an admin role from the first migration, with JWT auth guarding every exam and report route.
- 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