LazyLecture 🦥: Your Notes. Your Time. Your Study Pack.
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
Sometimes, the tiring part of studying begins before the studying itself.
You open your lecture notes, scroll through the pages, and start figuring out what to summarise, which definitions matter, and how to test yourself. By the time your revision material is ready, you have already spent energy preparing it.
We built LazyLecture to make that first step easier.
LazyLecture is a local AI study assistant that turns text-based PDFs or TXT notes into manageable revision material. Upload your notes, choose a study format, and let it prepare your starting point.
A little revision or a longer session
Quick Study generates a concise summary and exactly five key concepts. It is the default option for when you want a lighter first pass through your notes.
Full study packs offer 5-, 15-, and 30-minute revision formats:
- 5 minutes: a short summary and key concepts.
- 15 minutes: more material, plus flashcards and a practice quiz.
- 30 minutes: a larger pack with additional flashcards and questions.
These durations guide the amount of study material requested; they are not generation-time estimates.
You can reveal flashcard answers, navigate between cards, answer quizzes, check scores and explanations, copy summaries and concepts, and download your study pack as Markdown.
Our interpretation of “Slow and Steady” was simple: let the tool handle the preparation so you can begin with a manageable study session.
The lavender interface and sleepy sloth bring that calmer pace into the workspace, too. 🦥
Demo
LazyLecture runs locally, with Ollama providing AI inference. Here is the workflow through screenshots.
1. Upload your lecture notes
Start with a text-based PDF or UTF-8 TXT file, then choose Quick Study or a full study pack.
2. Get a quick starting point
Quick Study returns a short summary and five key concepts for a focused first review.
3. Practise with flashcards
Choose a 15- or 30-minute full pack to review questions, reveal answers, and move through the flashcards at your own pace.
4. Check your understanding
Answer the practice quiz, view your score, and read the explanations. You can also download the pack to revisit later.

Generated content should be checked against the original notes. LazyLecture prepares revision aids; it does not predict exam questions.
Code
The application source is available on GitHub under the MIT License.
Pranitha06sri
/
LazyLecture
An AI-powered study assistant that transforms your notes into summaries, key concepts, flashcards, and quizzes using open-weight AI models.
LazyLecture
Your Notes. Your Time. Your Study Pack. A local study assistant built for the Hacktoberfest Open-Source AI Challenge Week 3, “Slow and Steady.”
What it does
Upload a text-based PDF or UTF-8 TXT file. Quick Study is the frontend default: a concise summary and exactly five key concepts, without cards or quizzes. Choose Full study pack for the existing 5, 15, or 30 minute sessions. LazyLecture extracts your notes, asks the local open-weight qwen2.5:1.5b model for a validated study pack, and offers summary/concept copying, interactive flashcards, scored quizzes with explanations, and Markdown download. The 5-minute mode targets up to 3 summary points and 4 concepts; 15 minutes targets up to 5 summary points, 6 concepts, 5 cards and 3 questions; 30 minutes targets up to 8 summary points, 10 concepts, 8 cards and 6 questions. These are revision aids, not predictions of exam questions.
React + Vite + TypeScript…
🔗 Repository: Pranitha06sri/LazyLecture
The repository includes setup instructions, backend and frontend code, tests, and verification notes.
How I Built It
We built LazyLecture around Qwen2.5 1.5B, an open-weight language model running locally through Ollama.
The stack
| Component | Technology |
|---|---|
| Interface | React, TypeScript, Vite, and CSS |
| Backend | FastAPI |
| PDF text extraction | PyMuPDF |
| Local model runtime | Ollama |
| Language model | qwen2.5:1.5b |
| Backend HTTP communication | HTTPX |
| Request and output validation | Pydantic |
| Testing | pytest and Vitest |
From notes to study pack
The backend extracts text from the uploaded document and validates the input. It then prepares a prompt for the selected study format and sends it to the local Ollama service.
The model returns structured JSON containing the study material. Before the interface displays it, the backend validates the response structure and field limits.
Validation helps catch malformed responses, but it does not guarantee that every generated statement is factually correct.
Keeping the workload manageable
One challenge was balancing useful output with the time a small local model needs to generate it.
We made Quick Study the default because a student does not always need a complete set of flashcards and questions. Sometimes, a summary and five concepts are enough to get started.
Quick Study uses a smaller output budget and makes one inference request without automatic retries. Full packs remain available when more practice is useful.
For long documents, the backend selects excerpts locally before inference. This bounds the input size, but it also leaves out some content. The app displays a warning so users know the generated pack does not cover every part of the document.
Showing honest progress
While generation runs, the interface displays the selected format, elapsed time, and a waiting indicator.
We avoided displaying completion percentages because the app cannot know exactly how far the model has progressed. Controls are also disabled during a request to prevent accidental duplicate submissions.
What we verified
The repository’s latest verification notes record:
- 35 passing backend tests.
- Seven passing frontend tests.
- A successful TypeScript check and Vite production build.
- Real local inference using
qwen2.5:1.5b.
In one documented sequence using a short synthetic photosynthesis source, Quick Study completed in approximately 19.57 seconds and 15.56 seconds, while a full 15-minute pack took 54.91 seconds.
These are individual runs, not averaged benchmarks. Quick Study also produces less material, so the results should be read with that difference in mind.
Why Does Open Innovation Matter?
Open-weight inference is part of LazyLecture’s core workflow. If the local model is unavailable, the app reports a setup error rather than displaying a fabricated study pack.
With the default configuration, notes are processed by the local FastAPI backend and local Ollama service. Generating study material does not require an account or a paid cloud AI API.
For a tool that works with lecture notes, that local setup gives users more control over where their material is processed.
The open approach also makes the project adaptable. Developers can inspect the prompts, change the output budgets, adjust validation, or evaluate another compatible model without rebuilding the interface.
A closed API could generate similar summaries and questions. What the local open-weight approach gives us is control over the inference setup, access to the model weights under their upstream terms, and freedom from a required hosted AI service.
The application is designed to operate without an external AI service after setup, although fully disconnected operation has not yet been verified.
What we would improve next
The current version has some clear limits. Scanned PDFs need OCR elsewhere, long-document excerpt selection can omit useful material, and small models can hallucinate or fail output validation.
Our next improvements would focus on source citations, stronger grounding checks, and cancellable generation. Those would make it easier to verify an answer and manage longer sessions.
🤝 Team Credits
LazyLecture is a collaborative project built with my friend @abirami_prabhakar.
Together, we built a local AI study assistant that turns lecture notes into summaries, key concepts, flashcards, and practice quizzes using an open-weight model.
🔗 Project Repository: LazyLecture



Top comments (0)