Skip to content

Expense Tracker Android app, designed to help users keep track of their daily expenses with ease which allows users to add, view, and analyze expenses using intuitive stats and charts.

Notifications You must be signed in to change notification settings

TheHamckerCapy/Expensify

Repository files navigation

Expense Tracker Android

Welcome to the Expense Tracker Android app!
This project is designed to help users keep track of their daily expenses with ease.
The app allows users to add, view, and analyze expenses using intuitive stats and charts.
It is developed using modern Android development practices, including Jetpack Compose, Room Database,Material 3 Ui, and the MVVM architecture.


✨ Features

  • Add Expense: Easily add your daily expenses with a few taps.
  • Track Expenses: View a list of all your expenses, organized by date and category.
  • Analyze with Stats: Get insights into your debit and credit habits with detailed stats and charts.

🛠️ Technologies Used

  • Jetpack Compose: A modern toolkit for building native Android UI.
  • Room Database: A robust database layer on top of SQLite for managing local data.
  • MVVM Architecture: Model-View-ViewModel architecture for separating UI, business logic, and data handling.

Architecture

image
 🚀 Getting Started

 ✅ Prerequisites
- Android Studio -Bumblebee or later  
- Java 11 or later  
- Android SDK 21 or later  

 📥 Installation
1. Clone the repository:
   git clone https://github.com/yourusername/ExpenseTrackerAndroid.git

📦 Dependencies

Add the following to your build.gradle (Module: app) file:

implementation("androidx.constraintlayout:constraintlayout:2.2.1")
implementation("androidx.constraintlayout:constraintlayout-compose:1.1.1")

val room_version = "2.7.2"
implementation("androidx.room:room-runtime:$room_version")
ksp("androidx.room:room-compiler:$room_version")
annotationProcessor("androidx.room:room-compiler:$room_version")
implementation("androidx.room:room-ktx:$room_version")

val nav_version = "2.9.3"
implementation("androidx.navigation:navigation-compose:$nav_version")

implementation("com.github.PhilJay:MPAndroidChart:v3.1.0")

🔄 Version Updates

Make sure to always check for the latest versions:

  1. Open the project in Android Studio.
  2. Sync the project with Gradle files.
  3. Run the app on an emulator or physical device.

📱 Usage

➕ Adding an Expense

  1. Tap on the "Add Expense" button.
  2. Enter the amount, select a category, and add notes (optional).
  3. Save the expense to track it.

📋 Viewing Expenses

  • Navigate to the "Expense List" screen to view all recorded expenses.
  • Tap on any expense to edit or delete it.

📊 Tracking with Stats

  • Go to the "Stats" section to view charts and summaries of your spending habits over time.

ScreenShots and clip

Demo-Video.mp4

When you build and launch the app you may see already filled in data , this is because of the following snippet which was for development and testing purposes only . If you want to remove those data simply remove this code snippet from the expenseDatabase file and make you unistall and reinstall the app for the changes to take effect.

.addCallback(object : Callback() {
                override fun onCreate(db: SupportSQLiteDatabase) {
                    super.onCreate(db)
                    InitBasicData(context)
                }

                fun InitBasicData(context: Context) {
                    CoroutineScope(Dispatchers.IO).launch {
                        val dao = getDatabase(context).expenseDao()
                        val DAY = 86_400_000L
                        val now = System.currentTimeMillis()
                        dao.insertExpense(
                            ExpenseEntity(1, "Salary", 65000.0, now - DAY * 28, "Income")
                        )
                        dao.insertExpense(
                            ExpenseEntity(2, "Freelance Project", 12000.0, now - DAY * 21, "Income")
                        )
                        dao.insertExpense(
                            ExpenseEntity(3, "Groceries", 3500.75, now - DAY * 18, "Expense")
                        )
                        dao.insertExpense(
                            ExpenseEntity(4, "Netflix", 499.0, now - DAY * 15, "Expense")
                        )
                        dao.insertExpense(
                            ExpenseEntity(5, "Electricity Bill", 2200.0, now - DAY * 12, "Expense")
                        )
                        dao.insertExpense(
                            ExpenseEntity(6, "Dining Out", 1800.50, now - DAY * 7, "Expense")
                        )
                        dao.insertExpense(
                            ExpenseEntity(7, "Gym Membership", 1500.0, now - DAY * 3, "Expense")
                        )
                        dao.insertExpense(
                            ExpenseEntity(8, "Stock Dividend", 2500.0, now, "Income")
                        )
                    }
                }
            })

About

Expense Tracker Android app, designed to help users keep track of their daily expenses with ease which allows users to add, view, and analyze expenses using intuitive stats and charts.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages