Skip to content
All work
SaaS

PaperMaker: Automated Exam Papers

Generate exam papers from a question bank in minutes, not hours.

Role
Backend engineer
Year
2023
Timeline
~6 weeks
DjangoPostgreSQLREST APIsFlutterAWS
01The situation

Educators were building exam papers by hand: copying questions, balancing difficulty and reformatting each time. It was slow, repetitive and error-prone.

02The constraint

The system had to respect a paper 'blueprint' (marks per section, difficulty mix, syllabus coverage) while drawing from a growing, tagged question bank, and work for both a dashboard and a mobile app.

03The decisions

Made the question bank richly tagged and the blueprint declarative.

Instead of Hard-coding paper formats.

Why: A declarative blueprint over a tagged bank meant new paper patterns were configuration, not code changes.

Generated each paper by satisfying the blueprint's constraints, not by random sampling.

Instead of Randomly pulling questions until the marks added up.

Why: Constraint-driven selection guaranteed the right marks, difficulty mix and syllabus coverage every time, and made a paper reproducible instead of a lucky draw.

Served one REST API to both the admin dashboard and the companion app.

Instead of A separate backend for the web and mobile clients.

Why: One contract meant the dashboard and the Flutter app behaved identically and every new feature shipped once, not twice.

04What I built
  • Tagged question-bank data model
  • Blueprint-driven paper generation
  • Admin dashboard for subjects, questions & papers
  • REST API powering a companion app
05The result
Minutesto assemble a balanced paper, not hours by hand
Reusableblueprints instead of reformatting every time
One bankmany paper patterns from a single tagged question set
Hemant Manglani

Hemant Manglani

Ahmedabad, India

Have a product that has to work? Let’s talk.

A 20-minute call, no pitch. We work out whether this is a real problem worth solving, and if I’m not the right person, I’ll tell you.

Every message answered within one business day