Skip to content

Danto1606/expense_tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Expense Tracker Mini-App

A clean, Flutter application built for the Softnet Limited Developer Assessment.
The project demonstrates strong architectural structure, efficient state management, and native mobile UX best practices.


🚀 Overview

The Expense Tracker enables users to:

  • View a structured list of transactions
  • Filter by category
  • Search by merchant name
  • View transaction details
  • Add new transactions via a mobile-optimized form

The application prioritizes performance, scalability, and clean separation of concerns.


Key Features

  • Transaction Dashboard: View a comprehensive list of expenses with merchant details and status.
  • Intelligent Filtering: Instantly filter by category (Groceries, Dining, etc.) and search by merchant name.
  • Seamless Navigation: Smooth transitions between list and detail views using a declarative router.
  • Native Data Entry: A form optimized for mobile with numeric keypads, category pickers, and date validation.

🛠 Tech Stack & Architecture


📂 Architecture

modular structure:

assets/                 # for app assets. contains the mock data
lib/
├── core/
|   ├──data_state       # define wrapper for data and errors
│   ├── di/             # Service locator (GetIt) setup
│   ├── router/         # GoRouter configuration
│   └── util/          # utility functions and extentions
|   ├── domain/     # Entities & Repository interfaces
|   ├── data/       # data sources & Repository implementation
|   ├── presentation/
|   │   ├── bloc/ # State management logic
|   │   ├── pages/   # UI Screens (List, Detail, Add)
|   │   └── widgets/   # Reusable UI components
└── main.dart           # Application entry point

This structure ensures:

  • Clear separation of concerns
  • Easy scalability
  • Maintainable code organizationz

NOTE: This will be changed to a feature based structure on a more robust app.


🎯 Engineering Highlights

  • Native numeric keyboard using KeyboardType.number
  • Category & date selection via ModalBottomSheet | Dropdown and showDatePicker
  • Form validation with controlled state updates
  • Efficient rendering using ListView.builder

📝 Mock Data

The app comes pre-loaded with ~20 transactions covering various categories: Groceries, Transportation, Dining, Entertainment, Healthcare, Shopping, and Utilities.

📋 Prerequisites

  • Flutter SDK: ^3.11.0
  • A mobile emulator (iOS/Android) or a physical device.

⚙️ Installation & Setup

0. Install Flutter SDK

Before proceeding, ensure you have the Flutter SDK installed:

1. Clone the Repository

SSH

git clone [email protected]:Danto1606/expense_tracker.git

HTTPS

git clone https://github.com/Danto1606/expense_tracker.git

2. Navigate to the Project

cd expense_tracker

3. Install Dependencies

flutter pub get

4. Run the Application

flutter run

5. Optional: Build Release Version

Android

flutter build apk --release

IOS

flutter build ios --release

📎 Repository


✅ Summary

This project demonstrates:

  • Clean, modular Flutter architecture
  • Scalable state management with Bloc
  • Production-conscious UX decisions
  • Performance-optimized UI rendering

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages