# laurien03/corporate-credit-risk-assessment-engine architecture

> Architecture diagram of the GitHub repository laurien03/corporate-credit-risk-assessment-engine, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/laurien03/corporate-credit-risk-assessment-engine
- Repository: https://github.com/laurien03/corporate-credit-risk-assessment-engine

## Overview

This desktop credit-risk application collects corporate financial indicators, validates them, then trains a Logistic Regression model on the bankruptcy dataset and assesses the submitted applicant. Its runtime orchestrator also screens and evaluates the training data, classifies bankruptcy probability, generates a lending recommendation, and saves a report. The README documents these capabilities; the graph’s implementation links are based on the shown excerpts, so it omits unverified UI details beyond those excerpts.

Main entry points: [`main.py`](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/main.py) (Assessment Orchestrator), [`app.py`](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/app.py) (Questionnaire UI), [`risk_assessor.py`](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/risk_assessor.py) (Risk Assessor), [`report_generator.py`](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/report_generator.py) (Report Generator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Desktop Interface"]
  node_app["Questionnaire UI<br/>[app.py]"]
end

subgraph group_data["Data Preparation"]
  node_dataset[("Bankruptcy Dataset")]
  node_loader["Dataset Loader<br/>[data_loader.py]"]
  node_screener["Dataset Screener<br/>[data_loader.py]"]
end

subgraph group_model["Modeling"]
  node_trainer["Logistic Regression<br/>[model_trainer.py]"]
end

subgraph group_assessment["Risk Decision"]
  node_orchestrator["Assessment Orchestrator<br/>[main.py]"]
  node_assessor["Risk Assessor<br/>[risk_assessor.py]"]
  node_report["Report Generator"]
end

node_user(("Loan Applicant"))

node_user -->|"enters finances"| node_app
node_app -->|"loads feature names"| node_loader
node_dataset -->|"reads dataset"| node_loader
node_app -->|"submits validated inputs"| node_orchestrator
node_orchestrator -->|"loads and splits data"| node_loader
node_orchestrator -->|"screens dataset"| node_screener
node_orchestrator -->|"trains and evaluates"| node_trainer
node_orchestrator -->|"assesses applicant"| node_assessor
node_orchestrator -->|"generates report"| node_report
node_orchestrator -->|"passes trained model"| node_assessor
node_assessor -->|"passes risk results"| node_report
node_report -->|"exports assessment"| node_user

click node_app "https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/app.py"
click node_dataset "https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/bankruptcy_dataset.csv"
click node_loader "https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/data_loader.py"
click node_screener "https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/data_loader.py"
click node_trainer "https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/model_trainer.py"
click node_orchestrator "https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/main.py"
click node_assessor "https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/risk_assessor.py"
click node_report "https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/report_generator.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 toneBlue
class node_dataset,node_loader,node_screener toneAmber
class node_trainer toneMint
class node_orchestrator,node_assessor,node_report toneRose
class node_user toneIndigo
```

## Components

### Desktop Interface

- [Questionnaire UI](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/app.py): `app.py`

### Data Preparation

- [Bankruptcy Dataset](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/bankruptcy_dataset.csv): `bankruptcy_dataset.csv`
- [Dataset Loader](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/data_loader.py): `data_loader.py`
- [Dataset Screener](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/data_loader.py): `data_loader.py`

### Modeling

- [Logistic Regression](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/model_trainer.py): `model_trainer.py`

### Risk Decision

- [Assessment Orchestrator](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/main.py): `main.py`
- [Risk Assessor](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/risk_assessor.py): `risk_assessor.py`
- [Report Generator](https://github.com/laurien03/corporate-credit-risk-assessment-engine/blob/main/report_generator.py): `report_generator.py`

### Other components

- **Loan Applicant**

## Connections

- Loan Applicant → Questionnaire UI: enters finances (evidence: `README.md`)
- Questionnaire UI → Dataset Loader: loads feature names (evidence: `app.py`)
- Bankruptcy Dataset → Dataset Loader: reads dataset (evidence: `data_loader.py`)
- Questionnaire UI → Assessment Orchestrator: submits validated inputs (evidence: `app.py`)
- Assessment Orchestrator → Dataset Loader: loads and splits data (evidence: `main.py`)
- Assessment Orchestrator → Dataset Screener: screens dataset (evidence: `main.py`)
- Assessment Orchestrator → Logistic Regression: trains and evaluates (evidence: `main.py`)
- Assessment Orchestrator → Risk Assessor: assesses applicant (evidence: `main.py`)
- Assessment Orchestrator → Report Generator: generates report (evidence: `main.py`)
- Assessment Orchestrator → Risk Assessor: passes trained model (evidence: `main.py`)
- Risk Assessor → Report Generator: passes risk results (evidence: `main.py`)
- Report Generator → Loan Applicant: exports assessment (evidence: `README.md`)
