Sitting an exam is easy to describe and hard to organise. A college has to decide which subject is examined on which day for every department, then fit thousands of students into a finite number of rooms without seating two students of the same stage side by side, then put the right invigilators in the right rooms without clashing with their teaching days. This system runs that whole chain as one connected pipeline.
It starts from reference data: buildings, floors, rooms and the seat map generated for each room. Exam schedules are then built per department, previewed before anyone sees them, and published only when they are correct, with public holidays and per-department start dates respected and shared or multi-track subjects handled properly. Publishing produces exam sessions, one per date and time slot.
Rooms are allocated to sessions manually or automatically. Each allocation is split into parts, so a single room can host two departments with odd or even column patterns and explicit column ranges keeping them apart, and a database rule prevents more than two departments sharing a room. Late registrations are handled by allocation batches: a second batch seats only the newly arrived students and leaves existing seating untouched.
Seats are then assigned for one session or for many at once, honouring blocked seats and pinned seats, and guaranteeing one seat per student and one student per seat. Invigilators are assigned to sessions while respecting their lecture days and their weekly limits by academic title and employment type, and assignment emails are dispatched and logged. Everything ends in print-ready PDF and Excel documents: seating lists, room cards, invigilation rosters and exam schedules.