Turning one trainer's judgement into an unlimited supply of exam papers
A question bank and rule-based paper generation platform for a competitive exam trainer — where the expertise that used to be re-applied by hand for every test is encoded once and reused indefinitely.
- SECTOR
- Competitive exam training
- CLIENT
- Subject-matter expert
- STACK
- Laravel, MySQL
- TEAM
- EDIT-TEAM
- STATUS
- EDIT-STATUS
The expert was the bottleneck
A competitive exam trainer had built up something genuinely valuable over years: a large collection of questions, and a well-developed sense of what makes a useful practice paper. How many questions from which topics. What spread of difficulty. What duration. Which combinations reveal whether a student has actually understood something or merely memorised it.
The questions were written down. The judgement was not. It lived in his head and had to be reapplied, manually, every single time a paper was needed — which, with a growing number of students all wanting regular practice, was constantly.
His questions were an inventory. His judgement about how to combine them was the actual asset, and it did not scale past one person's available hours.
That framed the build. The obvious product is a question bank with a test feature — useful, and a commodity. The valuable product captures the trainer's rules about test construction, so that the system can produce papers he would have approved of without him assembling each one.
A test is a rule, not a document
The core inversion: the trainer does not create tests. He creates the specification a valid test must satisfy, and the platform generates as many conforming papers as are needed.
- SUBJECT / TOPIC
- Which areas to draw from
- QUESTION COUNT
- How many in the paper
- DIFFICULTY SPREAD
- Proportion at each level
- CATEGORIES
- Which question types to include
- TOTAL MARKS
- Weighting across the paper
- DURATION
- Time allowed
- RANDOMISATION
- What varies between students
- MODE
- Practice or examination
Once that specification exists, a paper is generated on demand rather than retrieved from a folder. The trainer defines the shape of a good test for a particular purpose, and the platform fills that shape from the bank every time it is asked.
Different papers that are still the same test
Randomly picking questions is trivial. Picking questions so that forty students sit forty different papers of genuinely equal difficulty is not, and that distinction is where the engineering went.
If one student's paper draws harder questions than another's, the scores are not comparable and the whole exercise is worthless. So generation is constrained rather than random: the difficulty distribution, the topic coverage and the total marks are fixed by the rule, and randomisation operates only within those constraints. Every generated paper differs in its questions and agrees in its shape.
That property is what makes the platform usable for a room full of students at once — the practical reason a trainer wants variation in the first place.
Classification is the foundation
A generator is only as good as the labels beneath it. If difficulty is applied inconsistently across the bank, the papers it produces are inconsistent too, however sound the rule.
Depth per rule matters
A rule can only produce varied papers if the bank holds enough questions matching each constraint. Thin coverage in one topic at one difficulty forces repetition.
Repeat practice needs memory
A student practising the same topic repeatedly should not keep meeting the same questions, so generation accounts for what they have already been shown.
The rule outlives the paper
Add new questions to the bank and every existing rule immediately produces better papers. The trainer's configuration work is never spent.
Practice and examination are different products
The same question bank and the same rules serve two purposes that need opposite behaviour, and conflating them makes both worse.
Built to teach
- Feedback close to the moment of answering
- Repeatable as often as the student wants
- Value is in understanding the mistake
- Progress tracked across attempts over time
Built to measure
- Timed, with results held until submission
- Different paper per student, equal in difficulty
- Value is in a score that means something
- Automatic evaluation and result generation
Performance history spans both. A trainer looking at a student's record can see where they practise most and where the measured results have not moved — which is the more useful signal, and the one that is hardest to get from paper tests.
What the platform covers
Technology choices and why
A deliberately ordinary stack for a single trainer's business. The interesting problem was the selection logic, not the infrastructure.
Laravel
Runs on inexpensive hosting and can be maintained by any competent PHP developer, which matters for a client who is one person rather than an organisation with an IT department.
MySQL
Constrained selection across topic, difficulty and category is a query problem. A relational database with proper indexing does this well and predictably.
Constrained selection
Questions are drawn to satisfy the rule's distribution rather than sampled freely, so variation never comes at the cost of comparability between students.
JavaScript front end
Timed assessment needs a responsive clock, reliable submission at expiry, and answers that survive a dropped connection mid-paper.
How the team built it
GegoSoft engineers use Claude Code as standard daily tooling. On this build it was most valuable against the generation logic — producing test cases that check a rule is genuinely satisfied across many generated papers, which is tedious to write by hand and is exactly where a subtle distribution bug would hide unnoticed for months.
The rule model, the classification schema and the decision to constrain rather than randomise selection were the team's design, developed with the trainer. Every change passed normal review before merge.
What changed for the trainer
Before, every practice paper cost him time he could otherwise have spent teaching. After, the same effort goes into the bank and the rules once, and papers are a by-product. His students practise as often as they want without asking him for anything, and the constraint on how much practice he can offer is no longer his own availability.
EDIT-STATUS — confirm current status and what the client permits to be published.
Common questions
Can GegoSoft build an online examination platform for us?
Yes. We have built question banks, rule-based paper generation, timed assessment and automatic evaluation. The scoping question we start with is whether you need tests delivered or tests generated — they are different products and the second is considerably more useful if you run assessments regularly.
What is rule-based question paper generation?
Instead of assembling each paper by hand, you define what a valid paper looks like — topics, question count, difficulty spread, marks, duration — and the system generates conforming papers from your bank on demand. One specification produces unlimited papers.
Can every student get a different paper?
Yes, and this is the part worth getting right. Selection is constrained so that different papers still match the same difficulty distribution and topic coverage, which is what makes the scores comparable. Random selection alone would not achieve that.
Can the same question bank produce printed papers?
Yes. The generator serves both online assessment and printable question papers from the same repository and the same rules, which is often the feature that saves a trainer the most time.
Who owns the question bank?
The client. On this project the trainer's questions were his commercial asset, and the platform was built so he retained complete control over the repository and the rules governing its use.
Do you work with individual trainers as well as institutions?
Yes. This client was one subject-matter expert. We also build for institutions — GegoK12 is our open source school ERP used by schools in several countries.
Is your expertise stuck in your own hours?
Tell us what you currently produce by hand and what rules you follow when you do it. If those rules can be written down, they can usually be encoded — and that is the difference between a business that scales and one that does not.
Start a conversation See all case studies