Inspiration
Every student knows the panic of making a cheatsheet the night before an exam — hours spent manually copying formulas, guessing what topics matter, and running out of space. We wanted to eliminate that entirely. QuickSheet.AI was born from the frustration of staring at 400 pages of notes at midnight wondering what to prioritize.
What it does
QuickSheet.AI takes your course materials: past exams, lecture notes, slides, assignments, and syllabi, and automatically generates a dense, exam-ready cheatsheet in LaTeX PDF format. It uses AI to extract key content, rank topics by how frequently they appear on past exams, and lay everything out within your page limit. The result is a formatted, prioritized cheatsheet where the most testable content always appears first.
How we built it
The backend is a multi-stage Python pipeline. PDFs are extracted using PyMuPDF with an OCR fallback via Tesseract for scanned documents. Each file type runs through its own LLM prompt pipeline, exams extract question frequency, notes extract formulas and definitions, syllabi extract topic weights. A scoring system combines all sources to rank topics, then a second LLM pass converts the prioritized content blocks into LaTeX. The frontend is built with Streamlit, and the full pipeline is orchestrated through a clean Python API that the UI calls on button press.
Challenges we ran into
Getting LaTeX output from an LLM to actually compile without errors was the hardest part. We built an extensive post-processing layer to fix common failure modes: unclosed \textbf{} spanning paragraph breaks, math/text boundary errors where $formula$Word breaks pdflatex, double-escaped backslashes inside math mode, and Unicode characters that pdflatex can't handle. OCR on handwritten notes added another layer of complexity; the text is noisy enough that the LLM needs careful prompting to extract structured content reliably.
Accomplishments that we're proud of
A working end-to-end pipeline that takes raw PDFs and produces a compilable, structured LaTeX cheatsheet with color-coded content type tags (formulas in blue, definitions in orange, concepts in green). The topic priority ordering where exam frequency drives what appears first works remarkably well in practice.
What we learned
Prompting for structured JSON output and prompting for LaTeX generation require completely different strategies. JSON needs strict schema enforcement; LaTeX needs strict formatting rules at the character level. We also learned that page budget estimation is genuinely hard. Fitting content into N pages requires both pre-truncation and LLM-aware formatting.
What's next for QuickSheet
Diagram extraction and embedding from lecture slides, a collaborative mode where multiple students can pool their materials, and an adaptive feedback loop where your previous exam scores influence what gets prioritized next time.
Built With
- openai-api
- pdflatex
- pillow
- pymupdf
- python
- streamlit
- tesseract-ocr
- tex-live
Log in or sign up for Devpost to join the conversation.