An MVI based Jetpack Compose App for storing user expenses and generating various stats and graphs from them
-
Expense Entry Screen : Input Fields , Categories, Receipt Image(Upload functionality with image preview), Real-time Validation, Real-time Total
-
Expense List Screen (My Expenses): Today's view, Date filtering, Grouping options, comprehensive expense item, preview bill image, edit entry, share as text message, share as pdf
-
Expense Report Screen: Category-wise analysis, Payment method analysis, Top purchases, Monthly expenses
-
MVI Architecture: ViewModel + StateFlow, Clean Architecture, Repository Pattern, Navigation
-
Data Layer: Room Database, Remote API, Offline-First
-
Modern Design UI/UX: Material Design 3, Jetpack Compose, Custom Themes
-
Dependencies & Libraries: Jetpack Compose, Hilt, Room, Retrofit, Coil, Charty, Navigation Compose, Timber,Room Database,
app/src/main/java/com/expense/tracker/
├── commons/ # Shared utilities and components
├── data/ # Data layer (cache, remote, use cases)
├── ui/ # UI layer
│ ├── core/ # Core UI components and navigation
│ └── features/ # Feature-specific screens
│ ├── add/ # Expense entry feature
│ ├── dashboard/ # Main dashboard and reports
│ └── preview/ # Expense preview
└── ExpenseTrackerApp.kt # Application class