Case study
AI Exam Preparation Platform
In plain English
Students photograph a past-paper question and get an examiner-style answer, marks, and quizzes from a real exam corpus.
A complete student product: mobile app, accounts, subscriptions, and answers that cite the paper.
Who it is for
- Cambridge O Level students who currently study from scattered PDFs and lose marks on exam technique.
- Operators who need in-app admin for users, flagged solutions, subjects, and student analytics.
Problem
Students sit Cambridge exams using disconnected past-paper PDFs. Marking schemes are hard to interpret, examiner reports go unread, and private tutoring is expensive and inconsistent.
Students often know the content and still lose marks on how they write. Practice needs to follow the scheme, not dump papers in a folder.
Solution
We built a Flutter student app on a NestJS product API, with a FastAPI retrieval layer over per-subject SQLite indexes of past papers, marking schemes, and examiner reports.
Students photograph or type a question and get an examiner-style model answer with marks and source labels. They can submit their own work for marking, sit quizzes built from real papers, and track topic mastery over time. Grounded generation is blocked when the corpus cannot support an answer.
Outcomes
A complete student product: mobile client, accounts, subscriptions, admin, and a production RAG pipeline that cites the paper, the part, and the scheme.
The same architecture can add higher-level tracks without turning the product into a school SIS or a live one-to-one tutor.
How it works
Inside the AI agent pipeline
What we built
Student app
Answer a question
Type or photograph a past-paper part. Structured model answer, marks breakdown, and source labels.
Check my answer
Submit the question and student work. Examiner-style marks awarded vs total, strengths, and missed points.
Quiz mode
Practice, Smart Review, or Exam Sim with topic filters, resume, history, and topic mastery.
Library and analytics
History, saved solutions, quiz scores, check-answer stats, and weak topics.
Operator admin
Users and analytics
Search, activate or deactivate accounts, and inspect per-student progress.
Quality loop
Flagged solutions from not-helpful feedback, with subject and question drill-down.
How it works
The Flutter app talks only to the NestJS product API. Accounts, quizzes, history, and subscriptions live in MongoDB. The API never calls retrieval directly.
A FastAPI gateway handles OCR, retrieval, authoring, marking, and quiz generation against per-subject SQLite with full-text search and embeddings. If source context is insufficient, the pipeline errors rather than inventing.
Integrations
OpenAI / Azure OpenAI
Embeddings, OCR, grounded authoring, marking, and quiz generation.
Stripe
Checkout for Pro and Premium plans.
Exam corpus pipeline
Past papers, marking schemes, examiner reports, and inserts ingested into queryable SQLite per subject.
Have a similar challenge?
Start a project