Skip to content

An MVI based Jetpack Compose App for storing user expenses and generating various stats and graphs from them

Notifications You must be signed in to change notification settings

root-ansh/android_expense_tracker

Repository files navigation

Smart Daily Expense Tracker

An MVI based Jetpack Compose App for storing user expenses and generating various stats and graphs from them

✨ Features Implemented

📱 Core Screens & Flows

  1. Expense Entry Screen : Input Fields , Categories, Receipt Image(Upload functionality with image preview), Real-time Validation, Real-time Total

  2. 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

  3. Expense Report Screen: Category-wise analysis, Payment method analysis, Top purchases, Monthly expenses

🏗️ Architecture & State Management

  • 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,

🚀 Project Structure

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

About

An MVI based Jetpack Compose App for storing user expenses and generating various stats and graphs from them

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages