Inspiration We were inspired by the daily struggle of two groups: Busy Office Professionals facing decision fatigue about what to eat, and Fitness Enthusiasts (like me, a gym freak) struggling with accurate nutrition tracking and preparing goal-oriented meals within a time crunch. The core problem is the disconnect between what you have (ingredients in the fridge) and what you should eat (based on health goals). We set out to solve this daily chaos.
What it does NutriCare is an AI-powered, multimodal meal planner that serves as a Personalized Digital Dietician. It solves the 'what to eat' dilemma instantly through four core functions:
Vision-to-Meal Engine (WOW Factor): The user uploads a photo of their fridge/pantry, and NutriCare identifies the ingredients and instantly suggests meal ideas based only on those available items.
Smart Weekly Planning: Generates complex, 7-day, non-repeating meal plans based on detailed dietary constraints (e.g., "Low Calorie, High Protein, Indian Food").
Recipe Converter: Instantly converts any recipe (e.g., Butter Chicken) into a Vegetarian or Vegan alternative.
Multilingual Support: All outputs (recipes, plans, and instructions) are delivered in either English or Hindi, catering to a wider user base.
How I built it The entire application is built using a modern, efficient tech stack:
Core AI Engine: Google Gemini API (gemini-2.5-flash). We leveraged its powerful multimodal capabilities for image analysis and complex reasoning for structured meal planning.
Backend: Python Flask for creating lightweight and scalable API endpoints (/api/vision_recipe, /api/get_plan). Flask was chosen for its minimalism, which avoids the overhead of a full framework like Django, making the API response extremely fast.
Frontend: Simple HTML, CSS, and JavaScript to handle user inputs, file uploads (FormData), and displaying the rich text output from the Gemini API.
Challenges I ran into The main challenges were centered around making the multimodal experience smooth and reliable:
Image Handling Pipeline: Setting up the Flask route to correctly receive the image file (request.files), convert it into a format usable by the Gemini SDK (PIL and io.BytesIO), and then managing the latency associated with the Vision API call.
Prompt Consistency and Structure: Ensuring that the AI consistently returns structured data (tables for meal plans) and adheres strictly to multiple complex constraints simultaneously (e.g., Low Calorie AND High Protein AND Indian).
Multilingual Request Management: Efficiently integrating the user's selected language into every single API call and ensuring the prompt correctly instructs Gemini to localize the output (e.g., translating cooking steps accurately).
Accomplishments that I'm proud of Successful Multimodal Integration: Successfully building and deploying the Image Analysis feature is the biggest win, as it demonstrates a breakthrough interaction model that replaces tedious text input.
High Utility MVP: Delivering four distinct and highly valuable features that address different aspects of the meal preparation problem, all within the hackathon timeframe.
Clean Separation of Concerns: Implementing a clean architecture where Flask manages the routing and Gemini handles all the complex logic, making the system robust and easy to debug.
What I learned This project was a deep dive into the practical application of AI in everyday life. I learned:
The power of Multimodal AI and how the Gemini API simplifies complex vision tasks.
Advanced techniques for managing file uploads and streaming binary data efficiently within a Flask environment.
How to engineer complex, constraint-based prompts to ensure highly structured and tailored outputs from generative models.
What's next for NutriCare NutriCare has huge potential beyond this MVP:
Smart Shopping List & Budgeting: Automatically generate a consolidated grocery list from a weekly plan, integrating with a public API to provide estimated cost and nutritional breakdown for each recipe.
Historical Tracking: Implement local storage or a lightweight database (e.g., SQLite) to save users' favorite recipes and recently generated plans, offering personalized suggestions over time.
Advanced Constraints: Adding filtering based on cooking equipment (e.g., "only air fryer recipes") and preparation time (e.g., "ready in under 20 minutes").
Log in or sign up for Devpost to join the conversation.