Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Calorimeter Pro

A native Android app for tracking daily nutrition — calories, macros, water, and weight progress — with barcode-based food logging.

Features

  • 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

Project structure

app/                    Android app (Kotlin, Jetpack Compose, Room, Hilt)
backend/                PHP + MySQL REST API for accounts (see backend/README.md)

Tech stack

  • 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

Building

Requirements: JDK 17, Android SDK (compileSdk 34), Gradle 8.4.

./gradlew assembleDebug

The debug APK is signed with the standard Android debug key. For a release build, configure your own signing key in app/build.gradle.kts.

Backend setup

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.

Security notes

  • 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

License

All rights reserved.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages