This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
I built Meal Planner for a Friend, a small allergy-aware meal planner for my friend Shrey.
You enter a name, allergies, dislikes, diet type and budget. The app gives you:
- 7 day plan: breakfast, lunch and dinner for the week, plus a short grocery list.
- Suggestions: when Shrey tried it, he said we can add a suggestion box too. So there is a second tab. He types what he needs right now (for example "quick dinner under 20 minutes") and gets 3 simple options that follow his allergies and dislikes.
Everything runs on my laptop. No cloud, no API key, no cost.
Demo
I did not deploy it, because the point is that it runs locally. You can run it in a few minutes:
ollama pull gemma3:1b
git clone https://github.com/shubsolos19/friend-meal-planner.git
cd friend-meal-planner
pip install -r requirements.txt
streamlit run app.py
Sample input: name Shrey, allergies peanuts and milk, dislikes karela, diet Vegetarian, budget Low. Click Make 7 day plan for the full week, or open the Suggestions tab for quick ideas.
What Shrey said
"we can add a suggestion box too bro."
That one line turned into the Suggestions tab.
Code
shubsolos19
/
friend-meal-planner
Allergy-aware 7 day meal planner, local Gemma via Ollama
π Safe food for someone you care about. Zero cloud. Zero cost.
β¨ Overview Β· π Why Open Source AI Β· π Quick Start Β· π Troubleshooting
β¨ Overview
Planning weekly meals is hard when someone has food allergies, a tight budget, and foods they simply dislike.
This app takes those inputs and returns a full 7 day Indian meal plan with a grocery list, in seconds, running entirely on your own laptop.
π Built for Shrey for the Hacktoberfest 2026 Weekend Challenge: Build for a Friend on DEV.
| π§Ύ You enter | π€ Gemma thinks | π½ You get |
|---|---|---|
| Name, allergies, dislikes, diet, budget | Local model, no internet needed | Breakfast, lunch, dinner for 7 days + grocery list |
π Why Open Source AI
Allergy and health info never leaves the laptop. No server. No logs. No third party. No API key, no subscriptionβ¦
π Private
πΈ Free
How I Built It
- Gemma 3 (1B): open-weight model from Google
- Ollama: runs the model locally and exposes a simple API on localhost
- Streamlit: clean web form and tabs in a few lines of Python
- Python and requests: glue code
The whole app is one file. The form inputs go into a prompt that tells Gemma to never use the listed allergens or anything made from them, to skip dislikes, and to keep dishes simple and cheap. Ollama runs the model on my machine and Streamlit shows the result.
The core of the plan prompt:
prompt = f"""Make a 7 day Indian meal plan (breakfast, lunch, dinner) for {name}.
Diet: {diet}. Budget: {budget}.
NEVER use these allergens or anything made from them: {allergies}.
Do not include: {dislikes}.
Keep dishes simple and cheap. Then give a short grocery list."""
A prompt alone is not a safety net, so I added a second layer. After the model answers, the app scans the text for the listed allergens and related foods. For example, a milk allergy also flags paneer, curd, ghee, butter and cheese. If anything shows up, the app shows a red warning and asks you to generate again. The app also reminds you to check ingredient labels, because AI can make mistakes.
Why Does Open Innovation Matter?
Allergies are personal health information, so where the data goes matters.
- Private: with a local open model, allergy details never leave the laptop. A hosted API would send them to a server I do not control.
- Free: no API key, no per-token bill, so a plan costs nothing to generate.
- Offline: after the one-time model download, it works with no internet.
-
Swappable: I used the small 1B model so it runs on an ordinary laptop. Changing one line in
app.pyswitches to a bigger Gemma, and I am not tied to one provider.
I did not benchmark this against a closed model, so I cannot claim it writes better plans. What I can say is that for a small personal tool that handles health details, running open and local fit the job.
What I Learned
Building for one real person kept the scope small. Shrey's one line of feedback became a feature, and the allergen scan came from asking what happens if the small model slips. Next I want to add a download button for the plan and a cuisine option, since the prompt is currently Indian only.
Prize Categories
- Best Use of Gemma: the whole project runs on Gemma 3, served locally through Ollama.
Top comments (0)