A native Android app for tracking daily nutrition — calories, macros, water, and weight progress — with barcode-based food logging.
- Accounts — email/password registration and login, backed by a MySQL database
- Personalized goals — daily calorie target calculated from age, height, weight, gender, activity level and target weight (Mifflin-St Jeor formula)
- Food logging
- Manual entry with full nutrition facts (calories, protein, carbs, fat, sugar, fiber, sodium, caffeine, alcohol)
- Barcode scanning against the Open Food Facts database for exact product data
- Hydration tracking with a daily goal based on body weight
- Weight progress with an animated trend chart toward a target weight
- Calendar view of daily calorie totals, with a detail screen per day
- Multi-language support — English, Romanian, French, Spanish, German
- Light/dark theme, adaptive app icon
app/ Android app (Kotlin, Jetpack Compose, Room, Hilt)
backend/ PHP + MySQL REST API for accounts (see backend/README.md)
- UI: Jetpack Compose, Material 3
- Architecture: MVVM, Hilt for dependency injection
- Local storage: Room (food logs, weight/water history — stays on-device)
- Networking: Plain
HttpURLConnection+org.json(no external HTTP library) - Camera / ML: CameraX, ML Kit (image labeling, barcode scanning)
- Images: Coil
- Backend: PHP 7.4+/8, MySQL, token-based session auth
Requirements: JDK 17, Android SDK (compileSdk 34), Gradle 8.4.
./gradlew assembleDebugThe debug APK is signed with the standard Android debug key. For a release build,
configure your own signing key in app/build.gradle.kts.
Accounts are stored on your own hosting (MySQL + PHP), not in the app itself.
See backend/README.md for full deployment instructions.
Until a backend is configured, the app runs in an offline demo mode (see
ApiClient.kt) so the UI can be tried without a live server.
- Passwords are hashed server-side with bcrypt; never stored or transmitted in plain text
- All network traffic is HTTPS-only (enforced via network security config)
- Release builds are minified/obfuscated (R8) with resource shrinking enabled
- Basic integrity checks (signature verification, root detection) run on release
builds — see
SecurityUtils.kt
All rights reserved.