Android app built with Kotlin, Jetpack Compose, and Room to help a chicken distribution business manage customers, orders, payments, procurement inventory, and a simple daily delivery route.
- Customers – add shops with optional lat/long, search, and see live balances (orders minus payments).
- Orders – capture per-customer orders with validation, show daily procurement & remaining inventory, and quick stats.
- Payments – record cash/UPI/other payments per customer and watch balances update instantly.
- Routing MVP – one-tap “Plan route” lists base → Bengaluru procurement → customers (nearest-neighbor/Haversine) when locations are available.
- Procurement tracking – default 5,000 kg per day with live remaining kg as orders are created.
- Material 3 UI polish: top app bar, cards, FABs, empty states, snackbar validation.
- UI: Jetpack Compose + Navigation (customers, orders, payments tabs). ViewModels expose
StateFlows to composables. - Persistence: Room database (KSP) with entities for customers, orders, payments, procurements; shared
AppDatabasesingleton. - Domain helpers: Repositories per entity,
FinanceUtilsfor totals,RoutePlannerfor naive routing,DateUtilsfor start-of-day logic. - State management: MVVM with Coroutines/StateFlow; inventories & routes combine DAO flows.
./gradlew assembleDebugThe project targets SDK 34 / minSdk 24 and uses JDK 11.
./gradlew testIncludes converter + finance utility unit tests.
- Integrate Hilt for dependency injection instead of manual factories.
- Add customer detail screen with payment/order history, plus export/sharing.
- Expand routing to honor delivery windows and integrate Maps/Directions APIs when keys are available.