Skip to content

CodeWithSangeeta/TrackIt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

25 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ฑ TrackIt โ€“ Expense Tracking Android App

Track โ€ข Manage โ€ข Analyze Your Expenses

TrackIt is a modern Android application designed to help users track, manage, and analyze their daily expenses efficiently.
Built using Kotlin and Jetpack Compose, the app focuses on simplicity, clarity, and performance while following clean MVVM architecture.

Android โ€ข Kotlin โ€ข Jetpack Compose โ€ข MVVM โ€ข Firebase Auth โ€ข Room (Planned)

๐Ÿ“ฅ Download APK โ€ข โœจ Features โ€ข ๐Ÿ“ธ Screenshots โ€ข ๐ŸŽฅ Demo โ€ข โš™๏ธ Installation


๐ŸŽฏ About

TrackIt helps users maintain a clear overview of their daily spending by allowing them to record, categorize, and review expenses in a simple and intuitive way.

The app includes secure authentication (Email/Password & Google Sign-In) and is designed with scalability in mind, making it suitable for future enhancements such as cloud sync and analytics.

This project was built as a resume-grade / internship assignment project, focusing on modern Android best practices rather than just UI implementation.


โœจ Features

๐Ÿ” Authentication

  • Login & Sign-up using Email & Password
  • Google Sign-In using Firebase Authentication
  • Secure and user-friendly onboarding flow

๐Ÿ’ธ Expense Management

  • Add, update, and delete expense records
  • Category-wise expense tracking:
    • Food
    • Travel
    • Shopping
    • Bills
    • Others
  • View total spending at a glance

๐Ÿ“Š Expense Overview

  • Clean list of expenses
  • Category-based organization
  • Real-time UI updates using state management

๐ŸŽจ User Interface

  • Fully built with Jetpack Compose
  • Uses Material Design 3
  • Responsive layout for different screen sizes
  • Clean spacing, typography, and consistent colors

๐Ÿ“ธ Screenshots

Authentication & Empty State

Login Screen Sign Up Screen Empty State


Main Flow

Home Screen Add Expense


๐ŸŽฅ Video Demo

๐Ÿ“บ Watch TrackIt in action:

โ–ถ๏ธ Click here to watch the demo video

Demo includes:

  • App launch & authentication flow
  • Adding an expense
  • Expense list updates
  • Category selection
  • Overall app walkthrough

๐Ÿ› ๏ธ Tech Stack

Component Technology
Language Kotlin
UI Jetpack Compose
Design System Material 3
Architecture MVVM
State Management State Hoisting / UDF
Authentication Firebase Auth (Email & Google)
Navigation Navigation Compose
Local Storage Room Database (Planned)
Build System Gradle (Kotlin DSL)

๐Ÿ—๏ธ Architecture & Project Structure

TrackIt follows Clean MVVM architecture with a clear separation between UI, data, and navigation layers. The structure is designed to be scalable, testable, and easy to maintain.

TrackIt/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ main/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ kotlin/
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ com/
โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ practice/
โ”‚   โ”‚   โ”‚   โ”‚           โ””โ”€โ”€ trackit/
โ”‚   โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ component/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ””โ”€โ”€ GoogleButton.kt
โ”‚   โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ data/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”œโ”€โ”€ model/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ””โ”€โ”€ Expense.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ””โ”€โ”€ repository/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚       โ””โ”€โ”€ ExpenseRepository.kt
โ”‚   โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ ui/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”œโ”€โ”€ auth/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ”œโ”€โ”€ AuthState.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ”œโ”€โ”€ AuthViewModel.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ”œโ”€โ”€ LoginScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ”œโ”€โ”€ SignupScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ””โ”€โ”€ SplashScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”œโ”€โ”€ dashboard/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ”œโ”€โ”€ DashboardScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ”œโ”€โ”€ DashboardViewModel.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ””โ”€โ”€ EmptyExpenseStateScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”œโ”€โ”€ expense/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ””โ”€โ”€ AddExpenseScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”œโ”€โ”€ navigation/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ”œโ”€โ”€ AppNavGraph.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚   โ””โ”€โ”€ AppRoutes.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚   โ””โ”€โ”€ theme/
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚       โ”œโ”€โ”€ Color.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚       โ”œโ”€โ”€ Theme.kt
โ”‚   โ”‚   โ”‚   โ”‚               โ”‚       โ””โ”€โ”€ Type.kt
โ”‚   โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   โ”‚               โ””โ”€โ”€ MainActivity.kt
โ”‚   โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ res/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ AndroidManifest.xml
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ androidTest/
โ”‚   โ”‚   โ””โ”€โ”€ test/
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ build.gradle.kts
โ”‚   โ””โ”€โ”€ proguard-rules.pro
โ”‚
โ”œโ”€โ”€ gradle/
โ”œโ”€โ”€ gradle.properties
โ”œโ”€โ”€ gradle-wrapper.properties
โ”œโ”€โ”€ settings.gradle.kts
โ”œโ”€โ”€ libs.versions.toml
โ””โ”€โ”€ local.properties

Key Benefits

  • Clear separation of concerns
  • Lifecycle-aware UI
  • Easy to test and maintain
  • Scalable for future backend integration

๐Ÿงช Error Handling & UX

  • Input validation for expense amount and category
  • Graceful empty states (no expenses yet)
  • User-friendly error messages
  • Loading indicators for async operations

๐Ÿ” Permissions Used

  • No unnecessary permissions
  • App respects user privacy
  • Authentication handled securely via Firebase

๐Ÿ”ฎ Future Enhancements

  • ๐Ÿ’พ Offline storage using Room Database
  • โ˜๏ธ Cloud sync with backend
  • ๐Ÿ“ˆ Expense analytics with charts
  • ๐ŸŒ™ Dark mode support
  • ๐Ÿ“ค Export expenses as PDF / CSV

๐Ÿš€ How to Run the Project

git clone https://github.com/CodeWithSangeeta/TrackIt
cd trackit

About

TrackIt is a simple Android expense tracker app built using Kotlin and Jetpack Compose. It features clean UI screens for authentication, expense management, and dashboards, designed to demonstrate modern Android development and backend integration readiness.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages