Exams & results
From datesheet to report card without a spreadsheet in sight.
Exams → create the exam (Mid-term, Final…), attach subjects with max marks per section. The grade scale (A+/A/B…) comes from your configured bands.
Eligibility used to be four checkboxes on the exam — one set, applied to every student. It is now a set of rules, and the difference is scope and mercy.
A rule holds for the whole campus, or only for a wing, a program or a section. So "attendance must be 75%" can apply to the senior wing and not to the primary one, which four checkboxes could never express. A rule tied to no particular exam applies to all of them — which is what a school means by "fees must be cleared", rather than re-creating it every term.
Rules available: fees cleared, minimum attendance, not debarred, admit card issued, and assessment completed. The fee rule takes an optional grace, so a school does not turn the whole rule off over a fifty-rupee rounding difference.
Exemption — one named student excused from one rule, with a reason. The real request is never "turn off the attendance rule", it is *"Ayesha was in hospital"*. Everybody else is still judged by it. An exemption can carry an expiry, and an expired one simply stops applying rather than vanishing.
Override — let this student sit anyway. The supervised escape at the door. It does not hide what was wrong: the roster shows the failing reasons *and* that somebody admitted them regardless, because that pair is exactly what an examinations controller is asked about afterwards.
Both require a reason. Not because the system needs one, but because whoever granted it will have forgotten by the time anybody asks.
A student with no attendance on file passes the attendance rule. A school that has not started marking registers must not have its whole cohort refused at the hall door by a rule it never had the data to satisfy.
A rule the system does not yet know how to evaluate passes rather than blocks. An unrecognised rule must never silently bar a cohort.
Assessments is a feedback round in both directions: students rate their teachers, teachers rate their students. What makes it more than a form nobody fills in is that an unfinished one stops an admit card — turn on the *assessment completed* rule above and the two are joined.
A cycle is one round. Give it a name, point it at an exam, and press Issue. Issuing creates every assignment the cycle needs and is safe to repeat — it only creates what is missing, so run it again after adding a category or admitting a late joiner.
The window cannot outlive the exam it gates. Leave the close date empty and it shuts when the first paper starts. Set it after the exam begins and the screen shows you the date it *really* closes, because a student who can still submit the condition of entry after entry has begun makes the gate meaningless.
Categories carry the questions, and each answer carries a score that may be negative — *"never returns marked work"* should cost, not merely score zero. The person answering never sees those numbers; publishing them turns a survey into a form people optimise.
Categories are only issued to people they can apply to. A hostel survey goes to boarders, a transport survey where a route is assigned — a day scholar is never asked about a bus. Only required categories gate the exam.
Editing a question later does not disturb anything already submitted: a response keeps the score it was worth on the day.
Students answer in their portal, one at a time. Teachers get the same questions with a select-all, because nobody fills two hundred identical forms and without it the staff→student half simply never gets done — a bulk-filled one is recorded as such so a report can tell the difference. Any one student can still be rated separately, and a bulk pass never overwrites an answer somebody gave deliberately.
*Prefer not to say* is a real answer, stored as one. A survey that forces an opinion manufactures one.
The completion list is the chase list and the gate's other face: it counts exactly who cannot be issued an admit card. Open a row and the office can reopen one person's assessment with a reason — the escape that stops a forgotten survey barring somebody from an exam on a technicality. Only the exam office can do it, and the reason is required.
The office can also fill one in at the counter on somebody's behalf. That is recorded against the record rather than hidden, so a proxied answer is never indistinguishable from one the student typed.
A teacher never sees who said what — only aggregates, and only once enough people have answered. That is enforced by the API, not by the screen.
The same rule governs the reports. Assessment results withholds any person with fewer than five responses entirely — the row is absent, not blanked, because in a class of four the class size is the identifier. The summary says how many were withheld, so a short list never reads as "everyone scored well" when it means "too few answered to say". Assessment completion is the chase list for a whole campus, and Assessment questions shows which questions people decline most — usually a sign one is badly worded or unsafe to answer.
Halls & seating is where an exam physically happens. Until now a subject carried a date and nothing else, so the two questions an invigilator is actually asked at the door — *am I in the right hall* and *am I here at the right time* — had no answer anywhere in the system.
Halls carry a room capacity and a separate exam capacity, because exam seating is sparser than teaching seating — every other desk, a row apart. Setting it means nobody has to remember to halve the room.
Sittings are one subject, in one hall, between two times. There is one per hall, because a cohort of three hundred does not fit in one room and splitting a paper is the normal case rather than an exception. The same paper cannot be scheduled twice in the same hall at the same time.
Seats are generated in roll order rather than at random. An invigilator has to find a name on a printed chart under pressure, and a chart that reshuffles every time it is regenerated cannot be reconciled with the copy already pinned to the door. Regenerating keeps everyone already seated where they are, so adding a late entry does not move anybody. Students who do not fit are reported, not dropped silently.
Individual seats can be assigned by hand, and two students can never be sent to the same desk.
Hall door is the invigilator's screen. Pick the hall you are standing at, then scan.
Eligibility answers *may this student sit this exam*. It does not answer either of the questions actually asked at a door — am I in the right hall and am I here at the right time — and a student who has cleared every admit rule can still be in the wrong room. Scanning against a sitting rather than an exam is what makes the door able to say so.
A refusal leads with the correction. Somebody in the wrong hall is lost, not misbehaving, so the screen answers with *Hall B, seat 14, starts 09:00* rather than a red cross. An invigilator with two hundred people queueing cannot act on a verdict. Three findings, each said differently because each needs a different response: no seat at all (the office must allocate one), wrong hall (send them, with directions), wrong day or time (their paper is elsewhere on the datesheet). A student in the right room on the wrong day is never also told they are in the wrong room — one mistake, one correction.
Every channel arrives the same way. The QR on the printed admit card, the student's app QR, a tapped NFC card, and the number typed by hand all produce the identical verdict. The card only ever identifies somebody; it never admits them, so a lost card or a withdrawn admit card stops working on the very next scan with nothing re-encoded.
Admitting anyway is the supervised escape, recorded against whoever did it. It does not erase what was wrong: the hall list shows the refusal *and* the override, because that pair is what gets asked about afterwards.
A repeated scan is not a repeated arrival. A hall in a basement has no signal, so the app queues taps and replays them when it reconnects. A replay is answered with the verdict already recorded rather than written again — two records for one scan would read as the student having been at the door twice.
The hall list underneath counts seats filled against scripts expected, which is the number an examinations controller is asked for at the end of a paper. A refused tap is an audit record, not a person in the room, and is never counted as one. Across every hall at once, that is Exam hall attendance, which also shows who was refused and who was admitted anyway.
An invigilator needs only attendance.mark for any of this — not the permission that edits the datesheet.
Teachers enter marks in Marks entry (or their portal) — straight into the grid, absents marked as such. Entries lock when the exam is finalised.
The moment marks are in: tabulation sheet with ranks, grade distribution, pass/fail, toppers, and the remedial list of students under your threshold. Report cards print per section or per student, and parents see results in their portal the moment you publish.
Progress across exams tracks one student Mid→Final. Teacher-wise analysis shows outcomes by who taught the subject — use it kindly.