# letruonghuy/fraudriskmgmt architecture

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

- Interactive diagram: https://gitdiagram.com/letruonghuy/fraudriskmgmt
- Repository: https://github.com/letruonghuy/fraudriskmgmt

## Overview

This repository implements a fraud-risk management API backed by SQL Server, with a separate Python prediction service. An officer submits a transaction for scoring; the API records it and creates an alert when risk meets its threshold. Alerts can be assigned or resolved, and cases support investigation and manager approval. Managers also have dashboard reporting, while login issues role-bearing JWTs. The tree indicates additional product areas, but excerpts are partial and no README is provided, so some subsystem wiring is not shown.

Main entry points: [`backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Data/AppDbContext.cs`](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Data/AppDbContext.cs) (Application database), [`backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/CaseController.cs`](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/CaseController.cs) (Case workflow), [`backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/AuthController.cs`](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/AuthController.cs) (Login API), [`backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/TransactionController.cs`](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/TransactionController.cs) (Transaction API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Management API"]
  node_db[("Application database<br/>[AppDbContext.cs]")]
end

subgraph group_risk["Risk Scoring"]
  node_transaction["Transaction API"]
  node_mlclient["ML client<br/>[MLService.cs]"]
  node_mlapi["Prediction API<br/>[main.py]"]
  node_model["Random forest<br/>[random_forest.pkl]"]
end

subgraph group_workflow["Alert and Case Workflow"]
  node_alerts["Alert management<br/>[AlertController.cs]"]
  node_cases["Case workflow<br/>[CaseController.cs]"]
end

subgraph group_identity["Identity and Audit"]
  node_auth["Login API<br/>[AuthController.cs]"]
  node_jwt["JWT service<br/>[JwtService.cs]"]
  node_audit["Audit logging<br/>[AuditLogService.cs]"]
end

subgraph group_reporting["Reporting"]
  node_dashboard["Dashboard API"]
end

node_officer(("Officer"))
node_manager(("Manager"))

node_officer -->|"submits transaction"| node_transaction
node_transaction -->|"requests score"| node_mlclient
node_mlclient -->|"posts prediction"| node_mlapi
node_mlapi -->|"loads model"| node_model
node_mlapi -->|"returns score"| node_mlclient
node_transaction -->|"saves transaction and alert"| node_db
node_manager -->|"manages alerts"| node_alerts
node_officer -->|"reviews alerts"| node_alerts
node_alerts -->|"queries and updates"| node_db
node_officer -->|"investigates cases"| node_cases
node_manager -->|"decides proposals"| node_cases
node_cases -->|"reads and updates workflow"| node_db
node_cases -->|"records actions"| node_audit
node_officer -->|"logs in"| node_auth
node_manager -->|"logs in"| node_auth
node_auth -->|"looks up user"| node_db
node_auth -->|"generates token"| node_jwt
node_manager -->|"views metrics"| node_dashboard
node_dashboard -->|"aggregates records"| node_db
node_audit -->|"writes audit log"| node_db

click node_transaction "https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/TransactionController.cs"
click node_mlclient "https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Services/MLService.cs"
click node_mlapi "https://github.com/letruonghuy/fraudriskmgmt/blob/main/fraud-detection-ml/api/main.py"
click node_model "https://github.com/letruonghuy/fraudriskmgmt/blob/main/fraud-detection-ml/models/random_forest.pkl"
click node_alerts "https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/AlertController.cs"
click node_cases "https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/CaseController.cs"
click node_auth "https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/AuthController.cs"
click node_jwt "https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Services/JwtService.cs"
click node_audit "https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Services/AuditLogService.cs"
click node_dashboard "https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/DashboardController.cs"
click node_db "https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Data/AppDbContext.cs"

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_db toneBlue
class node_transaction,node_mlclient,node_mlapi,node_model toneAmber
class node_alerts,node_cases toneMint
class node_auth,node_jwt,node_audit toneRose
class node_dashboard,node_officer,node_manager toneIndigo
```

## Components

### Management API

- [Application database](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Data/AppDbContext.cs): `backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Data/AppDbContext.cs`

### Risk Scoring

- [Transaction API](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/TransactionController.cs): `backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/TransactionController.cs`
- [ML client](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Services/MLService.cs): `backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Services/MLService.cs`
- [Prediction API](https://github.com/letruonghuy/fraudriskmgmt/blob/main/fraud-detection-ml/api/main.py): `fraud-detection-ml/api/main.py`
- [Random forest](https://github.com/letruonghuy/fraudriskmgmt/blob/main/fraud-detection-ml/models/random_forest.pkl): `fraud-detection-ml/models/random_forest.pkl`

### Alert and Case Workflow

- [Alert management](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/AlertController.cs): `backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/AlertController.cs`
- [Case workflow](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/CaseController.cs): `backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/CaseController.cs`

### Identity and Audit

- [Login API](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/AuthController.cs): `backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/AuthController.cs`
- [JWT service](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Services/JwtService.cs): `backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Services/JwtService.cs`
- [Audit logging](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Services/AuditLogService.cs): `backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Services/AuditLogService.cs`

### Reporting

- [Dashboard API](https://github.com/letruonghuy/fraudriskmgmt/blob/main/backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/DashboardController.cs): `backend/FraudRiskMgmt.API/FraudRiskMgmt.API/Controllers/DashboardController.cs`

### Other components

- **Officer**
- **Manager**

## Connections

- Officer → Transaction API: submits transaction
- Transaction API → ML client: requests score
- ML client → Prediction API: posts prediction
- Prediction API → Random forest: loads model
- Prediction API → ML client: returns score
- Transaction API → Application database: saves transaction and alert
- Manager → Alert management: manages alerts
- Officer → Alert management: reviews alerts
- Alert management → Application database: queries and updates
- Officer → Case workflow: investigates cases
- Manager → Case workflow: decides proposals
- Case workflow → Application database: reads and updates workflow
- Case workflow → Audit logging: records actions
- Officer → Login API: logs in
- Manager → Login API: logs in
- Login API → Application database: looks up user
- Login API → JWT service: generates token
- Manager → Dashboard API: views metrics
- Dashboard API → Application database: aggregates records
- Audit logging → Application database: writes audit log
