# yagnaakula229/yottaflex.ai-round4 architecture

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

- Interactive diagram: https://gitdiagram.com/yagnaakula229/yottaflex.ai-round4
- Repository: https://github.com/yagnaakula229/yottaflex.ai-round4

## Overview

RiskTrace AI is an analyst-oriented transaction-risk monitoring backend, with a separate React/Vite starter screen. The backend exposes transaction and account-link views, risk alerts, case management, and analytics/evaluation routes; services cover risk scoring, linked-account analysis, synthetic data, and data quality. The README describes these as planned capabilities and says the frontend is not integrated, while sampled backend files and the source index show substantial backend modules. Edges reflect only shown calls, indexed references, or README statements; unsampled implementation details are not assumed.

Main entry points: [`backend/app/main.py`](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/main.py) (FastAPI app), [`backend/app/services/risk_service.py`](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/risk_service.py) (Risk evaluation), [`backend/app/models/entities.py`](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/models/entities.py) (Domain records), [`backend/app/api/transactions.py`](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/transactions.py) (Transaction routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["API entry"]
  node_api_app["FastAPI app<br/>[main.py]"]
  node_transactions_api["Transaction routes<br/>[transactions.py]"]
  node_alerts_api["Alert routes<br/>[alerts.py]"]
  node_cases_api["Case routes<br/>[cases.py]"]
  node_risk_api["Risk routes<br/>[risk.py]"]
  node_analytics_api["Analytics routes<br/>[analytics.py]"]
end

subgraph group_risk["Risk analysis"]
  node_transaction_service["Transaction queries"]
  node_link_analysis["Account links<br/>[link_analysis.py]"]
  node_risk_service["Risk evaluation<br/>[risk_service.py]"]
  node_risk_engine["Rule scoring<br/>[risk_engine.py]"]
end

subgraph group_casework["Analyst workflow"]
  node_case_service["Case management<br/>[case_service.py]"]
end

subgraph group_data["Data and evaluation"]
  node_analytics_service["Analytics"]
  node_evaluation_service["Ground-truth metrics"]
  node_data_quality["Data quality<br/>[data_quality.py]"]
  node_seed_data["Synthetic data<br/>[seed_data.py]"]
  node_database[("Relational database<br/>[session.py]")]
  node_entities["Domain records<br/>[entities.py]"]
  node_ground_truth["Ground-truth labels"]
end

subgraph group_client["Standalone frontend"]
  node_frontend["Starter UI<br/>[App.jsx]"]
end

node_analyst(("Analyst"))
node_browser_user(("Browser user"))

node_analyst -->|"requests API"| node_api_app
node_api_app -->|"mounts routes"| node_transactions_api
node_api_app -->|"mounts routes"| node_alerts_api
node_api_app -->|"mounts routes"| node_cases_api
node_api_app -->|"mounts routes"| node_risk_api
node_api_app -->|"mounts routes"| node_analytics_api
node_transactions_api -->|"queries transactions"| node_transaction_service
node_transactions_api -->|"analyzes links"| node_link_analysis
node_transactions_api -->|"gets session"| node_database
node_alerts_api -->|"formats alerts"| node_risk_service
node_alerts_api -->|"gets session"| node_database
node_cases_api -->|"manages cases"| node_case_service
node_risk_api -->|"evaluates risk"| node_risk_service
node_analytics_api -->|"computes analytics"| node_analytics_service
node_analytics_api -->|"evaluates metrics"| node_evaluation_service
node_risk_service -->|"scores findings"| node_risk_engine
node_risk_service -->|"uses account links"| node_link_analysis
node_risk_service -->|"reads and writes"| node_entities
node_case_service -->|"analyzes linked accounts"| node_link_analysis
node_case_service -->|"uses risk scores"| node_risk_service
node_case_service -->|"reads and writes"| node_entities
node_analytics_service -->|"queries records"| node_entities
node_evaluation_service -->|"reads alerts"| node_entities
node_evaluation_service -->|"uses score limit"| node_risk_engine
node_evaluation_service -->|"reads labels"| node_ground_truth
node_seed_data -->|"checks data"| node_data_quality
node_seed_data -->|"creates records"| node_entities
node_data_quality -->|"checks rules"| node_risk_engine
node_entities -->|"maps records"| node_database
node_browser_user -->|"opens starter"| node_frontend

click node_api_app "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/main.py"
click node_transactions_api "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/transactions.py"
click node_alerts_api "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/alerts.py"
click node_cases_api "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/cases.py"
click node_risk_api "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/risk.py"
click node_analytics_api "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/analytics.py"
click node_transaction_service "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/transaction_service.py"
click node_link_analysis "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/link_analysis.py"
click node_risk_service "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/risk_service.py"
click node_risk_engine "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/risk_engine.py"
click node_case_service "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/case_service.py"
click node_analytics_service "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/analytics_service.py"
click node_evaluation_service "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/evaluation_service.py"
click node_data_quality "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/data_quality.py"
click node_seed_data "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/seed_data.py"
click node_database "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/database/session.py"
click node_entities "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/models/entities.py"
click node_ground_truth "https://github.com/yagnaakula229/yottaflex.ai-round4/tree/main/ground_truth"
click node_frontend "https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/frontend/src/App.jsx"

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_api_app,node_transactions_api,node_alerts_api,node_cases_api,node_risk_api,node_analytics_api,node_browser_user toneBlue
class node_transaction_service,node_link_analysis,node_risk_service,node_risk_engine toneAmber
class node_case_service toneMint
class node_analytics_service,node_evaluation_service,node_data_quality,node_seed_data,node_database,node_entities,node_ground_truth toneRose
class node_frontend,node_analyst toneIndigo
```

## Components

### API entry

- [FastAPI app](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/main.py): `backend/app/main.py`
- [Transaction routes](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/transactions.py): `backend/app/api/transactions.py`
- [Alert routes](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/alerts.py): `backend/app/api/alerts.py`
- [Case routes](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/cases.py): `backend/app/api/cases.py`
- [Risk routes](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/risk.py): `backend/app/api/risk.py`
- [Analytics routes](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/api/analytics.py): `backend/app/api/analytics.py`

### Risk analysis

- [Transaction queries](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/transaction_service.py): `backend/app/services/transaction_service.py`
- [Account links](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/link_analysis.py): `backend/app/services/link_analysis.py`
- [Risk evaluation](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/risk_service.py): `backend/app/services/risk_service.py`
- [Rule scoring](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/risk_engine.py): `backend/app/services/risk_engine.py`

### Analyst workflow

- [Case management](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/case_service.py): `backend/app/services/case_service.py`

### Data and evaluation

- [Analytics](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/analytics_service.py): `backend/app/services/analytics_service.py`
- [Ground-truth metrics](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/evaluation_service.py): `backend/app/services/evaluation_service.py`
- [Data quality](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/data_quality.py): `backend/app/services/data_quality.py`
- [Synthetic data](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/services/seed_data.py): `backend/app/services/seed_data.py`
- [Relational database](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/database/session.py): `backend/app/database/session.py`
- [Domain records](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/backend/app/models/entities.py): `backend/app/models/entities.py`
- [Ground-truth labels](https://github.com/yagnaakula229/yottaflex.ai-round4/tree/main/ground_truth): `ground_truth`

### Standalone frontend

- [Starter UI](https://github.com/yagnaakula229/yottaflex.ai-round4/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`

### Other components

- **Analyst**
- **Browser user**

## Connections

- Analyst → FastAPI app: requests API (evidence: `README.md`)
- FastAPI app → Transaction routes: mounts routes (evidence: `backend/app/main.py`)
- FastAPI app → Alert routes: mounts routes (evidence: `backend/app/main.py`)
- FastAPI app → Case routes: mounts routes (evidence: `backend/app/main.py`)
- FastAPI app → Risk routes: mounts routes (evidence: `backend/app/main.py`)
- FastAPI app → Analytics routes: mounts routes (evidence: `backend/app/main.py`)
- Transaction routes → Transaction queries: queries transactions (evidence: `backend/app/api/transactions.py`)
- Transaction routes → Account links: analyzes links (evidence: `backend/app/api/transactions.py`)
- Transaction routes → Relational database: gets session (evidence: `backend/app/api/transactions.py`)
- Alert routes → Risk evaluation: formats alerts (evidence: `backend/app/api/alerts.py`)
- Alert routes → Relational database: gets session (evidence: `backend/app/api/alerts.py`)
- Case routes → Case management: manages cases (evidence: `backend/app/api/cases.py`)
- Risk routes → Risk evaluation: evaluates risk (evidence: `backend/app/api/risk.py`)
- Analytics routes → Analytics: computes analytics (evidence: `backend/app/api/analytics.py`)
- Analytics routes → Ground-truth metrics: evaluates metrics (evidence: `backend/app/api/analytics.py`)
- Risk evaluation → Rule scoring: scores findings (evidence: `backend/app/services/risk_service.py`)
- Risk evaluation → Account links: uses account links (evidence: `backend/app/services/risk_service.py`)
- Risk evaluation → Domain records: reads and writes (evidence: `backend/app/services/risk_service.py`)
- Case management → Account links: analyzes linked accounts (evidence: `backend/app/services/case_service.py`)
- Case management → Risk evaluation: uses risk scores (evidence: `backend/app/services/case_service.py`)
- Case management → Domain records: reads and writes (evidence: `backend/app/services/case_service.py`)
- Analytics → Domain records: queries records (evidence: `backend/app/services/analytics_service.py`)
- Ground-truth metrics → Domain records: reads alerts (evidence: `backend/app/services/evaluation_service.py`)
- Ground-truth metrics → Rule scoring: uses score limit (evidence: `backend/app/services/evaluation_service.py`)
- Ground-truth metrics → Ground-truth labels: reads labels (evidence: `backend/app/services/evaluation_service.py`)
- Synthetic data → Data quality: checks data (evidence: `backend/app/services/seed_data.py`)
- Synthetic data → Domain records: creates records (evidence: `backend/app/services/seed_data.py`)
- Data quality → Rule scoring: checks rules (evidence: `backend/app/services/data_quality.py`)
- Domain records → Relational database: maps records (evidence: `backend/app/models/entities.py`)
- Browser user → Starter UI: opens starter (evidence: `README.md`)
