← All workLLM workflow · Document generation · SaaS
Classroom-ready lesson decks, in the school's own template
EdTech SaaS · paying teachers · 2025 · Sole developer — frontend, backend, agents
Not a slide picture. A real deck a teacher can open and change.
Teachers describe a lesson; the system returns an editable PowerPoint in their template, plus worksheets and quizzes drawn from a 120GB+ curriculum corpus.
Corpus
120GB+ curriculum, retrieval-augmented
Outputs
PPTX · DOCX · XLSX · quizzes
Verified deck
59 slides, 11 layouts, fully editable
Team
One person, ~230 commits
What they needed
Korean elementary teachers spend their evenings making lesson decks, worksheets and quizzes. The client wanted a product that produces those files — in the school’s own design, editable, aligned to the curriculum — from a short description of the lesson.
What I built
The whole product: the teacher-facing app, the admin console, the backend, and the generation agents. The core is a template engine that fills the client’s own PowerPoint in place, so the branding is the template itself and every text box stays editable. A retrieval layer over a 120GB+ corpus grounds the content; images are chosen by meaning, not keyword.
What changed
Teachers pay for it and use the output in class. The deck length follows the lesson duration; the template survives untouched.
Under the hood
- In-place PPTX filling with python-pptx: rewrites existing text frames, runs and table cells, then copies run/paragraph/frame styles forward. Slide masters, layouts and theme are inherited from the source deck.
- Layout fidelity: stable shape addressing across grouped shapes and tables, geometry save/restore, and binary-search font autofit with word-wrap simulation so text fits the original box.
- Constrained generation: LLM output is bound to a Pydantic schema (
slide, shape, content) with a deterministic fallback mapping.
- Deck pipeline in LangGraph: computes target length from lesson duration, selects and reorders which template slides survive, swaps images by semantic vector search (Pinecone + embeddings) at the original placeholder geometry.
- Ingestion: OCR and image auto-tagging; adjacent DOCX/XLSX/CSV/PDF generators in the same codebase.
- Stack: Lovable/React apps, Supabase + FastAPI backend, S3, Redis, EC2/Vercel.