Case Study

LearnFast: Building an AI-Powered Education Platform

How I built a full SaaS education platform that uses LLMs and NLP to turn notes into interactive tests, quizzes, and mastery tracking.

LearnFast Education Platform

LearnFast is a full SaaS education platform that turns uploaded notes into interactive tests, quizzes, and mastery tracking. Students upload PDFs or text, the platform extracts key terms and auto-generates assessments via LLM, then marks written answers using NLP.

The Idea

The project started with a simple problem: my cousin was struggling through his first year of high school, and I wanted to build something to help him study more effectively. What began as a small tool for one person grew into a proper SaaS platform that I later used myself for studying Chinese III at HKU.

The core insight was that the hardest part of studying isn't finding information — it's testing yourself effectively. Most students spend hours making flashcards or practice questions, and the quality varies. What if the platform could generate those tests automatically?

Tech Stack

  • Next.js & React — Frontend and server-side rendering
  • MongoDB & Mongoose — Data persistence
  • Stripe — Subscription billing (Free / Pro $3.99/mo)
  • DeepSeek / OpenAI — LLM question generation from notes
  • Sentence-BERT — NLP semantic similarity for marking written answers
  • Auth.js — Magic-link email auth + Google OAuth
  • Resend — Email delivery
  • Vercel — Hosting and deployment

Key Features

AI Question Generation

Students upload notes in PDF, DOCX, or plain text format. The platform extracts terms and concepts, then uses an LLM to generate multiple-choice and written-answer questions. The generation pipeline is prompt-engineered to produce varied, curriculum-aligned questions — not generic trivia.

Dual-Format Mastery Flow

Each topic is tested in two phases: MCQs for quick knowledge checks, then written answers for deeper understanding. Students must demonstrate mastery in both formats to complete a unit.

Automated NLP Marking

Written answers are marked using sentence-BERT embeddings with cosine similarity scoring. Answers below the threshold are flagged for manual review, giving teachers oversight without creating grading overhead.

Classroom Management

Teachers can organise classes into units, each with associated notes, quizzes, and tests. Progress tracking shows per-term, per-unit, and per-class performance at a glance.

Spaced Repetition

Review questions are scheduled using spaced repetition to reinforce long-term retention. The system tracks which questions a student got right or wrong and adjusts review intervals accordingly.

Stripe Subscriptions

Freemium model with three tiers: Free (limited quizzes), Pro ($3.99/mo for unlimited), and Student Pack ($9.99/mo for classroom features). All managed through Stripe's customer portal.

Challenges & Solutions

Question Quality

Early LLM outputs were too generic — questions that didn't actually test the material in the uploaded notes. I iterated on the prompt engineering extensively, adding few-shot examples and curriculum constraints. The key was to pass the raw note text as context rather than asking the model to generate from nothing.

NLP Marking Accuracy

Sentence-BERT cosine similarity works well for factual answers but struggles with creative or opinion-based responses. I implemented a two-tier system: automatic pass above 0.85 similarity, automatic fail below 0.3, and flagged for manual review in between.

PDF Parsing

PDFs come in wildly different formats — scanned documents, formatted tables, mixed text and images. I used a multi-strategy approach: text extraction for digital PDFs, OCR fallback for scanned ones, and chunking to handle documents longer than the LLM context window.

What I Learned

  • Building for one person first — Starting with a single user (my cousin) meant no feature bloat. Every feature was validated against a real need before it was built.
  • Prompt engineering is product engineering — The quality of the LLM output determined whether the product felt magical or useless. I spent weeks iterating on prompts, not just code.
  • Stripe integration is deceptively complex — Webhook handling, subscription lifecycle management, metered billing — these take more attention than the initial checkout flow.

LearnFast taught me that the best products solve real problems for real people. What started as a favour for a family member turned into a full platform with paying users.

Visit LearnFast →