This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
Approach Mapper is for @harishb2006 who is learning DSA and math. He kept telling me the hard part isn't solving problems, it's the blank page: reading a problem and not knowing where to even start.
Most AI tools hand over the answer, which teaches nothing. Approach Mapper gives you the way of thinking instead. Paste a problem (or upload a photo or .txt, or paste an image from the clipboard) and you get:
- The clues hidden in the problem statement
- The pattern or method that fits (hash map, two pointers, invariants…)
- A decision-path mindmap of the approach
- Questions to ask yourself, step by step
- A 4-level hint ladder you reveal one click at a time
The answer is never the headline. It also classifies the problem by category, and it politely declines input that isn't a STEM problem.
Demo
Code
rahulrr-coder
/
approach-mapper
Paste or snap a STEM problem, get the way of thinking (pattern, clues, mindmap, hint ladder), not the answer.
Approach Mapper
You're stuck on a STEM problem and don't know where to start. Paste it (or snap a photo) and Approach Mapper gives you the way of thinking: the clues in the problem, the pattern or method that fits, a decision-path mindmap, step-by-step questions to ask yourself, and a 4-level hint ladder you reveal one click at a time. The answer is never the headline.
Built for @harishb2006 who learns DSA and math and gets stuck at the blank page.
Open source, bring your own model
The code is MIT-licensed and model-agnostic. It talks to any OpenAI-compatible chat API, so you choose where the model runs by setting three env vars (LLM_BASE_URL, LLM_API_KEY, LLM_MODEL):
- Run a model locally if your hardware allows: Ollama, LM Studio, vLLM or llama.cpp's server, with any open-weight model (use a vision-capable one if you…
How I Built It
Approach Mapper is a small FastAPI backend with a single-page frontend, about 500 lines of Python and HTML plus tests. The model client speaks only the OpenAI-compatible chat API. Three env vars (LLM_BASE_URL, LLM_API_KEY, LLM_MODEL) set the provider and model, and there is no provider-specific code.
Models and hardware. I used Gemma, an open-weight vision model, so the app can read a photo of a problem. I first ran it locally, but on my hardware each problem took 8–15 minutes, which is too slow for someone who is stuck and wants a nudge. So I moved the same model to a cloud GPU instance. That was only an env-var change, and the demo video runs on it. If your machine is strong enough, you can run it fully locally with Ollama, LM Studio, vLLM or llama.cpp, and nothing leaves your computer.
Under the hood:
- The model returns structured JSON. Pydantic validates it against a schema, with one retry if the output can't be parsed.
- Input that isn't a STEM problem is declined instead of getting a made-up answer.
- Pillow downscales uploaded images before they're sent.
- Tests run with
pytestagainst a mocked LLM, so they need no key and no model.
The whole stack is open source: FastAPI, Uvicorn, Pydantic and Pillow, plus the open-weight Gemma model.
Built with Claude Code.
Why Does Open Innovation Matter?
My friend studies in places where the internet isn't always there, and where a browser is full of distractions. Because Approach Mapper runs on an open-weight model, it can stay entirely on their own machine. It works with no internet, nothing leaves their laptop, and there are no accounts, feeds or tabs pulling their attention away. They get one thing: a way to start the STEM problem in front of them.
A closed API couldn't give them that. It needs a connection, sends every problem to a third party, and can change its pricing or models at any time. With open weights I can choose where the model runs. When local inference was too slow on my hardware (8–15 minutes per problem), I moved the same Gemma model to a cloud GPU instance by changing three env vars and no code. The demo video runs on that instance. The fully offline setup is there for anyone whose hardware can handle it, and the MIT-licensed code lets anyone fork it and use whichever model they trust.
Prize Categories
Best Use of Gemma

Top comments (0)