work / mbprep
MBPrep
Exam prep for Nigerian medical students: answered question banks, timed mocks and a Telegram bot on one account.
- Years
- 2026
- Status
- live
- Live
- mbprep.app
What it is
MBPrep turns past MBBS exam papers into answered, topic-mapped question banks. Students practise them on the web, in an Expo app, and through @MBPrepBot on Telegram, all against the same account: timed mocks marked like the real paper, spaced revision, an intel view of what examiners keep setting, and payments in naira.
Read more
One Elysia API Worker serves all three surfaces from one D1 database, answers included; question pictures sit in private R2. On Telegram a timed mock is held by a Durable Object alarm per exam, with a cron sweep every five minutes as a backstop; on the web and the app the paper keeps its own clock and the server accepts it up to 60 seconds past the limit. New banks arrive as drafts, are validated and approved, and publish through a Cloudflare Workflow that can roll back.
The business runs through an admin dashboard and an admin MCP server with 134 tools: students, payments, programmes, discount codes, bank drafts and publishing. Every write needs a reason and lands in an audit log, so an agent can operate it without anyone wondering who changed what.
Stack
- TypeScript
- Bun
- Elysia
- Next.js
- Expo
- Cloudflare Workers
- D1
- R2
- Durable Objects
- Cloudflare Workflows
- Telegram Bot API
- MCP
- Python
Counted
- 874commits in the monorepo
git rev-list, to 2026-10-11 - 7apps
api, web, admin, mcp, hypatia, mobile, admin-mobile - 134admin MCP tools
apps/mcp tool registry, 2026-10-12 - 66D1 migrations
apps/api/migrations - 109test files
repo count
How it works
The system as a machine on a bench. Hover or use the arrow keys to drive it.
The path through it
- Document intakeExam corpora in Google Drive are listed, matched against registered source documents, and only new or changed files are downloaded.
- HypatiaThe content engine extracts, classifies, solves and blind-verifies each question into a bank draft. It has its own page.
- Validate · approve · publishA founder approves the draft; a Workflow in the admin MCP Worker publishes it on schedule (prepare, batches, finish, wait, flip) and can roll it back.
- One API, three surfacesThe Elysia Worker serves mbprep.app, the Expo app and the Telegram webhook from the same D1 bank.
- Timed mocksFour formats: true/false, single best answer, EMQ, picture test. On Telegram a Durable Object alarm per exam plus a five-minute cron sweep; on web and app the paper's own clock, with 60 s of grace.
- Operateadmin.mbprep.app and mcp.mbprep.app (134 tools); every change carries a reason in the audit log.