A proctored online examination platform for a college training and placement cell, running timed MCQ and coding assessments with automated grading for roughly 1,000 concurrent students.
What it is, who uses it, why it exists
A proctored online exam portal running timed MCQ sections and coding problems for a full cohort at once, with instant MCQ grading and sandboxed code evaluation.
Students take exams from their own browser; admin staff manage the question bank, publish exams, and release results through the Django admin panel.
Manual invigilation and hand-graded code don't scale to a full batch sitting a timed exam at once — this needed browser-based proctoring and automated grading, built in a four-week MVP.
Who the platform serves, end to end
The full lifecycle, start to finish
Every module the platform is built from
Hover a module to see what it's responsible for.
Exam Engine
Owns exam creation, question shuffling, timing, and MCQ grading.
- Exam & batch publishing
- Per-student question and option shuffling
- Server-side time-window enforcement
- Instant MCQ auto-grading on submit
Coding Module
Runs student code against hidden test cases without blocking the request.
- Monaco in-browser editor
- Synchronous run against sample cases
- Asynchronous grading via Celery + Judge0
- Per-test-case scoring
Proctoring Layer
Browser-only integrity signals — nothing is recorded.
- Forced fullscreen on exam start
- Tab-switch and fullscreen-exit flagging
- Copy/paste disabled inside the exam container
- Camera/mic shown locally, never uploaded
Results & Reporting
Where staff release scores and export outcomes.
- Django admin result release action
- Streamed .xlsx export via openpyxl
- Score distribution analytics
- Post-release student leaderboard
How the major features actually work
Shuffled, Auto-Graded MCQ Exams
Questions and options are shuffled per student, then graded server-side on submit — the correct answer never reaches the client.
Asynchronous Coding Evaluation
A code submission returns instantly while a Celery task runs it against hidden test cases on a self-hosted Judge0 sandbox.
Zero-Recording Proctoring
Camera and mic are shown locally only — MediaRecorder is never used. Tab-switches and fullscreen exits are sent as flags, not media.
From client to database, end to end
Select a node to see its purpose, technologies, and responsibilities.
Student portal, exam UI, Monaco editor, and proctoring signals.
- Next.js (App Router)
- Tailwind CSS
- shadcn/ui
- Exam-taking UI
- Autosave and proctoring event dispatch
- Polling submission status
How information moves through the system
Problem, decision, reason
Full video/audio proctoring raises privacy exposure and storage cost the system shouldn't have to carry.
Camera and mic are display-only — MediaRecorder is never instantiated anywhere in the codebase.
Delivers an integrity signal without recording a single frame of student video.
Code execution is slow and can't block an HTTP request for a full batch submitting at once.
Submissions return 202 immediately; a Celery task grades them asynchronously via Judge0.
Keeps the API responsive and isolates untrusted code execution from the request cycle.
A third-party code-execution SaaS would add recurring cost and reduce control over exam data.
Judge0 is self-hosted on its own VM, reachable only by the Celery worker behind a private firewall.
Keeps cost and exam-data handling under direct institutional control.
Organized by category, with a reason for each choice
What makes this build hold up
Self-Hosted Code Execution
Judge0 runs on its own VM, reachable only by the Celery worker.
Async Grading Pipeline
Submissions return instantly; grading happens off the request path.
Zero-Recording Proctoring
MediaRecorder is never used anywhere in the codebase.
Server-Side Time Enforcement
Every endpoint checks the exam's end time itself.
Current, next, and future vision
MVP — Live
- Auth, question bank, and admin panel
- MCQ engine with shuffling and time enforcement
- Coding module with Celery + Judge0 grading
Hardening
- Security audit follow-ups
- Load testing beyond the initial pilot
Beyond MVP
- Not yet scoped beyond the pilot exam
Interested in Enterprise Assessment Platform?
Let's discuss how this can work for you.