What I Built
I built BuddyLens AI, an open-source AI study companion that helps students turn their lecture notes and PDFs into something they can actually study from.
Instead of reading through a long PDF and manually creating questions or a revision schedule, a student can upload their notes and use BuddyLens AI to:
- Ask questions grounded in their notes
- Get simple explanations with relevant section citations
- Generate multiple-choice quizzes
- Create a prioritized revision plan
- Track study activity and insights
The goal was simple: make studying from existing notes more interactive and less overwhelming.
Built for a Friend š¤
I built BuddyLens AI around a real problem faced by a college friend: studying from long lecture PDFs made it difficult to quickly identify the important concepts, practice questions, and organize what to revise first.
I wanted to build something that could work directly with the notes they already had instead of requiring them to manually convert every lecture into flashcards, questions, and revision plans.
How It Works
The basic flow is:
Upload Notes ā Extract Text ā Split into Relevant Chunks ā Retrieve Relevant Sections ā Generate with Gemma ā Show the Result
When a student asks a question, BuddyLens first retrieves relevant parts of the uploaded study material. Those sections are then provided as context to the AI model.
This makes the responses grounded in the student's own material rather than relying only on general model knowledge.
The same approach is used for quiz generation and revision planning.
Technical Architecture
BuddyLens AI is a full-stack application with an open-weight AI model at its core.
Frontend
- React 19
- Vite
Backend
- FastAPI
- SQLite
- pypdf for PDF text extraction
Retrieval
- BM25 / TF-IDF based retrieval
- Note chunking and relevant-section retrieval
AI
- Gemma 3 4B
- Model:
google/gemma-3-4b-it - Served through an OpenAI-compatible hosted endpoint
Deployment
- Frontend: Render
- Backend: Render
The application also uses an AI provider abstraction so the AI layer can be changed between different serving approaches. The project includes support for local Ollama-based inference as well as a hosted model configuration.
Why Gemma and Open Innovation Matter
For this project, I wanted the AI layer to be based on an open-weight model rather than tightly coupling the application to a single proprietary model.
BuddyLens AI uses Gemma 3 4B as its AI engine.
Using an open-weight model makes the architecture more flexible. The model can be served through different infrastructure, and the application can keep the retrieval, study logic, and user experience separate from the model provider.
For a student-focused tool, this also makes experimentation easier: the same study workflow can evolve as better open models and serving options become available.
What the App Can Do
1. Grounded AI Q&A
A student can ask questions about their uploaded notes and receive an explanation based on the relevant sections.
The response can include citations back to the study material, making it easier to verify where the answer came from.
2. Active Recall Quiz
BuddyLens can generate multiple-choice questions from the uploaded notes.
The student can answer the questions directly inside Quiz Mode and use the results to identify knowledge gaps.
3. Revision Plan
Instead of simply summarizing the notes, BuddyLens can create a prioritized revision plan based on the uploaded material.
This turns a large set of notes into a smaller set of actionable study steps.
4. Study Insights
The application also provides activity and study insights so the student can see how they are using the study workspace.
Demo
Live application:
https://buddylens-ai-3.onrender.com
Backend:
https://buddylens-ai-2.onrender.com
The live application is running with:
Hosted Gemma (google/gemma-3-4b-it)
Screenshots
AI Q&A with Note Citations
Active Recall Quiz
Revision Plan
Source Code
The complete project is open source on GitHub:
https://github.com/PRAVIN-KUMAR-295/buddylens-ai
What I Learned
Building BuddyLens AI taught me that making an AI application useful is not only about connecting a model to a chat interface.
The retrieval layer, grounding, citations, UI flow, quiz experience, and revision workflow are all important parts of the product.
I also learned how much difference it makes to keep the AI provider separate from the application logic. It makes it easier to experiment with different open models and serving approaches.
AI Disclosure
I used AI coding assistance during development. I reviewed, tested, debugged, and integrated the generated code into the project, and verified the application's backend, frontend build, AI integration, and deployment.
Final Thoughts
BuddyLens AI started with a simple idea: if a student already has their notes, the AI should help them actually learn from those notes.
Instead of replacing the student's study material, BuddyLens works as a study companion around it.
The project is open source, uses Gemma at its core, and is designed so that the AI serving layer can evolve as open models and infrastructure evolve.
Thanks for checking out BuddyLens AI!





Top comments (2)
good looking a BuddyLens:Ai project
Also on Gemma 3 4B here, good to see how far that model goes for real work like quiz generation, not just chat. The notes to quiz to revision plan pipeline is a smart flow.