# dushansenura/expenso-exencess_tracking architecture

> Architecture diagram of the GitHub repository dushansenura/expenso-exencess_tracking, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/dushansenura/expenso-exencess_tracking
- Repository: https://github.com/dushansenura/expenso-exencess_tracking

## Overview

Expenso is a local-first personal-finance app. The user signs up or logs in, enters the authenticated finance home, and manages accounts and transactions; the central FinanceViewModel coordinates finance state, derived guidance, persistence, reminders, and exports for the feature screens. The graph retains the documented budget, goals, fixed-deposit, reports, settings, and security capabilities. Relationships are based on README architecture statements; implementation excerpts for the Dart application were not provided, so unsampled implementation details are not inferred.

Main entry points: [`lib/views/financial_home_page.dart`](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/financial_home_page.dart) (Finance home), [`lib/viewmodels/finance_view_model.dart`](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/viewmodels/finance_view_model.dart) (Finance state), [`lib/app.dart`](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/app.dart) (App shell and gate), [`lib/views/login_page.dart`](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/login_page.dart) (Login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App Entry and Access"]
  node_app["App shell and gate<br/>[app.dart]"]
  node_signup["Signup<br/>[signup_screen.dart]"]
  node_login["Login<br/>[login_page.dart]"]
end

subgraph group_finance["Finance Workflow"]
  node_vm["Finance state"]
  node_models["Finance models"]
end

subgraph group_support["Persistence and Services"]
  node_accountdb[("Local accounts")]
  node_financedb[("Finance store")]
  node_notifications["Local reminders"]
  node_exports["CSV and PDF export"]
end

subgraph group_presentation["Screens and Components"]
  node_home["Finance home"]
  node_dashboard["Dashboard and insights"]
  node_transactions["Transactions"]
  node_budgets["Budget planning"]
  node_goals["Savings goals<br/>[goals_screen.dart]"]
  node_deposits["Fixed deposits"]
  node_reports["Reports"]
  node_settings["Settings and security"]
  node_widgets["Shared charts and cards"]
end

node_user(("User"))
node_google["Google Sign-In"]

node_user -->|"opens"| node_app
node_app -->|"routes to"| node_signup
node_app -->|"routes to"| node_login
node_signup -->|"creates account"| node_accountdb
node_login -->|"validates credentials"| node_accountdb
node_app -->|"routes after login"| node_home
node_home -->|"observes and updates"| node_vm
node_vm -->|"persists finance data"| node_financedb
node_vm -->|"loads account data"| node_accountdb
node_vm -->|"manages finance data"| node_models
node_home -->|"navigates to"| node_dashboard
node_home -->|"navigates to"| node_transactions
node_home -->|"navigates to"| node_budgets
node_home -->|"navigates to"| node_goals
node_home -->|"navigates to"| node_deposits
node_home -->|"navigates to"| node_reports
node_home -->|"navigates to"| node_settings
node_dashboard -.->|"uses shared UI"| node_widgets
node_vm -->|"schedules reminders"| node_notifications
node_vm -->|"requests exports"| node_exports
node_login -.->|"optionally signs in"| node_google

click node_app "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/app.dart"
click node_signup "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/auth/signup_screen.dart"
click node_login "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/login_page.dart"
click node_accountdb "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/database/account_database_service.dart"
click node_home "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/financial_home_page.dart"
click node_vm "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/viewmodels/finance_view_model.dart"
click node_models "https://github.com/dushansenura/expenso-exencess_tracking/tree/master/lib/models"
click node_financedb "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/database/finance_database_service.dart"
click node_dashboard "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/dashboard_screen.dart"
click node_transactions "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/transactions_screen.dart"
click node_budgets "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/budget_planner_screen.dart"
click node_goals "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/goals_screen.dart"
click node_deposits "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/fd_manage_screen.dart"
click node_reports "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/reports_screen.dart"
click node_settings "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/settings_screen.dart"
click node_notifications "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/services/notification_service.dart"
click node_exports "https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/services/export_service.dart"
click node_widgets "https://github.com/dushansenura/expenso-exencess_tracking/tree/master/lib/views/widgets"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_signup,node_login,node_user toneBlue
class node_vm,node_models toneAmber
class node_accountdb,node_financedb,node_notifications,node_exports toneMint
class node_home,node_dashboard,node_transactions,node_budgets,node_goals,node_deposits,node_reports,node_settings,node_widgets toneRose
class node_google toneIndigo
```

## Components

### App Entry and Access

- [App shell and gate](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/app.dart): `lib/app.dart`
- [Signup](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/auth/signup_screen.dart): `lib/auth/signup_screen.dart`
- [Login](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/login_page.dart): `lib/views/login_page.dart`

### Finance Workflow

- [Finance state](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/viewmodels/finance_view_model.dart): `lib/viewmodels/finance_view_model.dart`
- [Finance models](https://github.com/dushansenura/expenso-exencess_tracking/tree/master/lib/models): `lib/models`

### Persistence and Services

- [Local accounts](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/database/account_database_service.dart): `lib/database/account_database_service.dart`
- [Finance store](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/database/finance_database_service.dart): `lib/database/finance_database_service.dart`
- [Local reminders](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/services/notification_service.dart): `lib/services/notification_service.dart`
- [CSV and PDF export](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/services/export_service.dart): `lib/services/export_service.dart`

### Screens and Components

- [Finance home](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/financial_home_page.dart): `lib/views/financial_home_page.dart`
- [Dashboard and insights](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/dashboard_screen.dart): `lib/views/screens/dashboard_screen.dart`
- [Transactions](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/transactions_screen.dart): `lib/views/screens/transactions_screen.dart`
- [Budget planning](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/budget_planner_screen.dart): `lib/views/screens/budget_planner_screen.dart`
- [Savings goals](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/goals_screen.dart): `lib/views/screens/goals_screen.dart`
- [Fixed deposits](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/fd_manage_screen.dart): `lib/views/screens/fd_manage_screen.dart`
- [Reports](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/reports_screen.dart): `lib/views/screens/reports_screen.dart`
- [Settings and security](https://github.com/dushansenura/expenso-exencess_tracking/blob/master/lib/views/screens/settings_screen.dart): `lib/views/screens/settings_screen.dart`
- [Shared charts and cards](https://github.com/dushansenura/expenso-exencess_tracking/tree/master/lib/views/widgets): `lib/views/widgets`

### Other components

- **User**
- **Google Sign-In**

## Connections

- User → App shell and gate: opens (evidence: `README.md`)
- App shell and gate → Signup: routes to (evidence: `README.md`)
- App shell and gate → Login: routes to (evidence: `README.md`)
- Signup → Local accounts: creates account (evidence: `README.md`)
- Login → Local accounts: validates credentials (evidence: `README.md`)
- App shell and gate → Finance home: routes after login (evidence: `README.md`)
- Finance home → Finance state: observes and updates (evidence: `README.md`)
- Finance state → Finance store: persists finance data (evidence: `README.md`)
- Finance state → Local accounts: loads account data (evidence: `README.md`)
- Finance state → Finance models: manages finance data (evidence: `README.md`)
- Finance home → Dashboard and insights: navigates to (evidence: `README.md`)
- Finance home → Transactions: navigates to (evidence: `README.md`)
- Finance home → Budget planning: navigates to (evidence: `README.md`)
- Finance home → Savings goals: navigates to (evidence: `README.md`)
- Finance home → Fixed deposits: navigates to (evidence: `README.md`)
- Finance home → Reports: navigates to (evidence: `README.md`)
- Finance home → Settings and security: navigates to (evidence: `README.md`)
- Dashboard and insights → Shared charts and cards: uses shared UI
- Finance state → Local reminders: schedules reminders (evidence: `README.md`)
- Finance state → CSV and PDF export: requests exports (evidence: `README.md`)
- Login → Google Sign-In: optionally signs in (evidence: `README.md`)
