Built on Y Build Go from prompt to a deployed app on your own domain — no server. Start free
BuildShipCompareThe LabAbout Start building →
ybuild / Scenarios

Quiz App for Exam Prep: Question Banks, Mock Exams & Spaced Repetition

Whether you run a test-prep course, sell a study product, or coach candidates toward a licensing exam, the same problem shows up: the questions live in Word docs and PDFs, students study by re-reading notes that never build recall, and nobody can tell which topics a candidate is actually weak on until the score comes back. Decades of cognitive-science research point to the same fix — retrieval practice and spacing, meaning you repeatedly test yourself and revisit material at widening intervals rather than cramming. A quiz app for exam prep, hosted on ybuild and served on your own domain, turns that science into a running system: a mapped question bank, timed mock exams that mirror the real exam blueprint, and a per-student review queue that resurfaces exactly the questions each learner keeps missing.

The problem

What you’d build

Blueprint-mapped question bank

One item bank where every question carries its stem, answer choices, the correct answer key, a written rationale, a difficulty tag, and the blueprint domain it belongs to. Draft, review, and published states keep half-written or unverified items out of live exams, and you can filter the whole bank by domain or difficulty in seconds instead of grepping through documents.

Practice + timed mock-exam engine

Two modes from the same bank. Practice mode shows the rationale immediately after each answer so the reasoning sticks; mock mode assembles a full exam that mirrors the real blueprint's domain weighting and time limit, runs a server-side clock with autosave, then scores it and breaks results down domain by domain with a readiness estimate.

Per-student spaced-repetition review

Every question a student misses or rates hard enters their personal review queue with its own interval. Miss it and it comes back soon; get it right repeatedly and the interval stretches out. Each day the student clears only what is due, so short daily sessions steadily convert weak items into mastered ones instead of re-covering everything.

The data model

topics
exam_id, name, parent_topic_id, blueprint_weight, sort_order
questions
topic_id, type, stem, choices, answer_key, rationale, difficulty, status, version, retired_at
attempts
student_id, exam_id, mode, started_at, submitted_at, time_limit_seconds, score, passed
responses
attempt_id, question_id, selected_choices, is_correct, seconds_spent, flagged, confidence
review_queue
student_id, question_id, ease_factor, interval_days, due_at, last_grade, lapses

A day in the system

  1. You build the bank: author or import questions, tag each one to a blueprint domain and a difficulty, write the rationale, and move it from draft to published once it is verified.
  2. A student signs up on your own domain, picks the exam they are preparing for, and lands on a dashboard showing what is due and where they are weakest.
  3. They run a practice quiz filtered to a shaky domain; each question reveals its rationale the moment they answer, so a wrong guess turns into a corrected memory instead of a mystery.
  4. Every missed or hard-rated question drops into that student's review queue with a short first interval, while items they nail are pushed further out.
  5. The next day, only the questions that have come due resurface — a five-minute session clears the queue and quietly widens the spacing on everything answered correctly.
  6. A week before test day, the student takes a full timed mock exam that draws the right number of questions from each domain and runs a server-side clock they cannot reset by refreshing.
  7. The system scores the mock, shows a domain-by-domain breakdown, flags the two weakest areas, and estimates whether they are tracking toward a pass.
  8. You open the instructor view: pass-rate trends across the cohort, which questions are too easy or too hard, and which rationales students keep re-reading — the whole operation hosted on ybuild and served from your domain.

Where AI trips up

✓ Build first
  • An item bank where every question is tagged to a blueprint domain, carries an answer key and a rationale, and has a draft/published status so unverified items stay out of live exams.
  • A practice mode that reveals the rationale after each answer, plus a timed mock mode with server-side timing, autosave, and a domain-weighted question draw.
  • A per-student review queue that resurfaces missed and hard-rated questions at widening intervals, with a simple daily "due" list.
— Skip for now
  • AI-generated questions — for a high-stakes exam a wrong answer key is real harm, so author or import verified items for v1 rather than trusting generation.
  • Remote proctoring, webcam monitoring, and lockdown anti-cheating — heavy to build and unnecessary for a practice product.
  • Adaptive difficulty and item-response-theory calibration — start with fixed difficulty tags and add adaptivity once you have real response data.

FAQ

Can I import my existing question bank instead of retyping it?

Yes. Bring your questions in from a spreadsheet — stem, choices, answer key, rationale, and the domain each belongs to — and they land in the bank as drafts you can review and publish. Nothing goes live until you mark it verified.

Can I make a mock exam that actually matches the real test's timing and weighting?

That is the point of the mock engine. You set the time limit and the number of questions to pull from each blueprint domain, so the practice exam mirrors the real one's pacing and content mix — which is what makes a practice score a trustworthy readiness signal.

How does the app decide when a question comes back?

Each student-question pair tracks an ease factor and an interval. Miss a question and it returns after a short gap; answer it correctly several times and the gap widens, following the same spacing logic used by tools like Anki. Every learner gets their own schedule.

Does it handle "select all that apply" and true/false, not just single answers?

Yes. Single-select, multiple-select, and true/false are all supported, and each is scored by its own rule — including partial versus all-or-nothing credit on multi-answer questions — so your bank is not forced into one narrow format.

Can I see which topics my students struggle with across a cohort?

The instructor view breaks results down by blueprint domain across all your students, surfaces the weakest areas, and flags questions that are too easy or too hard so you can fix the bank. It runs on your own domain, hosted on ybuild.

Sources

Build this for your business

Describe it, go live on your own domain in one pass — hosted, full-stack, no server. Free to start.

Start building free →
Related on ybuild
exam prep & tutoring Managed AuthManaged DatabasePayments & Billing Database SchemaSaaSAuthentication
Related scenarios
Build an Appointment App for Your SpaBuild a Booking App for a Dental ClinicBuild a Booking App for Your SalonBooking App for Tutors: Recurring Lessons, Prepaid Hours & No-Show ControlBookkeeping App for Small BusinessCRM for Law Firms
Build your own app
Free · no card
Start free →