# ngoleminhphuc1011/radix-finance-tracker-app architecture

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

- Interactive diagram: https://gitdiagram.com/ngoleminhphuc1011/radix-finance-tracker-app
- Repository: https://github.com/ngoleminhphuc1011/radix-finance-tracker-app

## Overview

RADIX is an offline Flutter personal-finance tracker. Users record income and expenses, review budget and category analytics, and manage currency, reset intervals, and preferences. The README describes reactive database-to-UI state and atomic currency conversion; the sampled source excerpts are platform runners rather than Dart runtime code, so feature relationships below rely on README statements, not inspected Dart calls. Social and Profile are documented as preview hubs; export and some settings behavior are represented from the source tree without inferred call paths.

Main entry points: [`lib/nav_wrapper.dart`](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/nav_wrapper.dart) (Navigation shell), [`lib/screens/settings/settings_screen.dart`](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/settings/settings_screen.dart) (Preferences), [`lib/screens/home/home_screen.dart`](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/home/home_screen.dart) (Transaction workspace), [`lib/core/theme/currency_provider.dart`](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/theme/currency_provider.dart) (Currency state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["App experience"]
  node_app["Flutter app entry<br/>[main.dart]"]
  node_navigation["Navigation shell<br/>[nav_wrapper.dart]"]
  node_social["Social preview<br/>[social_screen.dart]"]
  node_profile["Profile preview"]
  node_legal["Legal screens<br/>[about_screen.dart]"]
end

subgraph group_finance["Finance workflow"]
  node_home["Transaction workspace<br/>[home_screen.dart]"]
  node_transaction_dialog["Transaction editor"]
  node_transaction_model["Transaction records"]
end

subgraph group_insights["Insights and settings"]
  node_graphs["Financial analytics<br/>[graph_screen.dart]"]
  node_graph_widgets["Chart breakdowns"]
  node_currency_picker["Currency selection"]
  node_settings["Preferences"]
end

subgraph group_core["Core services"]
  node_database[("Local finance database")]
  node_currency_state["Currency state"]
  node_theme_state["Theme state"]
  node_reset_interval["Budget reset cycle"]
  node_export["Data export"]
end

node_user(("Finance user"))

node_user -->|"opens"| node_app
node_app -.->|"starts"| node_navigation
node_navigation -.->|"routes to"| node_home
node_navigation -.->|"routes to"| node_graphs
node_navigation -.->|"routes to"| node_settings
node_navigation -.->|"routes to"| node_social
node_navigation -.->|"routes to"| node_profile
node_home -.->|"edits via"| node_transaction_dialog
node_home -->|"queries and updates"| node_database
node_database -->|"stores records"| node_transaction_model
node_home -.->|"presents finance"| node_graphs
node_graphs -.->|"visualizes"| node_graph_widgets
node_currency_picker -.->|"selects currency"| node_currency_state
node_currency_state -->|"converts amounts atomically"| node_database
node_currency_state -->|"notifies reactively"| node_home
node_theme_state -->|"provides theme"| node_navigation
node_settings -->|"configures cycle"| node_reset_interval
node_settings -.->|"offers selection"| node_currency_picker
node_settings -.->|"offers export"| node_export
node_settings -->|"opens legal suite"| node_legal

click node_app "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/main.dart"
click node_navigation "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/nav_wrapper.dart"
click node_home "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/home/home_screen.dart"
click node_transaction_dialog "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/home/widgets/add_transaction_dialog.dart"
click node_transaction_model "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/models/transaction_model.dart"
click node_database "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/database/database_helper.dart"
click node_graphs "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/graph/graph_screen.dart"
click node_graph_widgets "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/graph/widgets/donut_chart_card.dart"
click node_currency_picker "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/settings/widgets/currency_picker_section.dart"
click node_currency_state "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/theme/currency_provider.dart"
click node_theme_state "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/theme/theme_provider.dart"
click node_settings "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/settings/settings_screen.dart"
click node_reset_interval "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/services/reset_interval_service.dart"
click node_export "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/services/data_export_service.dart"
click node_social "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/social/social_screen.dart"
click node_profile "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/profile/profile_screen.dart"
click node_legal "https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/settings/legal/about_screen.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_social,node_profile,node_legal,node_user toneBlue
class node_home,node_transaction_dialog,node_transaction_model toneAmber
class node_graphs,node_graph_widgets,node_currency_picker,node_settings toneMint
class node_database,node_currency_state,node_theme_state,node_reset_interval,node_export toneRose
```

## Components

### App experience

- [Flutter app entry](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/main.dart): `lib/main.dart`
- [Navigation shell](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/nav_wrapper.dart): `lib/nav_wrapper.dart`
- [Social preview](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/social/social_screen.dart): `lib/screens/social/social_screen.dart`
- [Profile preview](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/profile/profile_screen.dart): `lib/screens/profile/profile_screen.dart`
- [Legal screens](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/settings/legal/about_screen.dart): `lib/screens/settings/legal/about_screen.dart`

### Finance workflow

- [Transaction workspace](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/home/home_screen.dart): `lib/screens/home/home_screen.dart`
- [Transaction editor](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/home/widgets/add_transaction_dialog.dart): `lib/screens/home/widgets/add_transaction_dialog.dart`
- [Transaction records](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/models/transaction_model.dart): `lib/models/transaction_model.dart`

### Insights and settings

- [Financial analytics](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/graph/graph_screen.dart): `lib/screens/graph/graph_screen.dart`
- [Chart breakdowns](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/graph/widgets/donut_chart_card.dart): `lib/screens/graph/widgets/donut_chart_card.dart`
- [Currency selection](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/settings/widgets/currency_picker_section.dart): `lib/screens/settings/widgets/currency_picker_section.dart`
- [Preferences](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/screens/settings/settings_screen.dart): `lib/screens/settings/settings_screen.dart`

### Core services

- [Local finance database](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/database/database_helper.dart): `lib/core/database/database_helper.dart`
- [Currency state](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/theme/currency_provider.dart): `lib/core/theme/currency_provider.dart`
- [Theme state](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/theme/theme_provider.dart): `lib/core/theme/theme_provider.dart`
- [Budget reset cycle](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/services/reset_interval_service.dart): `lib/core/services/reset_interval_service.dart`
- [Data export](https://github.com/ngoleminhphuc1011/radix-finance-tracker-app/blob/main/lib/core/services/data_export_service.dart): `lib/core/services/data_export_service.dart`

### Other components

- **Finance user**

## Connections

- Finance user → Flutter app entry: opens (evidence: `README.md`)
- Flutter app entry → Navigation shell: starts
- Navigation shell → Transaction workspace: routes to
- Navigation shell → Financial analytics: routes to
- Navigation shell → Preferences: routes to
- Navigation shell → Social preview: routes to
- Navigation shell → Profile preview: routes to
- Transaction workspace → Transaction editor: edits via
- Transaction workspace → Local finance database: queries and updates (evidence: `README.md`)
- Local finance database → Transaction records: stores records (evidence: `README.md`)
- Transaction workspace → Financial analytics: presents finance
- Financial analytics → Chart breakdowns: visualizes
- Currency selection → Currency state: selects currency
- Currency state → Local finance database: converts amounts atomically (evidence: `README.md`)
- Currency state → Transaction workspace: notifies reactively (evidence: `README.md`)
- Theme state → Navigation shell: provides theme (evidence: `README.md`)
- Preferences → Budget reset cycle: configures cycle (evidence: `README.md`)
- Preferences → Currency selection: offers selection
- Preferences → Data export: offers export
- Preferences → Legal screens: opens legal suite (evidence: `README.md`)
