cd /news/ai-tools/studylens-for-my-tensed-sister-juggl… Β· home β€Ί topics β€Ί ai-tools β€Ί article
[ARTICLE Β· art-144719] src=dev.to β†— pub= topic=ai-tools verified=true sentiment=↑ positive

StudyLens for my tensed sister juggling with her academics

A developer built StudyLens, a privacy-first study tool that turns lecture PDFs and text files into active-learning material entirely on the user's machine using Ollama and Google's Gemma 3 1B model. The Streamlit app avoids cloud APIs, accounts and telemetry, relying on a lightweight keyword-overlap retrieval scheme that sends roughly 30% of a document to the LLM and a multi-strategy JSON parser to handle the small model's unreliable output. It was built over six sprints in three days for the developer's sister, who reported after midterms prep, "Wait, it's actually free? And my PDFs don't get uploaded anywhere?

by read2 min views1 publishedOct 4, 2026

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

Built for: My younger sister, who's drowning in lecture PDFs and needs a study tool that works offline, respects her privacy, and doesn't require a $20/month subscription.

StudyLens turns passive reading into active learning β€” completely on your machine. No API keys, no cloud, no accounts, no telemetry.

Upload a PDF/TXT β†’ Get:

ollama pull gemma3:1b
ollama serve
pip install -r requirements.txt
streamlit run app.py

Opens at http://localhost:8501 β€” works on any machine that runs Python + Ollama (tested on macOS, Linux, Windows).

github.com/ShashwatSinha03/HF_BuildForAFriend

study-lens/
β”œβ”€β”€ app.py          # Streamlit UI + orchestration
β”œβ”€β”€ llm.py          # Ollama client + prompts + robust JSON parsing
β”œβ”€β”€ document.py     # PDF/TXT extraction + keyword retrieval
β”œβ”€β”€ requirements.txt
└── README.md

Stack: Python β€’ Streamlit β€’ Ollama β€’ Gemma 3 1B β€’ PyPDF β€’ Requests

Architecture decisions that matter:

Constraint Solution
No cloud/API keys Local Ollama + Gemma 3 1B (815MB)
Small model, unreliable JSON Multi-strategy parser (standard β†’ trailing-comma fix β†’ duplicate-key removal β†’ regex fallback)
No embeddings/vector DB Lightweight keyword-overlap retrieval (TF-IDF-inspired, ~30% of doc sent to LLM)
Limited compute Single LLM call per action; batch short-answer eval; conservative token limits
Privacy-first Zero network calls except localhost:11434; session-only state

Sprint-based development (6 sprints over 3 days):

This project exists because of open weights and local inference.

If I'd used a closed API:

With Gemma 3 1B + Ollama:

The "small model" constraints forced better engineering: lightweight retrieval, strict prompting, defensive parsing, batch evaluation. Those are better patterns that scale up β€” not compromises.

"Wait, it's actually free? And my PDFs don't get uploaded anywhere? Damn, broski"

Yep, that's my sister, after using it for her midterms prep

That's the whole point. Open innovation doesn't just lower barriers β€” it changes what's possible to build for the people you care about.

── more in #ai-tools 4 stories Β· sorted by recency
── more on @studylens 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/studylens-for-my-ten…] indexed:0 read:2min 2026-10-04 Β· β€”