# mega7306626007/pesaflow architecture

> Architecture diagram of the GitHub repository mega7306626007/pesaflow, 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/mega7306626007/pesaflow
- Repository: https://github.com/mega7306626007/pesaflow

## Overview

PesaFlow is an Android personal-finance app for recording and reviewing cash flow, then using the ledger to support budgeting, forecasting, goals, and other financial planning. The main path is transaction capture—by SMS, manual entry, or import—through review and persistence, then analysis and presentation in the app. The tree identifies broad product areas, while sampled code confirms financial calculations, search, recurring and goal analysis, and SMS-pending behavior. With no README and only partial source excerpts, several screen-to-engine connections are not shown where their wiring is uncertain.

Main entry points: [`app/src/main/java/com/pesaflow.app/data/finance/FinancialEngine.kt`](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/finance/FinancialEngine.kt) (Financial snapshot), [`app/src/main/java/com/pesaflow.app/data/repositories/FinanceRepository.kt`](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/repositories/FinanceRepository.kt) (Finance repository), [`app/src/main/java/com/pesaflow.app/data/notifications/DetectionPipeline.kt`](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/notifications/DetectionPipeline.kt) (SMS detection), [`app/src/main/java/com/pesaflow.app/viewmodels/FinanceViewModel.kt`](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/viewmodels/FinanceViewModel.kt) (Finance view model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_capture["Capture and ledger"]
  node_smscapture["SMS detection"]
  node_parsers["Transaction parsers<br/>[parsers]"]
  node_ledger["Ledger gateway<br/>[LedgerGateway.kt]"]
  node_repo["Finance repository"]
  node_review["Transaction review<br/>[ReviewScreen.kt]"]
end

subgraph group_finance["Financial planning"]
  node_financial["Financial snapshot<br/>[FinancialEngine.kt]"]
  node_budget["Smart budgets"]
  node_goals["Goal projections"]
  node_recurring["Recurring detection"]
  node_university["Student finances"]
  node_stock["Kitchen and belongings<br/>[KitchenScreen.kt]"]
end

subgraph group_insight["Insights and analysis"]
  node_analytics["Analytics engine"]
  node_search["Transaction search"]
  node_export["Data export"]
  node_notifications["Finance reminders"]
end

subgraph group_experience["App experience"]
  node_main["App entry<br/>[MainActivity.kt]"]
  node_vm["Finance view model"]
  node_nav["App navigation"]
  node_dashboard["Finance dashboard<br/>[DashboardScreen.kt]"]
end

subgraph group_storage["Local data"]
  node_db[("Room database<br/>[AppDatabase.kt]")]
  node_dao["Financial DAOs<br/>[database]"]
end

node_user(("User"))
node_sms["SMS inbox"]

node_user -->|"opens app"| node_main
node_main -->|"starts navigation"| node_nav
node_sms -.->|"delivers messages"| node_smscapture
node_smscapture -->|"parses message"| node_parsers
node_smscapture -->|"saves pending item"| node_repo
node_user -->|"reviews entries"| node_review
node_review -->|"confirms or edits"| node_repo
node_repo -->|"persists records"| node_db
node_db -->|"provides storage"| node_dao
node_vm -->|"accesses finance data"| node_repo
node_vm -->|"builds financial snapshot"| node_financial
node_financial -->|"informs budget planning"| node_budget
node_financial -->|"supports goal planning"| node_goals
node_financial -->|"analyzes transaction history"| node_recurring
node_nav -->|"opens dashboard"| node_dashboard
node_nav -->|"opens student tools"| node_university
node_nav -->|"opens inventory"| node_stock
node_user -->|"searches ledger"| node_search
node_user -->|"requests export"| node_export
node_financial -->|"provides financial data"| node_analytics
node_financial -->|"provides financial data"| node_notifications

click node_main "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/MainActivity.kt"
click node_vm "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/viewmodels/FinanceViewModel.kt"
click node_smscapture "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/notifications/DetectionPipeline.kt"
click node_parsers "https://github.com/mega7306626007/pesaflow/tree/main/app/src/main/java/com/pesaflow.app/data/parsers"
click node_ledger "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/ledger/LedgerGateway.kt"
click node_repo "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/repositories/FinanceRepository.kt"
click node_review "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/review/ReviewScreen.kt"
click node_db "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/database/AppDatabase.kt"
click node_dao "https://github.com/mega7306626007/pesaflow/tree/main/app/src/main/java/com/pesaflow.app/data/database"
click node_financial "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/finance/FinancialEngine.kt"
click node_budget "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/budgets/SmartBudgetEngine.kt"
click node_dashboard "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/dashboard/DashboardScreen.kt"
click node_university "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/university/UniversityScreen.kt"
click node_stock "https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/stock/KitchenScreen.kt"

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_smscapture,node_parsers,node_ledger,node_repo,node_review,node_user toneBlue
class node_financial,node_budget,node_goals,node_recurring,node_university,node_stock toneAmber
class node_analytics,node_search,node_export,node_notifications toneMint
class node_main,node_vm,node_nav,node_dashboard toneRose
class node_db,node_dao,node_sms toneIndigo
```

## Components

### Capture and ledger

- [SMS detection](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/notifications/DetectionPipeline.kt): `app/src/main/java/com/pesaflow.app/data/notifications/DetectionPipeline.kt`
- [Transaction parsers](https://github.com/mega7306626007/pesaflow/tree/main/app/src/main/java/com/pesaflow.app/data/parsers): `app/src/main/java/com/pesaflow.app/data/parsers`
- [Ledger gateway](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/ledger/LedgerGateway.kt): `app/src/main/java/com/pesaflow.app/data/ledger/LedgerGateway.kt`
- [Finance repository](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/repositories/FinanceRepository.kt): `app/src/main/java/com/pesaflow.app/data/repositories/FinanceRepository.kt`
- [Transaction review](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/review/ReviewScreen.kt): `app/src/main/java/com/pesaflow.app/ui/review/ReviewScreen.kt`

### Financial planning

- [Financial snapshot](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/finance/FinancialEngine.kt): `app/src/main/java/com/pesaflow.app/data/finance/FinancialEngine.kt`
- [Smart budgets](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/budgets/SmartBudgetEngine.kt): `app/src/main/java/com/pesaflow.app/ui/budgets/SmartBudgetEngine.kt`
- **Goal projections**
- **Recurring detection**
- [Student finances](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/university/UniversityScreen.kt): `app/src/main/java/com/pesaflow.app/ui/university/UniversityScreen.kt`
- [Kitchen and belongings](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/stock/KitchenScreen.kt): `app/src/main/java/com/pesaflow.app/ui/stock/KitchenScreen.kt`

### Insights and analysis

- **Analytics engine**
- **Transaction search**
- **Data export**
- **Finance reminders**

### App experience

- [App entry](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/MainActivity.kt): `app/src/main/java/com/pesaflow.app/MainActivity.kt`
- [Finance view model](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/viewmodels/FinanceViewModel.kt): `app/src/main/java/com/pesaflow.app/viewmodels/FinanceViewModel.kt`
- **App navigation**
- [Finance dashboard](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/ui/dashboard/DashboardScreen.kt): `app/src/main/java/com/pesaflow.app/ui/dashboard/DashboardScreen.kt`

### Local data

- [Room database](https://github.com/mega7306626007/pesaflow/blob/main/app/src/main/java/com/pesaflow.app/data/database/AppDatabase.kt): `app/src/main/java/com/pesaflow.app/data/database/AppDatabase.kt`
- [Financial DAOs](https://github.com/mega7306626007/pesaflow/tree/main/app/src/main/java/com/pesaflow.app/data/database): `app/src/main/java/com/pesaflow.app/data/database`

### Other components

- **User**
- **SMS inbox**

## Connections

- User → App entry: opens app
- App entry → App navigation: starts navigation
- SMS inbox → SMS detection: delivers messages
- SMS detection → Transaction parsers: parses message
- SMS detection → Finance repository: saves pending item
- User → Transaction review: reviews entries
- Transaction review → Finance repository: confirms or edits
- Finance repository → Room database: persists records
- Room database → Financial DAOs: provides storage
- Finance view model → Finance repository: accesses finance data
- Finance view model → Financial snapshot: builds financial snapshot
- Financial snapshot → Smart budgets: informs budget planning
- Financial snapshot → Goal projections: supports goal planning
- Financial snapshot → Recurring detection: analyzes transaction history
- App navigation → Finance dashboard: opens dashboard
- App navigation → Student finances: opens student tools
- App navigation → Kitchen and belongings: opens inventory
- User → Transaction search: searches ledger
- User → Data export: requests export
- Financial snapshot → Analytics engine: provides financial data
- Financial snapshot → Finance reminders: provides financial data
