This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
I built FriendStudy, a private AI study companion for a friend who was struggling to understand concepts from their college study material.
Instead of giving them a generic chatbot, I wanted to build something around the material they were actually studying.
They can upload their PDF notes and ask questions such as:
"Explain DBSCAN in simple terms."
FriendStudy finds the most relevant sections from their notes and uses a local AI model to generate an explanation.
It also has three simple study modes:
- 📖 Explain — explain a concept in simple language
- 📝 Summarize — create a concise revision summary
- 🧠 Quiz Me — generate questions from the uploaded notes
The goal was simple: give my friend a study companion that understands their notes without requiring their study material to be uploaded to a third-party AI service.
Demo
The demo shows:
- Uploading a PDF
- Processing the study material
- Asking a question
- Retrieving relevant sections from the notes
- Generating an answer using the local AI model
- Using the summarization and quiz features
Code
💻 GitHub: https://github.com/smitbhosale/notesApp-DEV-.git
The project is built with Python and is designed to run locally.
How I Built It
The entire AI pipeline runs locally using open-source/open-weight components.
Tech Stack
- Python — application logic
- Streamlit — user interface
- PyPDF — PDF text extraction
- ChromaDB — local vector database
- Ollama — local model inference
- Qwen3 4B — open-weight language model
- nomic-embed-text — local embedding model
The pipeline looks like this:
PDF Notes
↓
Text Extraction
↓
Text Chunking
↓
Local Embeddings
↓
ChromaDB
↓
Question
↓
Relevant Note Retrieval
↓
Qwen3 4B
↓
Answer
When my friend asks a question, FriendStudy doesn't need to send the entire document to a cloud API.
It retrieves the most relevant sections of the uploaded notes and gives those sections to the local language model as context.
This gives the project a simple local RAG architecture.
Why Does Open Innovation Matter?
This is the part of the project that mattered most to me.
Study notes can contain personal information, college information, assignments, and other material that someone may not want to upload to an external AI service.
With FriendStudy, the AI model runs locally through Ollama.
Once the models are downloaded, the application can run without an internet connection.
That means:
- My friend's notes can stay on their computer.
- There is no per-request API bill.
- The application doesn't depend on a closed AI provider.
- I can replace Qwen with another compatible open-weight model.
- I can change the prompts and retrieval system myself.
- The vector database also stays local.
A closed API could have made the first prototype faster, but the local approach gave me something more important for this particular project: control and privacy.
The fact that I can see and modify the entire pipeline — from document processing and retrieval to the model generating the final answer — is exactly why open innovation made sense for FriendStudy.
What I Learned
The most interesting part wasn't simply connecting an LLM to a chatbot.
I learned how the pieces of a local AI application fit together:
documents → embeddings → vector search → retrieved context → local LLM
I also learned that building something useful for one person is very different from building a generic AI demo.
Instead of asking:
"What cool AI application can I build?"
I started with:
"What does my friend actually struggle with?"
That changed the project significantly.
My Agent Session
Optional — I used AI-assisted development while building the project.
[Add your DevRelay agent session here if you have one.]
Prize Categories
I'm not entering a partner category because the current version does not use any of the listed partner technologies.
Final Thoughts
FriendStudy started as a small idea: help one friend study.
It ended up becoming a small experiment in what a useful AI application can look like when the AI is local, private, customizable, and open.
It's not meant to replace a teacher.
It's meant to be the study buddy that's available whenever my friend needs one.>
Top comments (0)