This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
#devchallenge #hf26challenge #opensource #ai
What We Built
We've all had that moment when we sit down to study, open a huge PDF, and somehow spend the next 30 minutes deciding what to study instead of actually studying.
Summarising chapters, picking out important concepts, making flashcards, creating practice questions... the preparation itself becomes another task on the to-do list.
So we built LazyLecture 🦥, a local AI study assistant that turns lecture notes into a ready-to-use revision pack.
The idea was pretty simple: spend less time preparing to study and more time actually studying.
Drop in a text-based PDF or TXT file, choose how much revision you're aiming for, and LazyLecture generates study material based on your notes.
One tool, different study moods
Not every study session needs to become a full academic comeback.
- Quick Study: A concise summary and exactly five key concepts. No flashcards, no quizzes, just a starting point.
- 5-minute pack: A short summary and a small set of concepts for a quick review.
- 15-minute pack: More detailed revision material, with flashcards and a practice quiz.
- 30-minute pack: A larger pack with additional concepts, flashcards, and practice questions.
You can flip through flashcards, reveal answers, take quizzes, check your score and explanations, copy your revision notes, and download the entire pack as Markdown.
The session lengths control how much material gets generated. They aren't promises that the AI will finish generating everything in five minutes. Even artificial intelligence hasn't negotiated that kind of contract with time yet.
And yes, there's a sleepy sloth and a lavender-themed interface. If the whole point is to make studying feel a little less overwhelming, the interface shouldn't feel like another assignment.
How It Works
LazyLecture runs on Qwen2.5 1.5B through Ollama, so the AI inference happens locally instead of relying on a hosted AI API.
Here's the flow:
- Upload a text-based PDF or TXT file.
- The FastAPI backend extracts and prepares the text.
- The selected study format determines the prompt and output limits.
- The local model generates structured study material.
- Pydantic validates the response before the frontend displays it.
The frontend is built with React, TypeScript, Vite, and CSS. PyMuPDF handles PDF text extraction, while HTTPX connects the backend to Ollama.
We also added tests for the backend and frontend, because an AI-generated study pack is considerably less useful if the application falls apart while trying to display it.
Why Quick Study is the default
One thing we paid attention to was keeping the workload manageable.
A small local model doesn't need to generate an entire textbook's worth of content every time someone wants to revise a single topic. Quick Study uses a smaller output budget and makes one inference request without automatic retries.
For longer documents, the backend selects excerpts before sending text to the model. This helps keep the input manageable, but it can leave out important information. The application warns users when this happens.
We also avoided fake progress percentages. The interface shows elapsed time and a waiting indicator instead of pretending we know exactly how much work the model has completed.
Small decisions, but they make the experience more honest.
Demo
Here's a look at LazyLecture in action.
1. Start with your notes
Upload a text-based PDF or TXT file and choose your study format.
2. Get a quick revision summary
Start with a concise summary and five key concepts instead of trying to digest everything at once.
3. Revise with flashcards
Full study packs include interactive cards that let you reveal answers and work through the material at your own pace.
4. Test yourself
Take a practice quiz, check your score, review the explanations, and save your study pack for later.
Generated content should always be checked against the original notes. LazyLecture helps with revision; it doesn't guarantee factual accuracy or predict exam questions.
The Open-Source AI Part
We wanted the model to be part of the actual product, not just an API call hidden behind a nice interface.
Using an open-weight model with Ollama means users can generate their study material locally after setup, without needing a paid cloud AI API or an account with an external AI provider.
That also means lecture notes can stay on the user's machine during the normal local workflow, rather than being sent to a hosted AI service for inference.
There's something useful about being able to inspect the prompts, change the model, experiment with output limits, and modify the validation logic yourself. The AI isn't an untouchable black box that the application depends on someone else to operate.
We haven't verified fully disconnected operation yet, so that's still something we'd like to test properly.
Things We Learned Along the Way
Building this wasn't just about getting a model to return a summary.
We had to think about how much text to send to a small model, how to handle malformed JSON, how to make different study formats genuinely useful, and how to communicate waiting time without inventing progress.
We also learned that valid output isn't necessarily correct output. Pydantic can validate the structure of a response, but it can't guarantee that every explanation or flashcard accurately reflects the source material.
There are still things we'd like to improve:
- Better source citations so users can trace generated content back to their notes.
- Stronger grounding checks to reduce hallucinations.
- OCR support for scanned PDFs.
- Better handling of long documents without missing useful content.
- Cancellable generation for longer requests.
There's plenty left to explore, which is kind of the fun part of building with open-source AI.
Built for Slow and Steady
For us, Slow and Steady meant making the first step of studying easier, not trying to automate the entire learning process.
LazyLecture doesn't replace understanding a topic or putting in the work. It just removes some of the repetitive preparation that can make getting started harder than it needs to be.
Sometimes, a manageable five-minute revision session is better than another perfectly organised study plan that never gets used.
And sometimes, the sloth has a point.
Team Credits
LazyLecture is a collaborative project built with my friend @pranitha_prakash_6c8f7ad7.
We worked on bringing together local AI inference, structured study-pack generation, and an interface that makes revision feel a little less intimidating.
Project repository: LazyLecture on GitHub
The project is open source under the MIT License. Contributions, feedback, and ideas for improving the study experience are welcome.
Built with React, FastAPI, Ollama, and a small model doing its best to help us survive our notes.
🦥




Top comments (0)