# pushkar1805/ai-fintech-risk architecture

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

- Interactive diagram: https://gitdiagram.com/pushkar1805/ai-fintech-risk
- Repository: https://github.com/pushkar1805/ai-fintech-risk

## Overview

RiskLedger AI is a synthetic-data underwriting and fraud-risk prototype. A user enters customer and cash-flow signals in the application workspace; the FastAPI assessment endpoint validates the application, computes credit, behavioral and fraud risks, then returns a decision, recommended limit and reason factors while persisting assessments. Separate dashboard, customer and model-performance views expose product data. The README also documents synthetic-data generation and model training; their runtime wiring is not established by the sampled excerpts. The README describes SQLite, while backend configuration requires a DATABASE_URL, so the concrete configured database is uncertain.

Main entry points: [`backend/app/main.py`](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/main.py) (FastAPI endpoints), [`frontend/lib/api.ts`](https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/lib/api.ts) (API client), [`backend/app/db.py`](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/db.py) (Database access), [`backend/ml/train_models.py`](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/ml/train_models.py) (Model training)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web application"]
  node_application_ui["Application workspace<br/>[page.tsx]"]
  node_dashboard_ui["Dashboard<br/>[page.tsx]"]
  node_customers_ui["Customer view<br/>[page.tsx]"]
  node_fraud_ui["Fraud monitor<br/>[page.tsx]"]
  node_models_ui["Model metrics<br/>[page.tsx]"]
  node_api_client["API client<br/>[api.ts]"]
end

subgraph group_service["API service"]
  node_api["FastAPI endpoints<br/>[main.py]"]
  node_application_schema["Application validation<br/>[schemas.py]"]
end

subgraph group_risk["Risk intelligence"]
  node_assessment["Risk assessment<br/>[main.py]"]
  node_credit_model["Alternative credit model"]
  node_fraud_model["Fraud and anomaly models"]
  node_behavior_decision["Behavior and decision rules<br/>[main.py]"]
  node_training["Model training<br/>[train_models.py]"]
end

subgraph group_data["Data and models"]
  node_synthetic_data["Synthetic data generation<br/>[generate_data.py]"]
  node_orm["Customer and assessment records<br/>[models.py]"]
  node_db_access["Database access<br/>[db.py]"]
  node_database[("Configured database")]
  node_csv_data[("Synthetic CSV data")]
  node_metrics["Model metrics artifact<br/>[metrics.json]"]
end

node_user(("Underwriting user"))

node_user -->|"enters signals"| node_application_ui
node_application_ui -->|"requests assessment"| node_api_client
node_api_client -->|"posts assessment"| node_api
node_api -->|"validates input"| node_application_schema
node_api -->|"runs assessment"| node_assessment
node_assessment -->|"predicts credit risk"| node_credit_model
node_assessment -->|"scores fraud risk"| node_fraud_model
node_assessment -->|"computes decision"| node_behavior_decision
node_api -->|"gets database session"| node_db_access
node_api -->|"creates and queries records"| node_orm
node_db_access -->|"connects to"| node_database
node_orm -->|"uses base metadata"| node_db_access
node_dashboard_ui -->|"requests dashboard"| node_api_client
node_customers_ui -->|"requests customers"| node_api_client
node_models_ui -->|"requests metrics"| node_api_client
node_api -->|"reads metrics"| node_metrics
node_api -->|"reads customer data"| node_csv_data
node_training -.->|"persists selected model"| node_credit_model
node_training -.->|"persists risk models"| node_fraud_model
node_synthetic_data -->|"writes datasets"| node_csv_data

click node_application_ui "https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/application/page.tsx"
click node_dashboard_ui "https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/page.tsx"
click node_customers_ui "https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/customers/page.tsx"
click node_fraud_ui "https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/fraud/page.tsx"
click node_models_ui "https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/models/page.tsx"
click node_api_client "https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/lib/api.ts"
click node_api "https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/main.py"
click node_application_schema "https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/schemas.py"
click node_assessment "https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/main.py"
click node_credit_model "https://github.com/pushkar1805/ai-fintech-risk/tree/main/backend/trained_models"
click node_fraud_model "https://github.com/pushkar1805/ai-fintech-risk/tree/main/backend/trained_models"
click node_behavior_decision "https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/main.py"
click node_training "https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/ml/train_models.py"
click node_synthetic_data "https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/ml/generate_data.py"
click node_orm "https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/models.py"
click node_db_access "https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/db.py"
click node_csv_data "https://github.com/pushkar1805/ai-fintech-risk/tree/main/backend/data"
click node_metrics "https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/trained_models/metrics.json"

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_application_ui,node_dashboard_ui,node_customers_ui,node_fraud_ui,node_models_ui,node_api_client,node_user toneBlue
class node_api,node_application_schema toneAmber
class node_assessment,node_credit_model,node_fraud_model,node_behavior_decision,node_training toneMint
class node_synthetic_data,node_orm,node_db_access,node_database,node_csv_data,node_metrics toneRose
```

## Components

### Web application

- [Application workspace](https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/application/page.tsx): `frontend/app/application/page.tsx`
- [Dashboard](https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/page.tsx): `frontend/app/page.tsx`
- [Customer view](https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/customers/page.tsx): `frontend/app/customers/page.tsx`
- [Fraud monitor](https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/fraud/page.tsx): `frontend/app/fraud/page.tsx`
- [Model metrics](https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/app/models/page.tsx): `frontend/app/models/page.tsx`
- [API client](https://github.com/pushkar1805/ai-fintech-risk/blob/main/frontend/lib/api.ts): `frontend/lib/api.ts`

### API service

- [FastAPI endpoints](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/main.py): `backend/app/main.py`
- [Application validation](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/schemas.py): `backend/app/schemas.py`

### Risk intelligence

- [Risk assessment](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/main.py): `backend/app/main.py`
- [Alternative credit model](https://github.com/pushkar1805/ai-fintech-risk/tree/main/backend/trained_models): `backend/trained_models`
- [Fraud and anomaly models](https://github.com/pushkar1805/ai-fintech-risk/tree/main/backend/trained_models): `backend/trained_models`
- [Behavior and decision rules](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/main.py): `backend/app/main.py`
- [Model training](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/ml/train_models.py): `backend/ml/train_models.py`

### Data and models

- [Synthetic data generation](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/ml/generate_data.py): `backend/ml/generate_data.py`
- [Customer and assessment records](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/models.py): `backend/app/models.py`
- [Database access](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/app/db.py): `backend/app/db.py`
- **Configured database**
- [Synthetic CSV data](https://github.com/pushkar1805/ai-fintech-risk/tree/main/backend/data): `backend/data`
- [Model metrics artifact](https://github.com/pushkar1805/ai-fintech-risk/blob/main/backend/trained_models/metrics.json): `backend/trained_models/metrics.json`

### Other components

- **Underwriting user**

## Connections

- Underwriting user → Application workspace: enters signals (evidence: `frontend/app/application/page.tsx`)
- Application workspace → API client: requests assessment (evidence: `frontend/app/application/page.tsx`)
- API client → FastAPI endpoints: posts assessment
- FastAPI endpoints → Application validation: validates input (evidence: `backend/app/main.py`)
- FastAPI endpoints → Risk assessment: runs assessment (evidence: `backend/app/main.py`)
- Risk assessment → Alternative credit model: predicts credit risk (evidence: `backend/app/main.py`)
- Risk assessment → Fraud and anomaly models: scores fraud risk (evidence: `backend/app/main.py`)
- Risk assessment → Behavior and decision rules: computes decision (evidence: `backend/app/main.py`)
- FastAPI endpoints → Database access: gets database session (evidence: `backend/app/main.py`)
- FastAPI endpoints → Customer and assessment records: creates and queries records (evidence: `backend/app/main.py`)
- Database access → Configured database: connects to (evidence: `backend/app/db.py`)
- Customer and assessment records → Database access: uses base metadata (evidence: `backend/app/models.py`)
- Dashboard → API client: requests dashboard (evidence: `frontend/app/page.tsx`)
- Customer view → API client: requests customers (evidence: `frontend/app/customers/page.tsx`)
- Model metrics → API client: requests metrics (evidence: `frontend/app/models/page.tsx`)
- FastAPI endpoints → Model metrics artifact: reads metrics (evidence: `backend/app/main.py`)
- FastAPI endpoints → Synthetic CSV data: reads customer data (evidence: `backend/app/main.py`)
- Model training → Alternative credit model: persists selected model
- Model training → Fraud and anomaly models: persists risk models
- Synthetic data generation → Synthetic CSV data: writes datasets (evidence: `backend/ml/generate_data.py`)
