NutriChoice

Overview

Many people struggle to understand what they are eating — especially when dining out.
Nutritional information is often missing, confusing, or inconvenient to check manually.
This can lead to overeating, unbalanced diets, or missed health goals.

NutriChoice is a mobile app built with React Native (Expo) that helps users make healthier food choices.
Simply point your camera at a dish, and the app uses an AI model to recognize the food and instantly display its nutritional values — including calories, proteins, fats, and carbohydrates — powered by a custom dataset.

Motivation

The idea came from a common problem: not knowing what exactly we eat, especially at restaurants or cafeterias.
I wanted to create something simple yet impactful — where AI bridges the gap between food recognition and informed dietary decisions.

How It Works

  • Frontend: Built with React Native (Expo) for a seamless cross-platform experience.
  • AI Model: A TensorFlow/Keras model (converted to TensorFlow.js) classifies food images into categories.
  • Dataset: Combined public food datasets with a custom dish.json mapping that links dishes to nutritional information.
  • Integration: Captured images from the camera/gallery are converted into tensors, processed by the model, and the top prediction is mapped to its nutrition profile.

Model Performance & Limitations

This is an early version of the model, trained on fewer than 400 images.
Current validation accuracy is around 64%, so misclassifications can occur.
Future updates will focus on:

  • Expanding the dataset for better generalization.
  • Improving accuracy through more training epochs and model tuning.
  • Optimizing performance for real-time mobile inference.

Key Learnings

  • Integrated a machine learning model into a mobile app using Expo + TensorFlow.js.
  • Understood the importance of curating clean, balanced datasets for classification tasks.
  • Designed a smooth user flow that translates AI predictions into actionable insights.

Challenges

  • Model Size & Performance: Mobile devices have limited resources, so optimizing the TensorFlow.js model was challenging.
  • Dataset Curation: Many public datasets lacked consistent nutrition info, so I manually created a mapping.
  • Testing & Compatibility: Ensuring consistent performance across Android devices with Expo.

Future Improvements

  • Expand food recognition to include more dishes and regional cuisines.
  • Add AI-based portion size estimation.
  • Personalize recommendations based on user diet goals and history.
  • Integrate with wearables/fitness apps for a complete health ecosystem.
  • Add data visualization for nutrition trends and multi-language support.
  • Improve UI/UX with smooth animations and transitions.

License

This project is licensed under the MIT License.

Built With

Share this project:

Updates