Skip to content

Latest commit

 

History

History
266 lines (201 loc) · 6.88 KB

File metadata and controls

266 lines (201 loc) · 6.88 KB

NutriGuid - Your Personal Wellness Guide

A comprehensive Flutter-based mobile application that helps users gain, lose, or maintain body weight based on their BMI value, using offline-first, rule-based nutrition and exercise guidance.

✨ Features

🎯 Core Functionality

  • BMI Calculator: Automatic BMI calculation and categorization
  • Calorie Engine: Personalized daily calorie targets using Mifflin-St Jeor equation
  • Nutrition Guidance: 30+ food items with filtering by goal and dietary preference
  • Exercise Library: 20+ exercises with BMI-based recommendations
  • Habit Tracking: Daily tracking for water, exercise, meals, and sleep
  • Progress Tracking: Weight and BMI history with visual trends
  • Smart Tips: Contextual wellness advice based on your habits
  • Gamification: Streak tracking and achievement system

📱 User Experience

  • Beautiful Material 3 design
  • Dark mode support
  • Offline-first architecture (works without internet)
  • Zero operational costs (no APIs or subscriptions)
  • Educational content about BMI, calories, and wellness
  • Medical disclaimers for Play Store compliance

🚀 Getting Started

Prerequisites

  • Flutter SDK (3.9.2 or higher)
  • Dart SDK
  • Android Studio / VS Code
  • Android device or emulator

Installation

  1. Clone or navigate to the project

    cd nutriguid_app
  2. Install dependencies

    flutter pub get
  3. Run the app

    flutter run

📂 Project Structure

lib/
├── main.dart                    # App entry point
├── models/                      # Data models
│   ├── user_profile.dart
│   ├── food_item.dart
│   ├── exercise_item.dart
│   ├── habit_entry.dart
│   ├── progress_entry.dart
│   └── achievement.dart
├── services/                    # Business logic
│   ├── database_service.dart   # SQLite operations
│   ├── nutrition_service.dart  # Food filtering & meal planning
│   ├── exercise_service.dart   # Workout recommendations
│   ├── tips_service.dart       # Smart tips engine
│   └── notification_service.dart
├── screens/                     # UI screens
│   ├── onboarding/
│   ├── home/
│   ├── nutrition/
│   ├── exercise/
│   ├── tracker/
│   ├── progress/
│   ├── education/
│   └── settings/
├── utils/                       # Utilities
│   ├── constants.dart
│   ├── theme.dart
│   └── validators.dart
└── widgets/                     # Reusable widgets

assets/
└── data/
    ├── nutrition_database.json  # 30+ food items
    └── exercise_library.json    # 20+ exercises

🔧 Key Technologies

  • Flutter: Cross-platform mobile framework
  • SQLite (sqflite): Local database for user data
  • SharedPreferences: Simple key-value storage
  • Provider: State management
  • fl_chart: Progress charts
  • flutter_local_notifications: Reminders

📊 BMI Calculation

The app uses the standard BMI formula:

BMI = weight (kg) / height² (m)

Categories:

  • < 18.5: Underweight
  • 18.5 - 24.9: Normal
  • 25.0 - 29.9: Overweight
  • ≥ 30.0: Obese

🍽️ Calorie Calculation

Uses the Mifflin-St Jeor equation for BMR:

For Men:

BMR = 10 × weight(kg) + 6.25 × height(cm) - 5 × age + 5

For Women:

BMR = 10 × weight(kg) + 6.25 × height(cm) - 5 × age - 161

Daily Calories:

Daily Calories = BMR × Activity Factor

Activity Factors:

  • Low (little/no exercise): 1.2
  • Medium (3-5 days/week): 1.55
  • High (6-7 days/week): 1.9

Goal Adjustments:

  • Weight Gain: +300 kcal
  • Weight Loss: -400 kcal
  • Maintain: No change

🏃 Exercise Recommendations

Exercises are filtered based on:

  • BMI suitability: Each exercise has min/max BMI range
  • Difficulty level: Beginner, Intermediate, Advanced
  • Type: Cardio, Strength, Flexibility

Calorie burn calculation:

Calories = MET × weight(kg) × duration(hours)

📱 Screens Overview

  1. Welcome Screen: App introduction with medical disclaimer
  2. Profile Setup: Onboarding form for user details
  3. Dashboard: Main hub with BMI, streak, tips, and quick habits
  4. Nutrition: Filtered food recommendations with nutritional info
  5. Exercise: Workout plans with step-by-step instructions
  6. Habit Tracker: Daily tracking with progress indicator
  7. Progress: Weight logging and history
  8. Education: Wellness information and tips
  9. Settings: Profile management, dark mode, and app reset

⚠️ Medical Disclaimer

IMPORTANT: NutriGuid provides general wellness guidance and educational information only. This app is NOT a substitute for professional medical advice, diagnosis, or treatment. Always consult with a healthcare provider before starting any new diet or exercise program.

🎮 Gamification

  • Daily Streaks: Track consecutive days of habit completion
  • Achievements: Unlock badges for milestones
  • Progress Visualization: Charts and trends

🔔 Notifications (Optional)

  • Water reminders (every 2 hours)
  • Exercise reminders (customizable time)
  • Weekly weight check reminders

🌙 Dark Mode

Full dark mode support with automatic theme switching.

📦 Building for Release

Android

flutter build apk --release

Or for app bundle (recommended for Play Store):

flutter build appbundle --release

iOS (if configured)

flutter build ios --release

🛡️ Privacy

  • 100% Offline: All data stored locally
  • No tracking: No analytics or third-party services
  • No accounts: No user registration required
  • Data control: Easy app reset option

📝 Play Store Compliance

  • Medical disclaimers prominently displayed
  • No medical claims or diagnosis features
  • Educational content only
  • Offline-first privacy

🔮 Future Enhancements (Not Implemented)

  • Cloud sync for backup
  • AI-powered meal planning
  • Wearable device integration
  • Social features
  • Recipe suggestions

🐛 Troubleshooting

App won't start:

  • Run flutter clean then flutter pub get
  • Check Flutter version: flutter --version

Database errors:

  • Use app reset in Settings
  • Reinstall the app

Notifications not working:

  • Check device notification permissions
  • Ensure notifications are enabled in Settings

📄 License

This project is created for educational and wellness purposes.

👨‍💻 Development

Built with:

  • Flutter 3.9.2+
  • Dart 3.0+
  • Material Design 3

Code Quality:

  • Well-commented code
  • Modular architecture
  • Separation of concerns
  • Reusable components

🙏 Acknowledgments

  • Nutrition data compiled from USDA FoodData Central
  • Exercise information from fitness research
  • BMI and calorie formulas from medical standards

Made with ❤️ for your wellness journey