Education · EdTech

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.

TEST RULE CONFIGURATION
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.

SCREENSHOT — optional; delete this section if none available
Test rule configuration: the trainer defines the shape of the paper, and the platform generates conforming sets from the bank.

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.

PRACTICE MODE

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
EXAMINATION MODE

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

Question bankCentral repository under the trainer's control.
ClassificationSubject, topic, category and difficulty labelling.
Test rulesConfigurable specifications a generated paper must satisfy.
Paper generationConstrained selection producing varied but equivalent papers.
Practice modeRepeatable self-practice with feedback.
Timed examinationsDuration-bound assessment with automatic submission.
Automatic evaluationScoring and result generation without manual marking.
Performance historyPer-student record across practice and assessment.
Reusable templatesSaved rule sets applied repeatedly across cohorts.
Printable papersThe same bank and rules used to produce offline question papers.
Student accountsLogin, profile and individual practice history.
Admin dashboardBank, rules, students and results in one place.

Technology choices and why

A deliberately ordinary stack for a single trainer's business. The interesting problem was the selection logic, not the infrastructure.

FRAMEWORK

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.

DATABASE

MySQL

Constrained selection across topic, difficulty and category is a query problem. A relational database with proper indexing does this well and predictably.

GENERATION

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.

INTERFACE

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-NQuestions in the bank
EDIT-NTests generated
EDIT-NStudents practising

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