# omkarpathak/trackmyrupee architecture

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

- Interactive diagram: https://gitdiagram.com/omkarpathak/trackmyrupee
- Repository: https://github.com/omkarpathak/trackmyrupee

## Overview

TrackMyRupee is a privacy-focused personal finance dashboard centered on user-entered financial data. Its main workflow is recording transactions and account activity, maintaining balances and ledger history, then presenting net-worth and spending insights; distinct product branches cover goals, budgets, loans, recurring entries, imports, and data export. The graph uses README capability descriptions and the repository tree; sampled service code confirms ledger, net-worth, FX, and analytics responsibilities, but does not establish every view-to-service call.

Main entry points: [`expenses/models.py`](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/models.py) (Finance records), [`finance_tracker/urls.py`](https://github.com/omkarpathak/trackmyrupee/blob/main/finance_tracker/urls.py) (Django routes), [`expenses/ledger_read_service.py`](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/ledger_read_service.py) (Ledger queries), [`expenses/views/expenses.py`](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/expenses.py) (Transaction views)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web experience"]
  node_routes["Django routes<br/>[urls.py]"]
  node_expense_views["Transaction views<br/>[expenses.py]"]
  node_account_views["Account views<br/>[accounts.py]"]
  node_dashboard_views["Dashboard views<br/>[dashboard.py]"]
  node_goal_views["Goal views<br/>[goals.py]"]
  node_loan_views["Loan views<br/>[loans.py]"]
  node_recurring_views["Recurring views<br/>[recurring.py]"]
  node_filters["Transaction filters<br/>[engine.py]"]
end

subgraph group_records["Financial records"]
  node_data[("Finance records<br/>[models.py]")]
  node_ledger_models[("Ledger records<br/>[models_new.py]")]
end

subgraph group_processing["Finance processing"]
  node_ledger_write["Ledger posting<br/>[ledger_service.py]"]
  node_ledger_read["Ledger queries"]
  node_fx["Currency conversion<br/>[fx.py]"]
  node_import["Bulk import<br/>[parser.py]"]
  node_nav["Investment pricing<br/>[nav_provider.py]"]
end

subgraph group_insights["Planning and insights"]
  node_analytics["Financial analytics<br/>[services.py]"]
  node_goal_data["Savings goals<br/>[goals.py]"]
  node_budget["Budgeting<br/>[categories.py]"]
  node_loans["Loan management<br/>[loans.py]"]
  node_recurring["Recurring scheduling<br/>[recurring_utils.py]"]
end

subgraph group_extras["User utilities"]
  node_export["Data export<br/>[export.py]"]
end

node_user(("Finance user"))
node_nav_feed(("NAV feed"))

node_user -->|"requests pages"| node_routes
node_routes -->|"dispatches"| node_expense_views
node_routes -->|"dispatches"| node_account_views
node_routes -->|"dispatches"| node_dashboard_views
node_routes -->|"dispatches"| node_goal_views
node_routes -->|"dispatches"| node_loan_views
node_routes -->|"dispatches"| node_recurring_views
node_expense_views -->|"records entries"| node_data
node_account_views -->|"manages accounts"| node_data
node_dashboard_views -->|"requests summaries"| node_analytics
node_analytics -->|"aggregates records"| node_data
node_ledger_write -->|"posts journal lines"| node_ledger_models
node_ledger_read -->|"reads ledger"| node_ledger_models
node_ledger_read -->|"converts values"| node_fx
node_ledger_read -->|"reads accounts"| node_data
node_import -->|"imports entries"| node_data
node_expense_views -->|"applies filters"| node_filters
node_goal_views -->|"manages goals"| node_goal_data
node_goal_data -->|"stores contributions"| node_data
node_budget -->|"reads spending"| node_data
node_loan_views -->|"manages loans"| node_loans
node_loans -->|"stores loan activity"| node_data
node_recurring_views -->|"manages schedules"| node_recurring
node_recurring -->|"creates transactions"| node_data
node_export -->|"exports history"| node_data
node_nav -.->|"obtains NAV data"| node_nav_feed

click node_routes "https://github.com/omkarpathak/trackmyrupee/blob/main/finance_tracker/urls.py"
click node_expense_views "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/expenses.py"
click node_account_views "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/accounts.py"
click node_dashboard_views "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/dashboard.py"
click node_goal_views "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/goals.py"
click node_loan_views "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/loans.py"
click node_recurring_views "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/recurring.py"
click node_data "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/models.py"
click node_ledger_models "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/models_new.py"
click node_ledger_write "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/ledger_service.py"
click node_ledger_read "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/ledger_read_service.py"
click node_analytics "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/services.py"
click node_fx "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/fx.py"
click node_import "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/parser.py"
click node_filters "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/filters/engine.py"
click node_goal_data "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/goals.py"
click node_budget "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/categories.py"
click node_loans "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/loans.py"
click node_recurring "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/recurring_utils.py"
click node_export "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/export.py"
click node_nav "https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/nav_provider.py"

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_routes,node_expense_views,node_account_views,node_dashboard_views,node_goal_views,node_loan_views,node_recurring_views,node_filters,node_user toneBlue
class node_data,node_ledger_models toneAmber
class node_ledger_write,node_ledger_read,node_fx,node_import,node_nav toneMint
class node_analytics,node_goal_data,node_budget,node_loans,node_recurring toneRose
class node_export,node_nav_feed toneIndigo
```

## Components

### Web experience

- [Django routes](https://github.com/omkarpathak/trackmyrupee/blob/main/finance_tracker/urls.py): `finance_tracker/urls.py`
- [Transaction views](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/expenses.py): `expenses/views/expenses.py`
- [Account views](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/accounts.py): `expenses/views/accounts.py`
- [Dashboard views](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/dashboard.py): `expenses/views/dashboard.py`
- [Goal views](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/goals.py): `expenses/views/goals.py`
- [Loan views](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/loans.py): `expenses/views/loans.py`
- [Recurring views](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/recurring.py): `expenses/views/recurring.py`
- [Transaction filters](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/filters/engine.py): `expenses/filters/engine.py`

### Financial records

- [Finance records](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/models.py): `expenses/models.py`
- [Ledger records](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/models_new.py): `expenses/models_new.py`

### Finance processing

- [Ledger posting](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/ledger_service.py): `expenses/ledger_service.py`
- [Ledger queries](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/ledger_read_service.py): `expenses/ledger_read_service.py`
- [Currency conversion](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/fx.py): `expenses/fx.py`
- [Bulk import](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/parser.py): `expenses/parser.py`
- [Investment pricing](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/nav_provider.py): `expenses/nav_provider.py`

### Planning and insights

- [Financial analytics](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/services.py): `expenses/services.py`
- [Savings goals](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/goals.py): `expenses/views/goals.py`
- [Budgeting](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/categories.py): `expenses/views/categories.py`
- [Loan management](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/loans.py): `expenses/views/loans.py`
- [Recurring scheduling](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/recurring_utils.py): `expenses/recurring_utils.py`

### User utilities

- [Data export](https://github.com/omkarpathak/trackmyrupee/blob/main/expenses/views/export.py): `expenses/views/export.py`

### Other components

- **Finance user**
- **NAV feed**

## Connections

- Finance user → Django routes: requests pages
- Django routes → Transaction views: dispatches
- Django routes → Account views: dispatches
- Django routes → Dashboard views: dispatches
- Django routes → Goal views: dispatches
- Django routes → Loan views: dispatches
- Django routes → Recurring views: dispatches
- Transaction views → Finance records: records entries
- Account views → Finance records: manages accounts
- Dashboard views → Financial analytics: requests summaries
- Financial analytics → Finance records: aggregates records
- Ledger posting → Ledger records: posts journal lines
- Ledger queries → Ledger records: reads ledger
- Ledger queries → Currency conversion: converts values
- Ledger queries → Finance records: reads accounts
- Bulk import → Finance records: imports entries
- Transaction views → Transaction filters: applies filters
- Goal views → Savings goals: manages goals
- Savings goals → Finance records: stores contributions
- Budgeting → Finance records: reads spending
- Loan views → Loan management: manages loans
- Loan management → Finance records: stores loan activity
- Recurring views → Recurring scheduling: manages schedules
- Recurring scheduling → Finance records: creates transactions
- Data export → Finance records: exports history
- Investment pricing → NAV feed: obtains NAV data
