Question Bank & Randomized Test Generator: Every Learner Gets a Fair but Different Test
Hold a tagged question bank and generate randomized test versions to a blueprint — 5 easy, 5 medium, 2 hard from these topics — so the same exam never leaks again, with the trainer approving the bank, the blueprint, and every version before it reaches learners.
A web tool where you load and tag a question bank, set a test blueprint, the trainer approves both, the tool generates randomized test versions that hit the blueprint with no duplicate questions, you preview and approve each version, assign it, record every learner's version and answers, and export the bank and all generated versions to CSV.
Before you start
- A Supabase account (free)
- A Vercel account (free)
- A Resend account (free)
- Your question bank as a spreadsheet/CSV (question, options, answer, topic, difficulty, type)
- A rough test blueprint (how many questions per topic and difficulty)
- Claude Code or any AI coding agent
The problem this kills
You give the same test every month — onboarding, safety, compliance refreshers — and you reuse the same exam because building a new one by hand is a slog. Then it leaks. Someone screenshots it, the answer key circulates in a group chat, and your "assessment" is now measuring who has the cheat sheet, not who knows the material. Your audit asks how you ensure test integrity and you don't have a good answer.
The fix is obvious in theory: pull from a big bank of questions and give everyone a different version. But doing that in a spreadsheet is miserable — you hand-shuffle rows, lose track of which version had which answer key, accidentally put the same question on a test twice, and have no record of who got which version. You don't need to live like this, and you don't need to be a developer to fix it.
What you'll build
A simple internal web tool. You load your question bank — each question with its options, correct answer, topic, difficulty, and type — and tag it. You define a test blueprint in plain terms: how many questions to pull from each topic and difficulty (for example, 5 easy + 5 medium + 2 hard, weighted across these three topics). The trainer reviews and approves the bank and the blueprint. Then the tool generates randomized test versions — each one satisfies the blueprint exactly, pulls different questions, never repeats a question within a version, and shuffles the answer options. You preview a version, approve it, and assign it to learners. Each learner's version and their answers are recorded, every question gets an auto-graded result, and you can see which questions everyone aces or everyone bombs (a sign the question is broken). The whole bank and every generated version export to CSV.
What's inside the Implementation Plan
The downloadable plan is a step-by-step file you paste into an AI coding agent. It opens by interviewing you about your business — what you're testing, where your questions live today, the exact columns and naming in your bank, how you rate difficulty, your topic taxonomy, your pass mark and how many versions you need, and your messy edge cases — and then it tailors the data model, the blueprint engine, and every later step to your answers. This is not a generic template; the agent reflects a short spec back to you and waits for your thumbs-up before it builds anything. From there it walks the agent through loading and tagging the bank, building the blueprint, the approval gates, the randomized version generator (with the no-duplicates and blueprint-coverage guarantees), the preview-and-approve screen, assignment and answer recording, the question-performance report, and the CSV export — each step with a ready-to-copy prompt. There's also a fallback so you can build the whole thing today even with no integration to your LMS.
The governance it includes (this is the point)
This is real assessment tooling, so it ships with the controls a training or compliance team needs: login so only your team can use it, row-level security so you only ever see your own organization's bank and results, a complete audit trail of who edited the bank, who approved the blueprint, who released which version and when, a hard human-approval gate so no test version reaches a learner until a trainer previews and signs off, and duplicate guards keyed on question ID (so a question can't land on the same test twice) and on test-version ID per learner (so a learner can't be double-assigned or double-graded). The bank is versioned, so you always know which wording was live when a given test went out.
Who it's for
Trainers, L&D coordinators, and compliance leads who give the same test repeatedly and worry about answer-sharing. If you can describe how you decide what a "fair" test looks like — how many questions, from which topics, at which difficulty — you can build this.
You've got this — start with the plan, paste the first prompt, answer the interview, and you'll watch your first set of randomized, fair-but-different test versions generate the same afternoon.