Search packages, repositories and app categories

GitHub repositorynikhileshmeher0204/ScanMyFood

ScanMyFood

Food Scan AI revolutionizes nutrition management with its smart features: 📸 Scan food labels or cooked dishes for instant analysis, 🤖 AI-powered insights into nutritional content, 💬 Real-time AI chat with scanned food context, 🍽️ personalized dietary advice, and 📊 Daily intake tracking to monitor nutrients and calories effortlessly

ScanMyFood project cover
Stars
40
Forks
16
Last push (UTC)
Aug 13, 2026
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

ScanMyFood Logo

ScanMyFood

AI-Powered Nutrition Intelligence — Know what you eat, instantly.

Flutter Spring Boot Google Cloud Vertex AI Firebase Auth License: MIT PRs Welcome

📖 Overview

ScanMyFood is a comprehensive nutrition analysis platform designed to empower users with deep insights into their dietary habits. By combining high-fidelity mobile experience with state-of-the-art AI, we transform complex nutritional labels and meal images into actionable health data.

Built with Flutter and Spring Boot, leveraging Google Cloud's Vertex AI (Gemini 2.0 Flash), ScanMyFood provides real-time analysis, historical tracking, and personalized recommendations.

✨ Key Features

  • 📸 Intelligent Scanning: Use your device's camera to capture product labels or entire meals.
  • 🔍 AI Analysis: Powered by Gemini 2.0 Flash for accurate nutritional extraction and food identification.
  • 📊 Personalized Dashboard: Track daily macro and micronutrient intake with beautiful visualizations.
  • 📅 Nutrition History: Maintain a comprehensive log of your consumption patterns over time.
  • 👤 Health Profiles: Tailor insights based on your specific health metrics and dietary preferences.
  • 🔐 Secure Sync: Seamless Firebase authentication and cloud-synchronized data across devices.
  • ⚡ Real-time Insights: Get instant feedback on whether a product fits your dietary goals.

📱 Screenshots

🏗️ Architecture

ScanMyFood follows a modern, decoupled architecture designed for scale and maintainability.

graph TD
    A[Flutter App] <--> B[Spring Boot API]
    A <--> C[Firebase Auth]
    B <--> D[(PostgreSQL)]
    B <--> E[Vertex AI Gemini]
    B <--> C
Project Map
├── flutter-app/       # Mobile Frontend (Flutter/Dart)
│   ├── lib/           # Core logic, ViewModels, and UI
│   └── assets/        # Branding, Icons, and Rive Animations
└── spring-backend/    # RESTful Backend (Spring Boot/Java)
    ├── src/main/java/ # Domain logic, Services, and Controllers
    └── resources/     # Configuration and Cloud Credentials

🛠️ Tech Stack

Frontend
  • Framework: Flutter (MVVM Architecture)
  • State Management: Provider
  • Visuals: Rive (Animations), fl_chart (Data Viz)
  • Authentication: Firebase Auth / Google Sign-In
Backend
  • Framework: Spring Boot 3.5.0
  • Database: PostgreSQL with Spring Data JPA & MyBatis
  • AI Engine: Google Cloud Vertex AI (Gemini 2.0 Flash)
  • Security: Firebase Admin SDK

🚀 Getting Started

Prerequisites
  • Flutter SDK: >=3.4.3
  • JDK: 17+
  • Database: PostgreSQL 14+
  • Cloud: GCP Project with Vertex AI enabled & Firebase Project
1. Backend Setup
  1. Navigate to spring-backend/.
  2. Configure application.properties with your PostgreSQL credentials.
  3. Place your Google Cloud service account key as firebase-service-account.json in src/main/resources/.
  4. Run: ./mvnw spring-boot:run
2. Frontend Setup
  1. Navigate to flutter-app/.
  2. Add your google-services.json (Android) or GoogleService-Info.plist (iOS).
  3. Install dependencies: flutter pub get
  4. Run: flutter run

🤝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.

💖 Acknowledgments

Made with ❤️ for a healthier world

Nikhilesh Meher GitHub avatar
GitHub author

Nikhilesh Meher ↗

SDE Intern @ Guardian Life | Final-year Student at VIT, Vellore

Chennai, India
LanguagesDartJavaGLSLHTMLSwiftDockerfileKotlinObjective-C

Categories

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗