Personal nutrition, intelligent meal logging, and practical movement—shaped around real life.
Nourish turns a person's body details, goal, food preferences, weekly availability, and everyday progress into one focused Android wellness experience.
Product tour · Features · Install · Personalization · Technology · Development
Nourish is not a static recipe list or a generic workout timer. It is a connected daily-planning product that starts by learning about the user and then keeps food, hydration, movement, reminders, and progress in one place.
The experience is designed around a simple loop:
- Understand the person — height, weight, age, gender, goal, diet, excluded foods, activity, workout days, session length, and available equipment.
- Build a useful plan — practical calorie and macro targets, ranked recipes, and workouts placed only on the days the user can actually train.
- Track real behaviour — scanned meals, water, completed workouts, and daily-plan progress update the Today experience.
- Make consistency visible — completion celebrations and a GitHub-style yearly activity view turn long-term progress into something tangible.
Current Android experience · daily guidance · personalized training · private progress
| Release | APK | Android support | Package |
|---|---|---|---|
Nourish v1.11.1 (versionCode 17) |
Nourish-Android-v1.11.1.apk |
Android 7.0 / API 24 or newer | com.rohitproject.rohit_fit_ai |
You can also use the Cortex organization release mirror.
To install the APK directly:
- Download
Nourish-Android-v1.11.1.apkfrom the button above. - Open the file on the Android device.
- If Android asks, allow installation from the browser or file manager used to open it.
- Install Nourish, open it, and grant camera/notification permissions only when the relevant feature needs them.
Note
This repository provides a release-mode APK for direct testing. Because it is installed outside Google Play, Nourish uses its sideload-safe Firebase configuration. A Play-distributed build can enable Play Integrity App Check explicitly.
- A first-class Google sign-in experience — the authentication card now uses Google's official full-colour mark, current neutral button colours, clearer sign-in/sign-up wording, polished spacing, accessible semantics, and a dedicated connection state without changing the proven Firebase flow.
- Verified packaged-food scanning — barcode and strict product matching now progress through Open Food Facts, grounded Google Search, and a source-visible public product-page fallback. Nourish uses a complete nutrition panel when available and never silently replaces a scan with a vaguely similar product.
- Evidence before logging — packaged scans show the matched serving, exact-product confidence, source notes, and clickable product pages before anything is added to Today.
- A scanner that explains its work — a polished scan-line animation moves through package reading, product matching, live-source verification, and review preparation while protecting the selected photo from accidental replacement.
- 100 complete recipes — breakfast, lunch, dinner, snack, and simple-side collections each contain 20 unique recipes with food photography, nutrition, ingredients, allergens, and full preparation steps.
- Better workout sessions — optional goal- and movement-specific warm-ups and cooldowns frame every generated workout, while every planned exercise continues to open a professional ExerciseDB demonstration.
The release was tested on Android with a front-only photo of a True Elements Choc 'N' Roll Almond Protein Bar and no typed hint. Nourish independently found the exact 50 g product label and returned 197 kcal, 10.3 g protein, 22.6 g carbohydrates, 9 g fat, 7.7 g fibre, 8.1 g sugar, and 23 mg sodium with a 95% identity match. The result linked the manufacturer page and published product label for review.
Every screen below was freshly captured from the current Nourish v1.11.1 Android build running in the emulator.
Users can sign in with email/password or Google. New accounts move into a four-part onboarding experience that gathers only the information needed to shape nutrition and workouts.
Private account access · body-aware onboarding
The onboarding flow covers:
- height, weight, age, and gender;
- fat loss, muscle building, or weight maintenance;
- vegetarian, non-vegetarian, or vegan food styles;
- ingredient exclusions and dietary customizations;
- everyday activity level;
- the exact weekdays available for training;
- preferred session duration and available equipment.
The Today screen brings energy, protein, carbohydrates, fibre, hydration, meals, recommended recipes, and workout momentum into one view. The plan is calculated from the profile rather than using a single target for everyone.
Live daily targets · useful hydration controls · workout reminders with exact-alarm status
Hydration is intentionally lightweight: users can add 150, 250, 350, or 500 ml in one tap and undo the last 250 ml when needed. The value is stored in the user's private daily Firestore record and immediately updates the Today card.
Workout reminders support:
- a precise workout-time alarm with sound and a five-pulse vibration pattern;
- a calm advance notification 15, 30, or 60 minutes beforehand;
- the user's selected training days only;
- visible Android notification and exact-alarm access state;
- a human-readable next-alarm countdown;
- separate controls for the alarm and advance notification;
- test notification and real scheduled-alarm checks;
- recovery after device restart or app update.
Recipes are ranked for the user's goal and diet. Every recipe opens into a complete cooking view with time, servings, dietary tags, estimated nutrition, allergens, ingredients, and step-by-step preparation.
80 goal-aware recipes · real food photography · full recipe details · camera and gallery scanning
The AI meal scanner is built around what the user actually ate—not what they planned to eat. A clear meal photo can be analysed into:
- detected foods and estimated portion;
- calories;
- protein, carbohydrates, and fat;
- fibre and sugar;
- sodium;
- confidence, assumptions, and review notes.
The user confirms or corrects the portion before saving. Confirmed nutrition is added to the live Today totals. Nourish does not save the captured food photo to its database.
Packaged food uses an additional verification pipeline so a visual guess does not silently become a label value:
- Nourish reads the exact brand, product variant, flavour, serving clue, and visible barcode.
- A barcode lookup is attempted against the live Open Food Facts product-label database.
- Without a readable barcode, Nourish performs a strict brand-and-variant match and rejects merely similar products.
- If no strong structured match exists, Firebase AI can use grounded Google Search to find the exact current product label.
- If grounded search is unavailable, Nourish performs an exact-name public search, opens the matching product pages, and reads their current nutrition-panel images with the vision model. Unsupported images and incomplete labels are rejected.
- If the identity, serving, primary nutrients, or supporting sources remain ambiguous, the original result stays clearly marked as a visual estimate.
Verified scans show the matched serving, identity confidence, source links, and Google Search suggestions when applicable. Users can inspect that evidence before adding anything to Today. Product recipes and labels can differ by flavour and country, so Nourish always asks the user to confirm the exact package and number of servings.
While verification runs, a staged scan animation explains whether Nourish is reading the package, matching the product, checking live sources, or preparing the review. Camera and gallery controls are temporarily locked to prevent accidental replacement of the image mid-scan.
Nourish creates two-to-six-day workout plans on the user's chosen weekdays. Exercise selection responds to goal, session length, and available equipment, with bodyweight alternatives where appropriate.
Day-by-day programming · professional anatomical demonstrations with coaching
Every generated exercise opens a professional ExerciseDB demonstration plus Nourish coaching for setup, movement, breathing, checkpoints, common mistakes, and safety. Demonstrations are cached after the first successful load so repeat viewing is fast and resilient.
Nourish considers the daily plan complete when energy is within a practical range and protein, fibre, hydration, and planned movement are ready. That moment receives a one-time in-app celebration and becomes a highlighted day in the yearly consistency view.
Editable plan · personalized targets · private yearly history
| Product area | Capability |
|---|---|
| Account | Email/password registration and sign-in, password reset, Google authentication, and private per-user data |
| Onboarding | Four focused stages for body details, goal, diet, activity, weekly availability, session length, and equipment |
| Personal targets | Estimated calories, protein, carbohydrates, fibre, water, BMR, and BMI with practical wellness guardrails |
| Meal discovery | Vegetarian, non-vegetarian, and vegan filtering plus goal-aware ranking and ingredient exclusions |
| Recipes | 100 offline-first/Firestore recipes—20 each for breakfast, lunch, dinner, snacks, and simple sides—with original food photography, nutrition, allergens, measured ingredients, cooking time, servings, and complete instructions |
| AI meal scan | Camera/gallery input, plate estimation, strict barcode/product matching, live Open Food Facts labels, grounded web verification with visible sources, portion review, and Today logging |
| Hydration | Persistent quick-add, target progress, and undo controls for the current day |
| Workout planning | Two-to-six-day programs aligned to exact available weekdays, duration, goal, and equipment |
| Exercise guidance | Professional ExerciseDB demonstrations for all generated movements plus written technique coaching |
| Workout completion | Per-user workout logging and live weekly progress |
| Reminders | Training-day alarms, advance notifications, permission health, countdowns, tests, and restart recovery |
| Daily completion | Balanced energy/macro/hydration/movement evaluation with a one-time celebration |
| Consistency | GitHub-inspired yearly completion heatmap stored under the authenticated user |
| Profile | Editable goals/preferences, calculated BMI and targets, plan summary, privacy explanation, and sign-out |
flowchart LR
A[Body details] --> E[Nourish plan engine]
B[Goal and activity] --> E
C[Diet and exclusions] --> E
D[Available days, time, equipment] --> E
E --> F[Daily nutrition targets]
E --> G[Ranked recipes]
E --> H[Weekly workout plan]
I[Meals, water, workouts] --> J[Today's live progress]
F --> J
J --> K[Daily completion]
K --> L[Yearly consistency]
Nourish uses profile inputs to estimate basal metabolic rate and activity-adjusted maintenance energy. The selected goal then applies a conservative adjustment for fat loss, muscle building, or maintenance. Protein, carbohydrates, fibre, and hydration targets are derived from body weight and energy needs.
These numbers are intentionally presented as wellness estimates. They are not a diagnosis, prescription, or replacement for individualized advice from a qualified health professional.
The recommendation engine first enforces diet and excluded-ingredient constraints, then scores eligible recipes for the user's goal and nutrition priorities. Daily suggestions rotate through the eight strongest matches for meaningful variety, while the complete 100-recipe catalog remains searchable and filterable by meal type. The catalog includes 20 unique options for each main meal category plus 20 quick, optional side dishes. Sides remain in discovery and never replace breakfast, lunch, dinner, or snacks in the daily plan. Dedicated exclusions cover dairy, egg, gluten, peanut, soy, fish, shellfish, sesame, and tree nuts.
The planner places sessions only on the exact weekdays selected by the user. It chooses a balanced split, adapts set/rep details to the available duration, and substitutes movements based on equipment. Every exercise name emitted by the planner has a matching coaching guide and professional demonstration.
- Useful over overwhelming. Today focuses on the few numbers and next actions that matter.
- Real behaviour over idealized plans. Scanned meals and logged movement drive progress.
- Flexible, not punishing. Energy completion uses a practical range instead of demanding an exact calorie value.
- Explain the recommendation. Goals, diet, training days, targets, and source attribution stay visible.
- Private by default. Personal records live below the authenticated Firebase user ID and Firestore rules prevent cross-user reads.
- Friendly failures. User-facing errors explain what can be tried next without exposing implementation messages or stack traces.
Nourish uses Firebase Authentication and Cloud Firestore. The committed security rules allow authenticated users to read the shared recipe catalog while restricting profiles, meals, hydration, workout logs, reminder preferences, completion history, and workout plans to their matching user ID.
Important privacy behaviour:
- food photos are analysed but are not stored by Nourish;
- packaged-food identity text and barcodes may be checked against Open Food Facts, grounded Google Search, and exact-name public product pages to verify a current label; the captured food photo itself is not sent to public-search sites;
- personal progress is separated by Firebase UID;
- reminder configuration is backed up per user while alarms remain local to the Android device;
- the app requests camera, notification, and exact-alarm capabilities in context;
- direct-install builds use sideload-safe App Check behaviour because Play Integrity cannot attest an APK installed outside Google Play.
Nourish uses the official ExerciseDB V1 free API media CDN for professional anatomical GIF demonstrations. The app stores fixed, reviewed media IDs instead of searching at runtime, shows the exact ExerciseDB source name, credits ExerciseDB by AscendAPI, and caches successful downloads on the device.
No RapidAPI key or subscription is required for this current non-commercial build. An internet connection is needed the first time a demonstration is opened.
Important
ExerciseDB limits its free 180p GIF dataset to personal, educational, community, prototype, and other non-commercial use. A commercial or monetized Nourish distribution must obtain the appropriate ExerciseDB/RapidAPI plan before release. Nourish links to the provider CDN and does not commit or redistribute the GIF files.
| Layer | Technology |
|---|---|
| Client | Flutter and Dart, Material 3 |
| Platform | Android, minimum API 24, target API 36 |
| Authentication | Firebase Authentication and Google Sign-In |
| Database | Cloud Firestore (asia-south1) |
| AI analysis | Firebase AI Logic with supported Gemini fallbacks and grounded Google Search |
| Product labels | Open Food Facts barcode/search APIs plus source-visible public product-page label reading with strict identity matching |
| Camera/gallery | image_picker |
| Notifications | flutter_local_notifications, timezone-aware local scheduling |
| Exercise media | ExerciseDB by AscendAPI and cached_network_image |
| App integrity | Firebase App Check with sideload and Play-distribution modes |
| Setting | Value |
|---|---|
| Display name | RohitProject |
| Project ID | rohitproject-fit-ai |
| Firestore region | asia-south1 |
| Android package | com.rohitproject.rohit_fit_ai |
lib/
├── core/ Theme and visual system
├── models/ User profile, recipes, workouts, reminders, food analysis
├── screens/ Authentication, onboarding, Today, meals, scan, workout, profile
├── services/ Auth, Firestore, AI analysis, notifications, plan engine
└── widgets/ Shared UI, recipe cards, reminders, exercise guides, heatmap, celebration
The UI is intentionally separated from Firebase and recommendation logic. HomeShell composes the live product experience from streams supplied by FirestoreService, while PlanEngine remains deterministic and directly testable.
- Flutter SDK compatible with Dart
^3.11.3 - Android Studio or Android SDK command-line tools
- an Android emulator or physical device running API 24+
- access to the configured Firebase project for cloud-backed features
flutter pub getflutter analyze
flutter testflutter runflutter build apk --releaseThe generated file is:
build/app/outputs/flutter-apk/app-release.apk
For a Play-distributed production build with Firebase App Check and Play Integrity enabled:
flutter build apk --release --dart-define=NOURISH_SIDELOAD=falseThe automated suite covers the product logic and the most failure-prone UI contracts:
- personalized calorie, macro, hydration, and BMI calculations;
- diet/allergen recipe filtering and goal-aware ranking;
- workout placement against exact user availability;
- complete exercise coaching and professional-demo coverage;
- daily goal requirements, including scheduled versus rest days;
- reminder confirmation, permission messaging, and alert breakdowns;
- yearly heatmap layout and completion reporting;
- exercise demonstration loading and attribution;
- packaged-food identity rejection, per-serving label conversion, incomplete-label handling, and web-source fallback;
- staged scanner-animation rendering and progress messaging;
- complete 100-recipe catalog integrity, photography, and meal-plan coverage;
- workout-specific optional warm-up and cooldown construction.
- Google authentication button wording, interaction, disabled state, and connection-state rendering.
Before packaging the current release:
flutter analyze → no issues
flutter test → 49 tests passed
Android QA → auth, onboarding, live data, water, reminders, meals,
recipes, scan, workouts, demos, profile, heatmap,
completion celebration, web-label evidence, scanner animation,
and offline media cache checked
- Meal analysis is an estimate and depends on image quality, visible ingredients, and accurate portion confirmation.
- Recipe nutrition varies with brands, preparation, and serving size.
- Body and nutrition targets are general wellness estimates, not medical advice.
- Users should stop or adapt exercise when experiencing pain, dizziness, or unusual discomfort.
- Reliable exact alarms depend on the Android device granting notification and exact-alarm access; some manufacturers also apply their own battery restrictions.
- ExerciseDB's free demonstration media cannot be used in a commercial/monetized distribution without the appropriate provider plan.
Current release: v1.11.1
APK name: Nourish-Android-v1.11.1.apk
Build: 1.11.1+17
SHA-256: 059B95B8E7A8A37AFDC26A60DB5F53AA6953498B36AB7AA23FCDBE407A630011
Release downloads:
Keep product changes consistent with the existing visual system and privacy model. Before opening a pull request:
- run
dart formaton changed Dart files; - run
flutter analyze; - run
flutter test; - verify the affected flow on an Android device or emulator;
- never commit service-account keys, user data, captured food photos, or release signing secrets.










