Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NutriFit

A Flutter Android app that builds a personalized, sustainable weight-loss diet plan - calculated from the user's own numbers, not a generic template.

Features

  • Account & onboarding - email/password sign-up (with email confirmation), profile photo, and an intake form covering age, gender, height, weight, target weight, activity level, sleep, diet type (omnivore/vegetarian/vegan), allergies, sugar cravings, and alcohol habits.
  • Smart calorie & macro calculation - BMR (Mifflin-St Jeor formula), TDEE adjusted for activity level, and a calorie deficit sized as a percentage of TDEE and adjusted by BMI (not just "how many kg to lose"), with a safe minimum floor.
  • Realistic, not punishing - if someone enjoys sweets/soda or drinks regularly, the plan includes a controlled daily "treat" allowance instead of banning it outright, which tapers down gradually over the first weeks instead of cutting it off abruptly.
  • Auto-generated weekly meal plan - 4 to 6 meals/day chosen automatically based on calorie needs, with gram portions per food, varied across days and across different users (not the same plan for everyone).
  • Progress tracking - log weight over time, see a chart, and the plan recalculates automatically.
  • 6 languages - English, Romanian, Spanish, Italian, French, German, switchable anytime (including from the login screen).
  • Cloud sync - profile and progress are stored in Supabase (Postgres + Auth), so the account works across devices; Row Level Security ensures each user can only ever read/write their own data.

Tech stack

  • Flutter (Dart) - UI, state, local caching (SQLite via sqflite)
  • Supabase - authentication, Postgres database, file storage (avatars)
  • fl_chart - progress chart

Project structure

lib/
  models/    - data models (profile, nutrition plan, food items, meal plan)
  services/  - business logic: calorie/macro calculator, meal generator,
               auth, local cache, i18n/translations
  screens/   - app screens (splash, login, register, home, weekly plan,
               progress, profile) and shared widgets
tools/       - one-off script used to generate the app icon

Running it yourself

  1. Install the Flutter SDK: https://docs.flutter.dev/get-started/install
  2. Create a free Supabase project with a profiles table (linked to auth.users) and a weight_log table, both with Row Level Security restricted to the owning user, and enable Email auth.
  3. Update kSupabaseUrl and kSupabaseAnonKey in lib/services/auth_service.dart with your project's values.
  4. Fetch dependencies:
    flutter pub get
    
  5. Run on a connected device/emulator:
    flutter run
    
  6. Build a release APK:
    flutter build apk --release --obfuscate --split-debug-info=build/debug-symbols
    
    The APK will be at build/app/outputs/flutter-apk/app-release.apk.

About

Flutter Android app that builds a personalized, sustainable weight-loss diet plan - calculated from your own numbers, not a generic template. 6 languages, Supabase backend.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages