
- Roles
- Admin · Faculty · Student
- Surfaces
- Web dashboards · React Native apps
- Integrations
- Email automation · ServiceNow incidents · Excel import
Overview
Exam Seating Management replaces the manual coordination behind exam day: which exam is in which room, which faculty member invigilates, who was absent, and who needs to be told what.
It ships as a web application and React Native apps for faculty and students, backed by one Node.js API and MongoDB.
Problem
Exam operations involve three groups with different needs. Admins plan and react; faculty need their duties and a way to mark attendance; students need today's room and schedule — all from the same underlying data.
Data enters in bulk (student lists in Excel) and errors surface at the worst time — during an exam.
Architecture
- 01A single Express API with JWT authentication and role-based access control serves both the web app and the mobile apps.
- 02MongoDB stores exams, rooms and blocks, allocations, users and attendance.
- 03Automated email notifies absentees and malpractice cases; a ServiceNow integration opens incidents for system errors and user-reported problems.
- 04Bulk student uploads are parsed with Python (openpyxl) and validated on the backend before touching the database.
Implementation
Admin dashboard
Schedule exams, manage rooms and blocks, assign invigilators, add users by role and export lists to Excel.
Faculty and student dashboards
Faculty see allocations, mark attendance and get notified about duties. Students see today's exams, upcoming schedules and room information with real-time notifications — on web and mobile.
Access control
Every route is scoped by role; JWTs carry identity and the API enforces what each role may read or change.
Challenges
Three audiences, one API
Solved with role-based routes and per-role dashboards rather than three backends.
Messy bulk data
Excel imports go through validation before persistence so bad rows never reach the schedule.
Support during exams
System errors create ServiceNow incidents automatically instead of relying on someone noticing.
Technical decisions
React Native for faculty and students
Attendance is taken in a room, not at a desk; mobile is the primary surface for those roles.
MongoDB
Flexible documents suit allocations and schedules that change shape by exam type.
Result
A deployed system covering the full exam-day workflow — scheduling, allocation, attendance, notifications and incident tracking — across web and mobile.
Lessons
- 01Role-based access is easiest when it is designed into the API from the first route.
- 02Validating data at the boundary is cheaper than cleaning it in the database.
