Ismail[Ariyan]
← Index
02 // Product · Founder

Rectify Learn

Django RESTReactAzure OpenAISupabase
00

Summary

An adaptive learning platform that turns a student's own lecture notes into graded quizzes and flashcards. I built the backend and the entire AI pipeline solo; a collaborator owns the React frontend.

Role
Founder & Lead Engineer
Period
2024—Present
Status
Live
Stack
Django REST · React · Azure OpenAI · Supabase
01

Problem

Students collect PDFs and lecture slides they never turn into anything they can be tested on. Writing good questions from your own notes is slow, so most people re-read passively instead — which feels like studying and mostly isn't.

02

Constraints

  • C01Solo on backend and AI — no ML or DevOps help
  • C02Source documents are wildly inconsistent (slides, scans, 80-page PDFs) and the output has to stay consistent anyway
  • C03Cost per user has to work for a bootstrapped product, which caps how freely I can call the model
03

Architecture

01
Ingestion

PDF and DOCX uploads, parsed and chunked before anything reaches the model.

02
Generation

Azure OpenAI produces difficulty-graded quizzes and flashcards with hints, explanations and keyword tags.

03
API layer

Django REST serves the frontend and owns session state; Supabase handles auth and cross-device sync.

04
Review engine

Cards resurface based on how confident the student says they are, not a fixed schedule.

04

Decisions

D01Own the AI pipeline vs. wrap a quiz-generation API
Options
Custom prompting and parsing pipeline / Off-the-shelf quiz-generation API
Chosen
Build the pipeline
Rationale
Nothing off the shelf handled arbitrary lecture-note structure or returned difficulty-graded output with explanations attached.
What it cost
Every parsing edge case is mine, and there's no vendor to file a bug against.
D02Django REST vs. a Node backend
Options
Django REST Framework / Node + Express
Chosen
Django REST
Rationale
Auth, ORM and admin out of the box let one person move across the API and the generation work without building scaffolding first.
What it cost
Python's async story is weaker for long-running generation calls, which took extra care to keep responsive.
05

Results

Live
Shipped at rectifylearn.app
2
Content types generated — quizzes & flashcards
Solo
Backend and AI pipeline, one engineer
06

Retrospective

The document parser is what I'd rebuild first. Real lecture notes are messier than any test set, and it fails softly — you get a mediocre question, not an error — so bad output reaches students before it reaches me. I'd instrument generation quality before adding another feature.

07

Artifacts

Live
rectifylearn.app
Repository
Private — confidential
Role
Founder & Lead Engineer (backend + AI); frontend by collaborator
Next — 03
Engage Analytics