Baskit is a minimalist nutrition scanner for Android. Point your camera at any product barcode and instantly see a breakdown of its nutritional content — calories, macros, ingredients, and a calculated health grade — so you can make smarter decisions at the grocery store or at home.
Data is sourced from the Open Food Facts open database, and your scan history is stored locally so you can track your habits over time.
- Instant barcode scan — CameraX + ML Kit detect barcodes in real time
- Rich product details — calories, macros, ingredient list, and a color-coded health grade
- Vitality Score — weekly summary of your healthy picks and total calories scanned
- Scan history — filterable log of everything you've scanned (Recent / Healthy / Unhealthy)
- Google Sign-In — Firebase Auth for a personalized profile and cross-session continuity
- Offline-first — all history persisted locally with Room; no account required to browse
- Smooth onboarding — guided intro pager with DataStore-backed completion tracking
- Dark-first design — Material 3 with a custom deep-green palette throughout
| Layer | Libraries |
|---|---|
| UI | Jetpack Compose, Material 3, Lottie |
| Navigation | Navigation Compose |
| DI | Koin 4.2 |
| Database | Room (KSP) |
| Network | Retrofit 3 + Gson |
| Camera | CameraX 1.5 + ML Kit Barcode |
| Auth | Firebase Auth (Google Sign-In) |
| Images | Coil |
| Persistence | DataStore Preferences |
Single-module MVVM — clean separation between Compose UI, ViewModels, and repositories.
feature/
├── presentation/
│ ├── screens/ # Composables (no business logic)
│ ├── components/ # Reusable UI pieces
│ └── viewmodel/ # StateFlow state, orchestrates repos
├── data/
│ ├── local/ # Room entities, DAOs
│ ├── remote/ # Retrofit API interfaces
│ └── repository/ # Wraps DAO/API, exposes Flow / suspend fns
└── domain/ # Pure formatters and transformations
Navigation is handled by a sealed Screen class with a single AppNavGraph. The scanner opens as a full-screen route from the FAB; product details are scoped to a nested ProductGraph so the ViewModel survives the Loading → Detail transition.
- Android Studio Meerkat or later
- JDK 11+
google-services.jsonplaced inapp/(Firebase project required for Auth)
# Debug APK
./gradlew assembleDebug
# Release APK
./gradlew assembleRelease
# Run unit tests
./gradlew testThe debug APK lands in app/build/outputs/apk/debug/.
Grab the latest release APK from the Releases page — no build toolchain needed.
Product information is provided by Open Food Facts, a free, open, collaborative food products database made by everyone, for everyone.
MIT License — Copyright (c) 2025 Aditya More




