# vishalnakum1210/fintrack architecture

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

- Interactive diagram: https://gitdiagram.com/vishalnakum1210/fintrack
- Repository: https://github.com/vishalnakum1210/fintrack

## Overview

FinTrack is a Flutter personal-finance app for recording income and expenses, managing friend balances and bill splits, reviewing financial activity, and exporting or backing up data. The documented journey starts in the app, passes through personal or shared-expense features, and presents balances, statements, or reports. The README describes Firebase-backed sync and encrypted sessions. Dart implementations were not sampled, so links between screens, providers, and storage are limited to documented or tree-supported responsibilities.

Main entry points: [`lib/nav_bar.dart`](https://github.com/vishalnakum1210/fintrack/blob/main/lib/nav_bar.dart) (Navigation), [`lib/providers/expense_provider.dart`](https://github.com/vishalnakum1210/fintrack/blob/main/lib/providers/expense_provider.dart) (Expense state), [`lib/get_information/session_manager.dart`](https://github.com/vishalnakum1210/fintrack/blob/main/lib/get_information/session_manager.dart) (Session security), [`lib/providers/friend_provider.dart`](https://github.com/vishalnakum1210/fintrack/blob/main/lib/providers/friend_provider.dart) (Friend state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and Navigation"]
  node_app["App entry<br/>[main.dart]"]
  node_navigation["Navigation<br/>[nav_bar.dart]"]
  node_login["Login<br/>[login_page.dart]"]
  node_registration["Registration"]
  node_session["Session security"]
end

subgraph group_ledger["Expense and Friend Ledger"]
  node_personal_expenses["Personal expenses<br/>[add_spent.dart]"]
  node_expense_provider["Expense state"]
  node_friend_ledger["Friend ledger"]
  node_split_bills["Bill splitting"]
  node_friend_provider["Friend state"]
end

subgraph group_insights["Insights and Statements"]
  node_dashboard["Wallet dashboard<br/>[main_page.dart]"]
  node_passbook["Passbook<br/>[passbook_page.dart]"]
  node_reports["Financial reports<br/>[report_page.dart]"]
  node_balance_tools["Balance calculations"]
end

subgraph group_account["Account and Data Services"]
  node_export["Export and backup"]
  node_profile["Profile settings<br/>[profile.dart]"]
  node_user_provider["User state<br/>[user_provider.dart]"]
end

node_user(("App user"))
node_firebase[("Firebase services")]
node_secure_storage[("Secure device storage")]

node_user -->|"opens"| node_app
node_app -->|"starts navigation"| node_navigation
node_navigation -->|"offers access"| node_login
node_navigation -->|"offers access"| node_registration
node_login -->|"checks session"| node_session
node_registration -->|"establishes session"| node_session
node_navigation -->|"opens expense entry"| node_personal_expenses
node_personal_expenses -->|"updates expenses"| node_expense_provider
node_navigation -->|"opens friend ledger"| node_friend_ledger
node_navigation -->|"opens bill splitter"| node_split_bills
node_friend_ledger -->|"manages friend data"| node_friend_provider
node_split_bills -->|"updates split balances"| node_friend_provider
node_navigation -->|"opens dashboard"| node_dashboard
node_navigation -->|"opens statement"| node_passbook
node_navigation -->|"opens reports"| node_reports
node_dashboard -->|"shows expense state"| node_expense_provider
node_passbook -->|"reads transactions"| node_expense_provider
node_reports -->|"calculates balances"| node_balance_tools
node_navigation -->|"opens settings"| node_profile
node_profile -->|"manages profile"| node_user_provider
node_navigation -->|"opens export"| node_export
node_export -->|"exports expense data"| node_expense_provider
node_expense_provider -->|"syncs expense data"| node_firebase
node_friend_provider -->|"syncs friend data"| node_firebase
node_user_provider -->|"syncs user data"| node_firebase
node_session -.->|"stores session securely"| node_secure_storage

click node_app "https://github.com/vishalnakum1210/fintrack/blob/main/lib/main.dart"
click node_navigation "https://github.com/vishalnakum1210/fintrack/blob/main/lib/nav_bar.dart"
click node_login "https://github.com/vishalnakum1210/fintrack/blob/main/lib/authentication/login_page.dart"
click node_registration "https://github.com/vishalnakum1210/fintrack/blob/main/lib/authentication/registration_page.dart"
click node_session "https://github.com/vishalnakum1210/fintrack/blob/main/lib/get_information/session_manager.dart"
click node_personal_expenses "https://github.com/vishalnakum1210/fintrack/blob/main/lib/user_pages/add_spent.dart"
click node_expense_provider "https://github.com/vishalnakum1210/fintrack/blob/main/lib/providers/expense_provider.dart"
click node_friend_ledger "https://github.com/vishalnakum1210/fintrack/blob/main/lib/friends_pages/friend_expenses.dart"
click node_split_bills "https://github.com/vishalnakum1210/fintrack/blob/main/lib/friends_pages/split_bill_page.dart"
click node_friend_provider "https://github.com/vishalnakum1210/fintrack/blob/main/lib/providers/friend_provider.dart"
click node_dashboard "https://github.com/vishalnakum1210/fintrack/blob/main/lib/user_pages/main_page.dart"
click node_passbook "https://github.com/vishalnakum1210/fintrack/blob/main/lib/user_pages/passbook_page.dart"
click node_reports "https://github.com/vishalnakum1210/fintrack/blob/main/lib/profile_pages/report_page.dart"
click node_balance_tools "https://github.com/vishalnakum1210/fintrack/blob/main/lib/utils/balance_helper.dart"
click node_export "https://github.com/vishalnakum1210/fintrack/blob/main/lib/services/export_service.dart"
click node_profile "https://github.com/vishalnakum1210/fintrack/blob/main/lib/user_pages/profile.dart"
click node_user_provider "https://github.com/vishalnakum1210/fintrack/blob/main/lib/providers/user_provider.dart"

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_navigation,node_login,node_registration,node_session,node_user toneBlue
class node_personal_expenses,node_expense_provider,node_friend_ledger,node_split_bills,node_friend_provider,node_firebase,node_secure_storage toneAmber
class node_dashboard,node_passbook,node_reports,node_balance_tools toneMint
class node_export,node_profile,node_user_provider toneRose
```

## Components

### Access and Navigation

- [App entry](https://github.com/vishalnakum1210/fintrack/blob/main/lib/main.dart): `lib/main.dart`
- [Navigation](https://github.com/vishalnakum1210/fintrack/blob/main/lib/nav_bar.dart): `lib/nav_bar.dart`
- [Login](https://github.com/vishalnakum1210/fintrack/blob/main/lib/authentication/login_page.dart): `lib/authentication/login_page.dart`
- [Registration](https://github.com/vishalnakum1210/fintrack/blob/main/lib/authentication/registration_page.dart): `lib/authentication/registration_page.dart`
- [Session security](https://github.com/vishalnakum1210/fintrack/blob/main/lib/get_information/session_manager.dart): `lib/get_information/session_manager.dart`

### Expense and Friend Ledger

- [Personal expenses](https://github.com/vishalnakum1210/fintrack/blob/main/lib/user_pages/add_spent.dart): `lib/user_pages/add_spent.dart`
- [Expense state](https://github.com/vishalnakum1210/fintrack/blob/main/lib/providers/expense_provider.dart): `lib/providers/expense_provider.dart`
- [Friend ledger](https://github.com/vishalnakum1210/fintrack/blob/main/lib/friends_pages/friend_expenses.dart): `lib/friends_pages/friend_expenses.dart`
- [Bill splitting](https://github.com/vishalnakum1210/fintrack/blob/main/lib/friends_pages/split_bill_page.dart): `lib/friends_pages/split_bill_page.dart`
- [Friend state](https://github.com/vishalnakum1210/fintrack/blob/main/lib/providers/friend_provider.dart): `lib/providers/friend_provider.dart`

### Insights and Statements

- [Wallet dashboard](https://github.com/vishalnakum1210/fintrack/blob/main/lib/user_pages/main_page.dart): `lib/user_pages/main_page.dart`
- [Passbook](https://github.com/vishalnakum1210/fintrack/blob/main/lib/user_pages/passbook_page.dart): `lib/user_pages/passbook_page.dart`
- [Financial reports](https://github.com/vishalnakum1210/fintrack/blob/main/lib/profile_pages/report_page.dart): `lib/profile_pages/report_page.dart`
- [Balance calculations](https://github.com/vishalnakum1210/fintrack/blob/main/lib/utils/balance_helper.dart): `lib/utils/balance_helper.dart`

### Account and Data Services

- [Export and backup](https://github.com/vishalnakum1210/fintrack/blob/main/lib/services/export_service.dart): `lib/services/export_service.dart`
- [Profile settings](https://github.com/vishalnakum1210/fintrack/blob/main/lib/user_pages/profile.dart): `lib/user_pages/profile.dart`
- [User state](https://github.com/vishalnakum1210/fintrack/blob/main/lib/providers/user_provider.dart): `lib/providers/user_provider.dart`

### Other components

- **App user**
- **Firebase services**
- **Secure device storage**

## Connections

- App user → App entry: opens
- App entry → Navigation: starts navigation
- Navigation → Login: offers access
- Navigation → Registration: offers access
- Login → Session security: checks session
- Registration → Session security: establishes session
- Navigation → Personal expenses: opens expense entry
- Personal expenses → Expense state: updates expenses
- Navigation → Friend ledger: opens friend ledger
- Navigation → Bill splitting: opens bill splitter
- Friend ledger → Friend state: manages friend data
- Bill splitting → Friend state: updates split balances
- Navigation → Wallet dashboard: opens dashboard
- Navigation → Passbook: opens statement
- Navigation → Financial reports: opens reports
- Wallet dashboard → Expense state: shows expense state
- Passbook → Expense state: reads transactions
- Financial reports → Balance calculations: calculates balances
- Navigation → Profile settings: opens settings
- Profile settings → User state: manages profile
- Navigation → Export and backup: opens export
- Export and backup → Expense state: exports expense data
- Expense state → Firebase services: syncs expense data
- Friend state → Firebase services: syncs friend data
- User state → Firebase services: syncs user data
- Session security → Secure device storage: stores session securely
