I built an offline doubt-solver for Ayush, my friend who studies JEE all night
This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
My friend Ayush is in his drop year, preparing for JEE. He studies at night and sleeps through the morning. On weekends I go to his place, we cook something together, and we eat it while watching a horror movie.
What bothered me is what happens at 3 a.m. when he's stuck on a problem and there's nobody to ask. I'm fairly sure he asks an AI chatbot, but that needs internet, and his mobile data recharge doesn't always last. When the light goes, the whole thing stops anyway.
So I made Night Owl JEE Buddy. It's a small website that runs on my laptop, and Ayush opens it on his phone. It has three tabs:
- Ask: type a Physics, Chemistry or Maths doubt, or just take a photo of the problem from his book. It explains it step by step, and every answer ends with one common mistake to avoid.
- Revise: every doubt he asks gets saved. Later he can tap one and get a fresh practice problem on the same idea, then mark it "got it" when he's sorted.
- Weekend: Ayush and I lose a stupid amount of time deciding what to watch, and sometimes we never watch anything. So now there's a shuffle button that picks a dish to cook and a horror movie to watch. On Sundays it also reminds him to do one chapter first.
Demo
[https://drive.google.com/file/d/1wjWm9ZdkLj69bveEO4TuenoHFs75cDf6/view?usp=sharing]
Code
🦉 Night Owl JEE Buddy
A tiny, fully offline JEE doubt-solver I built for my friend who is in his drop year and studies all night.
- Ask a Physics / Chemistry / Maths doubt (type it or snap a photo) and get a step-by-step explanation.
- Revise: every doubt is logged on the laptop. Get fresh practice problems on your weak spots.
- Weekend: a random cook-together dish + horror movie for our Saturday nights.
Everything runs locally with open-weight models through Ollama. No API keys, no cloud, no monthly bill.
Run it
- Install Ollama, then pull the models
ollama pull qwen3:8b ollama pull qwen2.5vl:7b - Start the app (Python 3.8+, nothing to pip install):
python server.py - Open the
http://localhost:8000link it prints, or open the "phone" link on a phone connected to the same Wi-Fi.
If the phone can't connect, allow Python through the Windows firewall for private networks.
How I Built It
I ran it on my laptop with an RTX 5050 (8 GB). Everything is open-source or open-weight:
- Ollama runs the models locally.
- Qwen3 8B answers typed doubts. I turned off its "thinking" mode so answers start sooner.
- Qwen2.5-VL 7B reads photos of problems.
- The server is about 200 lines of plain Python with nothing to install. The whole page is one HTML file, and his doubts are saved in a simple JSON file.
A few small choices that mattered:
- I wrote a system prompt so every answer has the same shape: what the question is asking, the formula, the steps, the final answer, and one trap to avoid.
- I told the model to write maths in plain text instead of LaTeX, because showing LaTeX properly needs a library from the internet.
- Photos are shrunk in the browser before they're sent, so they don't take long to upload.
- The practice problems come from asking the model for a short JSON reply with a problem and an answer.
I did this in a hurry because I had an exam the next day. I used an AI coding assistant to write the code quickly, and then I tested it myself.
It's not perfect. An 8B model can get maths wrong, so I told Ayush to treat it like a smart friend and not like the answer key. If it disagrees with his book, the book wins. Also, he doesn't own a laptop, so for now it lives on mine. A cheap second-hand laptop at his place would be the next step.
Why Does Open Innovation Matter?
Every reason I picked this setup came from Ayush's situation:
- It works with no internet. Once the models are downloaded, the AI doesn't need a connection at all. My laptop has a battery, so a power cut doesn't end it either. The router goes off in a power cut, but he can just sit at the laptop.
- It costs him nothing. There's no subscription, no API key and nothing to recharge.
- His data stays with him. A list of everything a student got stuck on is personal. Here it sits in one file on one laptop.
- I can swap the model. The models are one setting. If a better one comes out, I change a single line.
A closed API would have been the opposite on every point: it needs internet, it needs a paid key, and every doubt goes to someone else's server. Those models may well be stronger at the hardest problems. But for Ayush, a tutor that's always available matters more than one that's slightly smarter.
What Ayush Said
Bhai ye toh mast hai. Raat ko 3 baje jab net nahi hota tab sach mein kaam aayega. Photo wala feature sahi laga, book se seedha photo kheench ke puch lo. Weekend wala tab funny hai, hum log pakka usi pe 20 min lagate hain. Bas ek problem hai: abhi kabhi jawab thoda lamba ho jata hai, chhota hota toh better. (Bro this is actually cool. At 3 a.m. when there's no internet, it'll really help. The photo feature is good, I just click the book and ask. The weekend tab is funny, we always waste 20 minutes on that. One problem though: sometimes the answer is a bit long, shorter would be better.)
Top comments (0)