System online · Lahore
Case · 04 / 05
Anonymized
EdTech · Learning · Tier B · 5 weeks

AI exam-prep platform with PDF chat and MCQ generation.

Conversational document agent over student coursework with auto-generated practice questions. A Tier B engagement — owned codebase, MVP shipped on day 30, real students by week 6.

Headline outcome MVP shipped on day 30 two iteration rounds inside SOW
EngagementTier B · 5 weeks
Team1 founder + 1 contractor
StackNext.js, OpenAI, Supabase
StatusShipped · live with users
01The problem

A founder needed a working product, not a prototype.

The client is an edtech founder who'd validated demand: students preparing for professional exams wanted a tool that could read their coursework PDFs and answer questions, then quiz them on what they'd just learned. The market signals were clear; what was missing was a working product to put in front of paying users.

They'd spent three months on contractor-built prototypes that demoed well in 30-second clips and broke the moment a student uploaded a 400-page textbook. The retrieval was naive, the conversation lost context after a few turns, and the auto-generated questions skewed either too easy or factually wrong.

This is a textbook Tier B fit. The founder needed an MVP fast, owned in their repo, ready for real users to push on. Not a prototype. Not a "platform." A product.

02What we built

A document chat with a quiz generator on top, both grounded in the student's PDFs.

Fig. 02.D · Study session flow Production
UPLOAD · INDEX · CHAT · QUIZ Student PDFs + chat Indexer chunk + embed Supabase pgvector Chat agent cited answers Quiz agent MCQ + explain Student UI Next.js

The student uploads their coursework PDFs. The indexer chunks each document with overlap, embeds the chunks, and stores them in Supabase's pgvector — one library per student so retrieval can't bleed between users. Indexing finishes in seconds for typical textbook chapters.

Two agents run on top of the vector store. The chat agent answers questions in the student's library, citing the source page on every claim. The quiz agent generates multiple-choice questions from a passage the student picks (or a chapter the chat agent surfaces), with answer explanations grounded in the source text.

Both agents share retrieval logic. The chat agent feeds its retrieval context into the quiz agent when a student says "quiz me on what we just covered" — that handoff is the difference between a chatbot and a study tool. The whole UI is a Next.js app the founder owns end-to-end.

03How we built it

Four phases. Five weeks.

01 · Map

Two-day discovery

Walked through the existing prototype, identified the failures, agreed on the smallest possible MVP that would pass real-student testing. Cut three "nice to have" features in the first hour.

Days 1 — 2
02 · Build

Indexer + chat

Built the upload, chunking, embedding, and chat path end-to-end first. No quiz, no auth flourishes. Got document chat working before anything else.

Weeks 1 — 2
03 · Wire

Quiz + iteration

Quiz agent landed in week 3. First iteration round used founder feedback on 50 generated questions. Second round used real beta-student feedback in week 4.

Weeks 3 — 4
04 · Ship

Production deploy on day 30

Deployed to production on the founder's domain, MVP shipped on day 30. Loom walkthrough, runbook, 30-day support tail. Two iteration rounds inside the SOW, one held in reserve in case the launch surfaced a regression.

Week 5
04Stack & tradeoffs

Why these tools.

Next.js for the app. The founder wanted a single deploy target, server components for the data-heavy library views, and a stack their next hire could pick up. OpenAI for the agents — at MVP scale, the latency and cost story were better than alternatives we tested, and function-calling on the quiz-generation rubric was reliable from day one.

Supabase as the everything-else layer: auth, Postgres, pgvector, file storage, edge functions. One vendor, one dashboard, one set of secrets. For a Tier B MVP this consolidation was the right call — the founder didn't need a polyglot infra story for 100 beta users.

Considered and rejected: a separate vector DB like Pinecone (extra service for no measurable retrieval gain at this scale), Anthropic Claude for the agents (similar quality on this workload, OpenAI's structured-output reliability won the bake-off), and a fully serverless agent layer on Cloudflare Workers (good idea, would have added a week we didn't have).

05Outcomes

What changed after deploy.

SOW iteration rounds 2 used / 2 included no overruns
Codebase ownership 100% in founder's repo
Time to first paying user Week 6 post-handover

Illustrative ranges. Specific client metrics are confirmed under NDA. Numbers shown reflect reported outcomes at handover.

More work

Other systems we've shipped.

Want one of these for your team?

30-min scope call. By the end you'll know what we'd build, in what order, what it costs.