Skip to content

jasontcs/spending

Repository files navigation

Spending

Spending is an expense tracker mobile application written in Flutter using BloC as design pattern

Features

  • Support multiple members
  • Categories
  • Upload receipts
  • Firebase as a backend
  • Set Budgets to limit the expense
  • Chart for Data Visualization

Pages

Records Page Record Page Budget Page
Chart Page Trend Page Categories Page

Getting Started

Put your own Firebase project config file lib/firebase_options.dart with Firebase Auth, Firestore & Firebase Storage enabled

You will need a recent version of Flutter, then just

$ flutter run

on mobile devices

Tech Stacks

Project Structure

spending 
├─ lib
│  ├─ app
│  │  ├─ app.dart           # MaterialApp, RepositoryProviders, Global Auth State
│  │  └─ theme.dart         # Using [flex_color_scheme]
│  ├─ app_router.dart       # All Routing using [auto_route]
│  ├─ bloc_observer.dart    # Middleware of Bloc, Use for Logging
│  ├─ common                # Common util function
│  ├─ features              # Feature Layer: Separate Pages  
│  │  ├─ auth
│  │  ├─ budget
│  │  ├─ categories
│  │  ├─ category
│  │  ├─ chart
│  │  ├─ currencies
│  │  ├─ receipt
│  │  ├─ record
│  │  ├─ records
│  ├─ l10n                  # Localization
│  ├─ main.dart             
│  ├─ model                 
│  └─ widgets               # Reusable Widgets 
├─ packages                 # Separate non-UI repositories
│  ├─ calculator            # Calculator Logic API
│  ├─ spending_api          # Data Layer: Firestore API
│  ├─ spending_logger       
│  └─ spending_repository   # Domain Layer: Modelized, Filtered & Streamed repository
└─ pubspec.yaml             # App config, dependencies

Architecture - BloC Pattern

About

Flutter Spending Tracker App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published