# pavan-teja-kamineni/financialreportgenerator architecture

> Architecture diagram of the GitHub repository pavan-teja-kamineni/financialreportgenerator, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pavan-teja-kamineni/financialreportgenerator
- Repository: https://github.com/pavan-teja-kamineni/financialreportgenerator

## Overview

Financial Report Generator is a company-scoped Flask bookkeeping and reporting application. Users register or sign in, manage accounts and opening balances, post manual or imported transactions, then view or export statements and dashboard summaries. The graph separates web workflows, accounting rules, and persistence. Several route and report sections were not excerpted; those connections are included only where the README documents them, and the graph does not infer calls from folder structure.

Main entry points: [`app/blueprints/main.py`](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py) (Web routes), [`app/models/__init__.py`](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/models/__init__.py) (Accounting models), [`app/__init__.py`](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/__init__.py) (App factory), [`app/services/__init__.py`](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/services/__init__.py) (Journal posting rules)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web workflows"]
  node_routes["Web routes<br/>[main.py]"]
  node_registration["Registration and login<br/>[main.py]"]
  node_team["Team management<br/>[main.py]"]
  node_accounts["Chart of accounts<br/>[main.py]"]
  node_opening["Opening balances<br/>[main.py]"]
  node_manual["Manual transactions<br/>[main.py]"]
  node_transfers["Cash transfers and reversals<br/>[main.py]"]
  node_csv["CSV import<br/>[main.py]"]
  node_dashboard["Dashboard<br/>[main.py]"]
  node_reports["Financial reports<br/>[main.py]"]
end

subgraph group_accounting["Accounting services"]
  node_posting["Journal posting rules<br/>[__init__.py]"]
  node_csvparse["CSV validation<br/>[__init__.py]"]
  node_calculations["Statement calculations<br/>[__init__.py]"]
  node_exports["PDF and Excel exports<br/>[exports.py]"]
end

subgraph group_data["Domain and persistence"]
  node_models["Accounting models<br/>[__init__.py]"]
  node_database[("SQL database")]
end

subgraph group_runtime["Application runtime"]
  node_entrypoint["Server entry<br/>[run.py]"]
  node_factory["App factory<br/>[__init__.py]"]
  node_config["Environment config<br/>[config.py]"]
  node_extensions["Flask extensions<br/>[extensions.py]"]
end

node_user(("Company user"))

node_user -->|"uses application"| node_entrypoint
node_entrypoint -->|"creates app"| node_factory
node_factory -->|"loads settings"| node_config
node_factory -->|"initializes extensions"| node_extensions
node_factory -->|"loads user model"| node_models
node_factory -->|"registers routes"| node_routes
node_user -->|"registers or signs in"| node_registration
node_user -->|"manages company users"| node_team
node_user -->|"maintains accounts"| node_accounts
node_user -->|"enters balances"| node_opening
node_user -->|"records activity"| node_manual
node_user -->|"corrects entries"| node_transfers
node_user -->|"imports transactions"| node_csv
node_user -->|"views summaries"| node_dashboard
node_user -->|"views statements"| node_reports
node_routes -->|"routes requests"| node_registration
node_routes -->|"routes requests"| node_team
node_routes -->|"routes requests"| node_accounts
node_routes -->|"routes requests"| node_opening
node_routes -->|"routes requests"| node_manual
node_routes -->|"routes requests"| node_transfers
node_routes -->|"routes requests"| node_csv
node_routes -->|"routes requests"| node_dashboard
node_routes -->|"routes requests"| node_reports
node_registration -->|"queries and persists"| node_models
node_accounts -->|"queries and persists"| node_models
node_manual -->|"posts entries"| node_posting
node_transfers -->|"posts corrections"| node_posting
node_csv -->|"validates rows"| node_csvparse
node_csv -->|"posts confirmed rows"| node_posting
node_dashboard -.->|"uses summaries"| node_calculations
node_reports -->|"calculates statements"| node_calculations
node_reports -->|"requests downloads"| node_exports
node_exports -->|"renders report payload"| node_calculations
node_posting -->|"creates journal records"| node_models
node_calculations -->|"reads posted ledger"| node_models
node_csvparse -.->|"validates account codes"| node_models
node_models -->|"persists records"| node_database

click node_entrypoint "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/run.py"
click node_factory "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/__init__.py"
click node_config "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/config.py"
click node_extensions "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/extensions.py"
click node_routes "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_registration "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_team "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_accounts "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_opening "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_manual "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_transfers "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_csv "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_dashboard "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_reports "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py"
click node_posting "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/services/__init__.py"
click node_csvparse "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/services/__init__.py"
click node_calculations "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/services/__init__.py"
click node_exports "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/services/exports.py"
click node_models "https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/models/__init__.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_registration,node_team,node_accounts,node_opening,node_manual,node_transfers,node_csv,node_dashboard,node_reports,node_user toneBlue
class node_posting,node_csvparse,node_calculations,node_exports toneAmber
class node_models,node_database toneMint
class node_entrypoint,node_factory,node_config,node_extensions toneRose
```

## Components

### Web workflows

- [Web routes](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`
- [Registration and login](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`
- [Team management](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`
- [Chart of accounts](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`
- [Opening balances](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`
- [Manual transactions](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`
- [Cash transfers and reversals](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`
- [CSV import](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`
- [Dashboard](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`
- [Financial reports](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/blueprints/main.py): `app/blueprints/main.py`

### Accounting services

- [Journal posting rules](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/services/__init__.py): `app/services/__init__.py`
- [CSV validation](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/services/__init__.py): `app/services/__init__.py`
- [Statement calculations](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/services/__init__.py): `app/services/__init__.py`
- [PDF and Excel exports](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/services/exports.py): `app/services/exports.py`

### Domain and persistence

- [Accounting models](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/models/__init__.py): `app/models/__init__.py`
- **SQL database**

### Application runtime

- [Server entry](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/run.py): `run.py`
- [App factory](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/__init__.py): `app/__init__.py`
- [Environment config](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/config.py): `app/config.py`
- [Flask extensions](https://github.com/pavan-teja-kamineni/financialreportgenerator/blob/main/app/extensions.py): `app/extensions.py`

### Other components

- **Company user**

## Connections

- Company user → Server entry: uses application (evidence: `README.md`)
- Server entry → App factory: creates app (evidence: `run.py`)
- App factory → Environment config: loads settings (evidence: `app/__init__.py`)
- App factory → Flask extensions: initializes extensions (evidence: `app/__init__.py`)
- App factory → Accounting models: loads user model (evidence: `app/__init__.py`)
- App factory → Web routes: registers routes
- Company user → Registration and login: registers or signs in (evidence: `README.md`)
- Company user → Team management: manages company users (evidence: `README.md`)
- Company user → Chart of accounts: maintains accounts (evidence: `README.md`)
- Company user → Opening balances: enters balances (evidence: `README.md`)
- Company user → Manual transactions: records activity (evidence: `README.md`)
- Company user → Cash transfers and reversals: corrects entries (evidence: `README.md`)
- Company user → CSV import: imports transactions (evidence: `README.md`)
- Company user → Dashboard: views summaries (evidence: `README.md`)
- Company user → Financial reports: views statements (evidence: `README.md`)
- Web routes → Registration and login: routes requests (evidence: `app/blueprints/main.py`)
- Web routes → Team management: routes requests (evidence: `app/blueprints/main.py`)
- Web routes → Chart of accounts: routes requests (evidence: `app/blueprints/main.py`)
- Web routes → Opening balances: routes requests (evidence: `app/blueprints/main.py`)
- Web routes → Manual transactions: routes requests (evidence: `app/blueprints/main.py`)
- Web routes → Cash transfers and reversals: routes requests (evidence: `app/blueprints/main.py`)
- Web routes → CSV import: routes requests (evidence: `app/blueprints/main.py`)
- Web routes → Dashboard: routes requests (evidence: `app/blueprints/main.py`)
- Web routes → Financial reports: routes requests (evidence: `app/blueprints/main.py`)
- Registration and login → Accounting models: queries and persists (evidence: `app/blueprints/main.py`)
- Chart of accounts → Accounting models: queries and persists (evidence: `app/blueprints/main.py`)
- Manual transactions → Journal posting rules: posts entries (evidence: `app/blueprints/main.py`)
- Cash transfers and reversals → Journal posting rules: posts corrections (evidence: `app/blueprints/main.py`)
- CSV import → CSV validation: validates rows (evidence: `README.md`)
- CSV import → Journal posting rules: posts confirmed rows (evidence: `app/blueprints/main.py`)
- Dashboard → Statement calculations: uses summaries (evidence: `app/blueprints/main.py`)
- Financial reports → Statement calculations: calculates statements (evidence: `README.md`)
- Financial reports → PDF and Excel exports: requests downloads (evidence: `app/blueprints/main.py`)
- PDF and Excel exports → Statement calculations: renders report payload (evidence: `app/services/exports.py`)
- Journal posting rules → Accounting models: creates journal records (evidence: `app/services/__init__.py`)
- Statement calculations → Accounting models: reads posted ledger (evidence: `app/services/__init__.py`)
- CSV validation → Accounting models: validates account codes (evidence: `app/services/__init__.py`)
- Accounting models → SQL database: persists records (evidence: `README.md`)
