# mahesh882r/banking-analytics-platform architecture

> Architecture diagram of the GitHub repository mahesh882r/banking-analytics-platform, 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/mahesh882r/banking-analytics-platform
- Repository: https://github.com/mahesh882r/banking-analytics-platform

## Overview

The platform is a Streamlit banking-transaction analytics application. Users connect to a relational database, discover and load a table, identify relevant columns, enrich and filter the data, then explore analytics, dashboards, insights, quality metrics, and reports. The README documents the overall workflow and capabilities; some page implementation was not sampled, so those links follow documented ownership without assuming additional internal calls.

Main entry points: [`app.py`](https://github.com/mahesh882r/banking-analytics-platform/blob/main/app.py) (App router), [`frontend/pages/analytics.py`](https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/pages/analytics.py) (Analytics workspace), [`frontend/pages/dashboard.py`](https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/pages/dashboard.py) (BI dashboards), [`backend/database.py`](https://github.com/mahesh882r/banking-analytics-platform/blob/main/backend/database.py) (Database manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_application["Application flow"]
  node_app["App router<br/>[app.py]"]
  node_settings["App settings<br/>[settings.py]"]
end

subgraph group_data["Data access"]
  node_db_manager["Database manager<br/>[database.py]"]
end

subgraph group_analysis["Analysis"]
  node_processor["Data processor<br/>[data_processor.py]"]
  node_analytics_engine["Analytics engine"]
end

subgraph group_interface["User interface"]
  node_sidebar["Connection sidebar<br/>[sidebar.py]"]
  node_welcome["Welcome page<br/>[welcome.py]"]
  node_analytics_page["Analytics workspace<br/>[analytics.py]"]
  node_dashboard["BI dashboards<br/>[dashboard.py]"]
  node_components["UI components<br/>[components.py]"]
  node_styles["Dark theme<br/>[styles.py]"]
end

node_user(("Analyst"))
node_database[("Transaction database")]

node_user -->|"uses"| node_app
node_app -->|"reads config"| node_settings
node_app -->|"injects theme"| node_styles
node_app -->|"renders"| node_sidebar
node_sidebar -->|"returns inputs"| node_app
node_app -->|"connects"| node_db_manager
node_db_manager -->|"queries"| node_database
node_app -->|"renders when disconnected"| node_welcome
node_app -->|"routes"| node_analytics_page
node_app -->|"routes"| node_dashboard
node_analytics_page -->|"loads table"| node_db_manager
node_analytics_page -->|"detects, enriches, filters"| node_processor
node_analytics_page -->|"requests analysis"| node_analytics_engine
node_analytics_engine -->|"uses"| node_processor
node_analytics_page -->|"renders results"| node_components
node_dashboard -->|"computes KPIs"| node_analytics_engine
node_dashboard -->|"aggregates data"| node_processor
node_dashboard -->|"renders metrics"| node_components
node_analytics_page -->|"navigates"| node_dashboard

click node_app "https://github.com/mahesh882r/banking-analytics-platform/blob/main/app.py"
click node_settings "https://github.com/mahesh882r/banking-analytics-platform/blob/main/config/settings.py"
click node_sidebar "https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/sidebar.py"
click node_welcome "https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/pages/welcome.py"
click node_analytics_page "https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/pages/analytics.py"
click node_dashboard "https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/pages/dashboard.py"
click node_components "https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/components.py"
click node_styles "https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/styles.py"
click node_db_manager "https://github.com/mahesh882r/banking-analytics-platform/blob/main/backend/database.py"
click node_processor "https://github.com/mahesh882r/banking-analytics-platform/blob/main/backend/data_processor.py"
click node_analytics_engine "https://github.com/mahesh882r/banking-analytics-platform/blob/main/backend/analytics_engine.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_app,node_settings toneBlue
class node_db_manager,node_database toneAmber
class node_processor,node_analytics_engine toneMint
class node_sidebar,node_welcome,node_analytics_page,node_dashboard,node_components,node_styles toneRose
class node_user toneIndigo
```

## Components

### Application flow

- [App router](https://github.com/mahesh882r/banking-analytics-platform/blob/main/app.py): `app.py`
- [App settings](https://github.com/mahesh882r/banking-analytics-platform/blob/main/config/settings.py): `config/settings.py`

### Data access

- [Database manager](https://github.com/mahesh882r/banking-analytics-platform/blob/main/backend/database.py): `backend/database.py`

### Analysis

- [Data processor](https://github.com/mahesh882r/banking-analytics-platform/blob/main/backend/data_processor.py): `backend/data_processor.py`
- [Analytics engine](https://github.com/mahesh882r/banking-analytics-platform/blob/main/backend/analytics_engine.py): `backend/analytics_engine.py`

### User interface

- [Connection sidebar](https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/sidebar.py): `frontend/sidebar.py`
- [Welcome page](https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/pages/welcome.py): `frontend/pages/welcome.py`
- [Analytics workspace](https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/pages/analytics.py): `frontend/pages/analytics.py`
- [BI dashboards](https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/pages/dashboard.py): `frontend/pages/dashboard.py`
- [UI components](https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/components.py): `frontend/components.py`
- [Dark theme](https://github.com/mahesh882r/banking-analytics-platform/blob/main/frontend/styles.py): `frontend/styles.py`

### Other components

- **Analyst**
- **Transaction database**

## Connections

- Analyst → App router: uses
- App router → App settings: reads config
- App router → Dark theme: injects theme
- App router → Connection sidebar: renders
- Connection sidebar → App router: returns inputs
- App router → Database manager: connects
- Database manager → Transaction database: queries
- App router → Welcome page: renders when disconnected
- App router → Analytics workspace: routes
- App router → BI dashboards: routes
- Analytics workspace → Database manager: loads table
- Analytics workspace → Data processor: detects, enriches, filters
- Analytics workspace → Analytics engine: requests analysis
- Analytics engine → Data processor: uses
- Analytics workspace → UI components: renders results
- BI dashboards → Analytics engine: computes KPIs
- BI dashboards → Data processor: aggregates data
- BI dashboards → UI components: renders metrics
- Analytics workspace → BI dashboards: navigates
