# jagadeesh-boyalla-03/personal-finance-and-expense-management-system architecture

> Architecture diagram of the GitHub repository jagadeesh-boyalla-03/personal-finance-and-expense-management-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system
- Repository: https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system

## Overview

Personal Finance Management System supports account-secured income, expense, and budget tracking through a Streamlit dashboard, console app, or desktop GUI. The main workflow is user entry and editing, per-user CSV persistence, financial summaries and visual analytics, then report/export or optional email and WhatsApp delivery. Authentication includes OTP verification; a separate monthly worker reads user records and dispatches scheduled WhatsApp reports. The graph follows README capabilities and sampled entry points; some dashboard features are documented but their internal implementation was not sampled, so their wiring is shown only at the app boundary.

Main entry points: [`streamlit_app.py`](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/streamlit_app.py) (Streamlit app), [`auth.py`](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/auth.py) (Authentication), [`whatsapp_service.py`](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/whatsapp_service.py) (WhatsApp dispatch), [`finance.py`](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/finance.py) (Finance engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User interfaces"]
  node_streamlit["Streamlit app<br/>[streamlit_app.py]"]
  node_console["Console app<br/>[main.py]"]
  node_desktop["Desktop app<br/>[gui_app.py]"]
end

subgraph group_finance["Finance and reporting"]
  node_finance_engine["Finance engine<br/>[finance.py]"]
  node_csv_data[("User finance CSVs")]
  node_visuals["Analytics dashboard<br/>[streamlit_app.py]"]
  node_editors["Data editors<br/>[streamlit_app.py]"]
  node_reports["Reports and export<br/>[streamlit_app.py]"]
  node_cli_reports["Console reports<br/>[report.py]"]
end

subgraph group_identity["Accounts and verification"]
  node_auth["Authentication<br/>[auth.py]"]
end

subgraph group_delivery["Report delivery"]
  node_scheduler["Monthly scheduler"]
  node_whatsapp["WhatsApp dispatch"]
  node_email["Email delivery<br/>[email_service.py]"]
end

node_user(("User"))
node_wa_web{{"WhatsApp Web"}}
node_meta_api{{"Meta Cloud API"}}
node_smtp{{"SMTP server"}}

node_user -->|"uses"| node_streamlit
node_user -->|"uses"| node_console
node_user -->|"uses"| node_desktop
node_streamlit -->|"authenticates"| node_auth
node_streamlit -->|"manages records"| node_finance_engine
node_streamlit -->|"renders analytics"| node_visuals
node_streamlit -->|"edits records"| node_editors
node_streamlit -->|"generates reports"| node_reports
node_streamlit -->|"dispatches reports"| node_whatsapp
node_streamlit -->|"sends reports"| node_email
node_console -->|"authenticates"| node_auth
node_console -->|"manages records"| node_finance_engine
node_console -->|"requests reports"| node_cli_reports
node_cli_reports -->|"reads totals"| node_finance_engine
node_desktop -->|"authenticates"| node_auth
node_desktop -->|"manages records"| node_finance_engine
node_finance_engine -->|"reads and writes"| node_csv_data
node_auth -->|"sends OTP"| node_email
node_auth -->|"sends OTP"| node_whatsapp
node_scheduler -->|"loads users"| node_auth
node_scheduler -->|"reads records"| node_csv_data
node_scheduler -->|"dispatches monthly"| node_whatsapp
node_whatsapp -.->|"opens sharing link"| node_wa_web
node_whatsapp -.->|"sends messages"| node_meta_api
node_email -.->|"sends mail"| node_smtp

click node_streamlit "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/streamlit_app.py"
click node_console "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/main.py"
click node_desktop "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/gui/gui_app.py"
click node_auth "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/auth.py"
click node_finance_engine "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/finance.py"
click node_csv_data "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/tree/main/data"
click node_visuals "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/streamlit_app.py"
click node_editors "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/streamlit_app.py"
click node_reports "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/streamlit_app.py"
click node_cli_reports "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/report.py"
click node_scheduler "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/monthly_scheduler.py"
click node_whatsapp "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/whatsapp_service.py"
click node_email "https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/email_service.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_streamlit,node_console,node_desktop,node_user toneBlue
class node_finance_engine,node_csv_data,node_visuals,node_editors,node_reports,node_cli_reports toneAmber
class node_auth,node_meta_api,node_smtp toneMint
class node_scheduler,node_whatsapp,node_email toneRose
class node_wa_web toneIndigo
```

## Components

### User interfaces

- [Streamlit app](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/streamlit_app.py): `streamlit_app.py`
- [Console app](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/main.py): `main.py`
- [Desktop app](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/gui/gui_app.py): `gui/gui_app.py`

### Finance and reporting

- [Finance engine](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/finance.py): `finance.py`
- [User finance CSVs](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/tree/main/data): `data`
- [Analytics dashboard](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/streamlit_app.py): `streamlit_app.py`
- [Data editors](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/streamlit_app.py): `streamlit_app.py`
- [Reports and export](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/streamlit_app.py): `streamlit_app.py`
- [Console reports](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/report.py): `report.py`

### Accounts and verification

- [Authentication](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/auth.py): `auth.py`

### Report delivery

- [Monthly scheduler](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/monthly_scheduler.py): `monthly_scheduler.py`
- [WhatsApp dispatch](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/whatsapp_service.py): `whatsapp_service.py`
- [Email delivery](https://github.com/jagadeesh-boyalla-03/personal-finance-and-expense-management-system/blob/main/email_service.py): `email_service.py`

### Other components

- **User**
- **WhatsApp Web**
- **Meta Cloud API**
- **SMTP server**

## Connections

- User → Streamlit app: uses
- User → Console app: uses
- User → Desktop app: uses
- Streamlit app → Authentication: authenticates
- Streamlit app → Finance engine: manages records
- Streamlit app → Analytics dashboard: renders analytics
- Streamlit app → Data editors: edits records
- Streamlit app → Reports and export: generates reports
- Streamlit app → WhatsApp dispatch: dispatches reports
- Streamlit app → Email delivery: sends reports
- Console app → Authentication: authenticates
- Console app → Finance engine: manages records
- Console app → Console reports: requests reports
- Console reports → Finance engine: reads totals
- Desktop app → Authentication: authenticates
- Desktop app → Finance engine: manages records
- Finance engine → User finance CSVs: reads and writes
- Authentication → Email delivery: sends OTP
- Authentication → WhatsApp dispatch: sends OTP
- Monthly scheduler → Authentication: loads users
- Monthly scheduler → User finance CSVs: reads records
- Monthly scheduler → WhatsApp dispatch: dispatches monthly
- WhatsApp dispatch → WhatsApp Web: opens sharing link
- WhatsApp dispatch → Meta Cloud API: sends messages
- Email delivery → SMTP server: sends mail
