Inspiration

Being an international student, it is not easy to eat healthy. Multiple research papers, ranging from 2009 to 2022, clearly investigate the nutritional issues faced by students studying abroad. Beyond lack of time and academic stress, limited nutritional awareness is often a silent key contributor. It's easy to cook convenience food on a regular basis, leading to a downward spiral of malnutrition or overnutrition and increasing risks of preventable diseases such as diabetes and obesity. So, we decided to fix that.

What it does

Healthify aims to make healthy cooking simple, and accessible during busy student life. We are automating the entire decision process from your grocery bill to your plate. Each time a user buys groceries, he just needs to scan his receipt using our app and instantly, all the food items he purchased will be extracted from the receipt and added to his pantry - it's as easy as that. Hence, the user has a real-time monitoring of his pantry at all times. Wherever he is and whenever he wants to, he can just select a list of ingredients from the pantry and our AI will generate healthy, diabetic-friendly recipes for the user to cook at any time. The recipes generated also include the nutritional value of the dish (the amount of proteins, carbs, etc..) as well as a natural language explanation of WHY this dish actually is healthy for you! Best, if he likes the recipe, he can save it for future refernce.

How we built it

We built this project using range of libraries, frameworks and technologies.

Our project consists of three parts: frontend, backend, and recipe-ai:

Frontend: React web app, tailored for mobile usage. Backend: Python FastAPI, integrated with PostgreSQL, Gemini API, Nutrition API, and our recipe-ai. Recipe-ai: A FastAPI microservice which runs a local LLM model fine-tuned to generate healthy recipe based on the ingredients provided.

The Operation Flow

When user uploads a receipt, frontend take a photo and send it to backend, and then backend uses Gemini API to recognise and normalise the text on the receipt, and returns the parsed data back to frontend. User can confirm the data, set expiry dates (optional) and then add the items to the pantry.

When user wants to generate a recipe, they select the ingredient they want to include, and then the backend will call the recipe-ai to generate a recipe, then call the external USDA nutrition API to fetch the nutrition data of each ingredient, finally call Gemini to explain in natural language why the recipe is good for health.

Tech Stack

  • Frontend
    • TypeScript
    • React
    • TailwindCSS
    • Axios
  • Backend
    • Python
    • FastAPI
    • SQLAlchemy
    • Pydantic
    • Pillow
    • Gemini API
    • USDA API
  • Recipe-AI
  • AI Coding Tool
    • Claude Code
    • Antigravity
  • Design Tool: Figma

Challenges we ran into

  • Cleaning a custom dataset to get more healthy recipes based on their calculated nutritional value.
  • How to minimize the latency of the app even better.
  • How to make AI output more consistent and not give out giberrish.
  • We could not complete the implementation of ingredient and nutrition caching to improve performance, due to time constraint.

Accomplishments that we're proud of

  • The end-to-end user experience
  • The creativity of the AI in developing healthy, diabetic-friendly recipes.
  • The UI of the app
  • Successfully implemented a system integrating multiple AI models with reliable outputs ## What we learned
  • How to build a fully-funtional AI system in a team.
  • How to prioritize tasks and build an MVP, given time constrainsts.
  • How to build applications that are user-focused.
  • Teamwork and patience when things do not go according to plan.

What's next for Healthify

  • Fine-tune the AI to produce recipes based on user's cuisines type. For example, the user should be able to filter if he wants healthy Indian or Mexican cuisine.
  • Integrate existing recipe datasets to provide wider choices with higher reliability and speed
  • Implement ingredient nutritional value caching to reduce waiting time.

Built With

+ 5 more
Share this project:

Updates

Submission history