A Flutter Android app that builds a personalized, sustainable weight-loss diet plan - calculated from the user's own numbers, not a generic template.
- 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.
- Flutter (Dart) - UI, state, local caching (SQLite via
sqflite) - Supabase - authentication, Postgres database, file storage (avatars)
- fl_chart - progress chart
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
- Install the Flutter SDK: https://docs.flutter.dev/get-started/install
- Create a free Supabase project with a
profilestable (linked toauth.users) and aweight_logtable, both with Row Level Security restricted to the owning user, and enable Email auth. - Update
kSupabaseUrlandkSupabaseAnonKeyinlib/services/auth_service.dartwith your project's values. - Fetch dependencies:
flutter pub get - Run on a connected device/emulator:
flutter run - Build a release APK:
The APK will be at
flutter build apk --release --obfuscate --split-debug-info=build/debug-symbolsbuild/app/outputs/flutter-apk/app-release.apk.