topfoc.usStart a build
← All projects

MedMaster

An exam-prep platform for ACEM Fellowship candidates: a large MCQ bank across twenty body systems, spaced repetition, blueprinted mock papers, and item statistics that tell the authors which questions are broken.

  • Supabase
  • Stripe
  • PWA
  • SEO
A MedMaster sample question with its answer options
Client
Master Medicine Pty Ltd
Role
Architecture, full-stack build, content pipeline
Year
2026
Stack
React · Supabase · Stripe · SvelteKit

The challenge

An exam bank is only worth what its questions are worth. Five thousand items written by clinicians over years arrive as spreadsheets, and some fraction of them are mis-keyed, ambiguous or simply too easy to be worth asking. Candidates paying for fellowship prep will find those items, and one of them will cost you the review.

On top of that, a study platform people keep opening, billing that can't be bypassed, and a marketing site that ranks, all for an exam whose candidate pool is a few hundred people a year.

The approach

Statistics run as a first-class feature rather than a report. Every answered item feeds an item-statistics table refreshed nightly by pg_cron; mock papers are blueprinted and scored against criterion cut scores, with KR-20 reliability on the paper itself. A flag queue lets candidates report a bad item and suspends it automatically once it crosses a threshold, so a mis-keyed question stops being served before anyone has to read the ticket.

Content arrives through a pipeline instead of an import. The authors' spreadsheets mirror out of Dropbox, validate into a checked questions.json, and seed Postgres. It re-runs cleanly and it fails loudly, which beats seeding nonsense quietly.

Study behaviour uses FSRS spaced repetition with generated plans. The app is a PWA that resumes a session offline. Billing is Stripe, with the free tier's ceiling enforced in row-level security instead of the UI, since that is the one place it can't be clicked around. The marketing site is static, with a page per category and subtopic, playable sample questions, and the ACEM disclaimer plus an accessibility pass on every page.

The outcome

Built out and pre-launch. The bank is seeded and reproducible, the psychometrics run nightly, and the platform around them (planner, mock papers, billing, admin, offline) is complete. Screens here still carry the earlier working name, MedQVault.

What came of it

  • 15,083 questions across 20 categories, seeded from a reproducible, self-checking pipeline
  • 2Item statistics refreshed nightly, with KR-20 reliability and criterion cut scores
  • 3Spaced repetition and generated study plans built on FSRS
  • 4Offline resume in the PWA, so a session survives a dead train tunnel

Screens

Click to enlarge

Got a build
in mind?

Book a free consultation