Inspiration

Every evening, families lose time to the same question: "What should we cook tonight?" It gets harder when one person has an allergy, someone is vegetarian, and the pantry is half empty. I wanted a voice assistant that handles this like a thoughtful family member: it knows what's in the kitchen, remembers everyone's needs, and keeps everyone safe.

What it does

Dinner Decider is a voice-first, Alexa+-style agent for family dinners. You ask "What's for dinner tonight?" and it:

  • Checks the pantry
  • Looks up each family member's tastes, diet and allergies
  • Filters out any meal that is unsafe for someone, such as a peanut allergy or a vegetarian diet
  • Ranks the safe meals by how few ingredients are missing
  • Recommends a meal in a short, spoken-style reply and says what you still need to buy
  • Adds the missing items to the grocery list when you say "yes"

The Alexa+ experience is simulated in a web page, using the browser's speech recognition for input and speech synthesis for replies.

How I built it

  • Agent: Strands Agents SDK, with the agent calling tools to reason and act instead of only chatting
  • Model: a free Groq-hosted model (openai/gpt-oss-20b) through an OpenAI-compatible API. The code can also use Amazon Bedrock through a setting, but the demo runs on Groq.
  • Tools: get_pantry, get_family_preferences, suggest_meals, add_to_grocery_list, get_grocery_list
  • Backend: Python and Flask, with the pantry, family profiles and recipes in a JSON file
  • Frontend: a single HTML page with a chat view, a microphone button, and live pantry and grocery panels
  • Safety logic: allergy and diet filtering runs in code inside the suggest_meals tool, so the model can't skip it
  • Built with AI assistance (Claude) for code generation and debugging.

Challenges I ran into

  • Safety: An LLM shouldn't be the only thing deciding what is allergy-safe, so I moved that filtering into deterministic code the agent has to call.
  • Voice-friendly replies: Long answers and markdown sound bad when read aloud, so I tuned the system prompt for short, natural, spoken-style responses.
  • Cost and access: Setting up a paid cloud account wasn't possible for me, so I switched the agent to a free OpenAI-compatible model API. I also had to find a model name my free account could use with tool calling.
  • Setup problems: Getting Python, packages and API keys working on my machine took real debugging time, so I kept the project small enough to finish in one day.
  • Simulating Alexa+: With no physical device, I built a browser-based voice interface that mimics the flow.

Accomplishments that I'm proud of

  • A complete working flow: ask, get a safe suggestion, say yes, and watch the grocery list update
  • Allergy and diet protection built into the tool logic
  • A natural voice experience in the browser with no extra hardware
  • Going from idea to working demo in a single day, as a solo builder who was new to development

What I learned

  • How to design an agent around tools with the Strands Agents SDK
  • How to connect an agent to different model providers through one interface
  • That safety-critical rules belong in code, and the model should handle conversation
  • That designing for voice is different from designing for text
  • How to debug environments, API keys and model access under time pressure

What's next for Dinner Decider

  • Real Alexa+ integration as an Agent Skill or MCP-based experience
  • Pantry tracking by scanning receipts or barcodes
  • Ordering missing items through grocery delivery services
  • Weekly meal planning, nutrition goals and leftovers tracking
  • Support for regional Indian languages and cuisines
  • Amazon Bedrock deployment for production use

Built With

Share this project:

Updates

Submission history