A seating plan that actually enforces its own rule
Drawing an examination seating arrangement by hand is slow for one reason: the constraint is easy to state and tedious to satisfy. No two candidates from the same class, branch or paper should be within reach of each other. Do it for thirty seats and you will get it right. Do it for six halls the night before an exam and you will not — and the mistakes are invisible until an invigilator spots two identical answer sheets.
This planner does the arrangement the way an exam office would, and then checks its own work. Every finished chart is re-walked seat by seat, and any position where a same-class neighbour survived is ringed and marked. You are never handed a chart that quietly fails the rule it was built for.
How to make an exam seating arrangement
- Enter each class as a label and a range.
CSE 101-160gives sixty candidates.ECE 201 to 250works too, as does an en dash. For institution-style rolls, write them in full:MECH 2021ME01-2021ME40. - Enter each room as rows by columns.
Room 101 6x5is six rows deep and five seats across. Rows run front to back; row 1 is nearest the board. - Choose how strictly to separate. Strict mode blocks all four neighbours. If your benches are long and copying is only a sideways problem, row-only is less constrained and leaves more valid arrangements.
- Decide how classes spread across rooms. Spreading gives every hall the same mix, which is usually what you want. Filling packs each room before starting the next.
- Read the warnings before you print. They appear above the chart and are the difference between a plan that works and one that merely looks finished.
Why a class larger than half the seats cannot be separated
This is the single most common reason a seating plan fails, and it is worth understanding because no software can work around it.
Picture the seats as a chessboard. To place students with none of them touching, you can use the black squares or the white squares, but not both — the moment you use two adjacent squares, the rule is broken. A chessboard's two colours split the seats in half. So the largest group you can seat with nobody adjacent is half the seats, rounded up.
Seating sixty candidates? No single class can exceed thirty. At thirty-one, at least two of them must end up next to each other, and this is true of every possible arrangement, not just the one this tool produced. The planner runs that arithmetic before allocating and names the offending class, so you can fix the input rather than hunt for a bug in the output.
The usual fixes:
- Split the class into two papers. Enter them as separate groups —
Paper A 1-30andPaper B 31-60. Now they count as different groups and can legally sit adjacent, which is fine because their question papers differ. - Add another class to the mix. Two classes of thirty in sixty seats is exactly solvable; one class of forty plus one of twenty is not.
- Use more rooms. More seats raises the ceiling.
- Relax to row-only mixing if front-to-back separation is not a real risk in your hall.
The four things you need to print
| Output | Who uses it | What it shows |
|---|---|---|
| Seating chart | Invigilator, inside the hall | The room drawn as a grid, board at the top, every seat carrying its roll number, class and seat label. |
| Room list | Invigilator, for attendance | A table per room sorted by roll number, with a blank signature column. |
| Roll index | Candidates, on the notice board | Every roll number in numeric order with its room and seat. |
| Door notice | Taped to the hall door | The room name in large type with the roll numbers allotted to it. |
Printing puts one room on each sheet, so an invigilator carries a single page to a single hall. Seat tints are for the screen; on paper each seat carries its class in text, because office printers and photocopiers cannot be trusted with pale colour fills.
Mixing modes, and when to use which
| Mode | Guards | Use it when |
|---|---|---|
| Strict | Left, right, front, back | The default. Open halls with clear sightlines in every direction. |
| Row only | Left and right | Long shared benches where the realistic risk is a neighbour's paper, not the one in front. |
| Column only | Front and back | Narrow rooms with single-seat rows, or tiered seating. |
| Block | Nothing | A single class writing one paper, where you just want roll numbers laid out in order. |
How the allocation works
The planner walks the seats in your chosen fill order. At each seat it looks at whichever neighbours are already occupied, rules out those classes, and from the classes still eligible picks the one with the most students left to seat.
That last part is what makes it work. A planner that picks arbitrarily will happily seat the small classes early, then reach the last few seats with only the large class remaining and no legal way to place it. Taking the largest remaining class first keeps the pool balanced right to the end. If a seat genuinely has no legal occupant, the planner seats someone anyway and marks the clash rather than leaving a hole in the middle of the hall.
The whole allocation is deterministic: the same input always produces the same chart. That matters more than it sounds, because exam offices routinely reprint a single corrected page and need it to match the copies already distributed.
Notes on roll numbers
- Prefixes are preserved.
2021ME01-2021ME40keeps2021MEon every roll. - Padding follows the first number.
007-010gives007, 008, 009, 010. A plain1-45gives1through45with no leading zeros. - Sorting is numeric. Roll 2 comes before roll 10 in every list, not after it as an alphabetical sort would put it.
- A reversed range is corrected rather than rejected —
50-10is read as 10 to 50. - Two classes may share a label and stay separate groups, so you can enter
MATHS 1-30andMATHS 31-60as two papers.
Privacy
Roll numbers are student data, and none of it leaves your device. The parsing, the allocation, the charts, the CSV and the printing all happen in your browser in JavaScript. There is no upload step, no account, and no server that ever sees an exam title or a candidate list. Your last settings are stored on your own device so the tool reopens where you left it; clearing site data removes them.
Frequently asked questions
Can I stop students of the same class sitting next to each other?
That is the default and the reason the tool exists. Strict mode treats the seats to the left, right, front and back as neighbours and will not place two students from the same class in any of them. If only side-by-side copying concerns you, row-only mixing drops the front-to-back rule and leaves the planner more freedom.
How many students of one class can I mix before it becomes impossible?
Half the seats, rounded up — see the chessboard explanation above. The planner checks this before allocating and warns you by name if a class is over the line.
Why does the chart mark some seats with an exclamation mark?
Because the planner could not keep that seat apart from its neighbour, and would rather show you than hand over a chart that silently fails its own rule. Add a room, split the oversized class into two papers, or move those few students by hand.
What happens if I have more students than seats?
Nobody is dropped. Every available seat is filled, the shortfall is stated in numbers at the top, and the leftover roll numbers are listed under “Not allotted a seat” in the Room lists tab.
How do I seat two different question papers in one room?
Enter each paper as its own group, even when the students share a class — Paper A 1-30 and Paper B 31-60. The planner alternates them, so a candidate looking sideways sees answers to a different paper.
How do I enter roll numbers like 2021CS101?
Write the range as your institution writes it: MECH 2021ME01-2021ME40. The prefix is kept and the padding of the first number sets the width.
Can I split one class across several rooms?
Yes, and by default that is what happens. Spread mode gives every room the same proportional mix, which stops one invigilator facing an entire class. Fill mode packs each room in turn instead.
Can I print a separate notice for each room door?
Yes — the Door notices tab makes one large-type sheet per room, each on its own page.
Can students look up their own room and seat?
The Roll index tab is that list: every roll number in numeric order with its room and seat, ready for the notice board.
Can I get an attendance sheet for the invigilator?
The Room lists tab gives one table per room — serial number, roll number, class, seat and a blank signature column — sorted by roll number and printed one room per page.
Can I export the seating plan to Excel?
Download CSV gives one row per student with roll number, class, room, seat, row and column. Commas and quotes inside a class name are escaped properly.
What if I only know a room's capacity, not its rows and columns?
Write the capacity alone, like Room 101 30, and a near-square grid is chosen. If you know the real shape, type it — wider rooms mix more easily.
Does this work for a single class with no mixing?
Yes. Block mode seats each group together in sequence and makes no adjacency promise, which is right for one class writing one paper.
Are my students' roll numbers uploaded anywhere?
No. Everything runs in your browser. No roll number, class name or exam title reaches any server, and there is no account to create.
Will I get the same chart if I run it again?
Yes — the allocation is deterministic, so a reprinted page always matches the copies already handed out.
Is this free, and is there a limit?
Free, no sign-up, no watermark. Unlimited rooms, each up to 60 × 60 seats. A single range is capped at 20,000 rolls so a mistyped range cannot freeze the page.