# ssky66/clarity-platform architecture

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

- Interactive diagram: https://gitdiagram.com/ssky66/clarity-platform
- Repository: https://github.com/ssky66/clarity-platform

## Overview

Clarity is an industrial-vision model acceptance and fulfillment platform: manufacturers define an audit task and provide a test set, suppliers join and provide an inference package, and the platform audits the model before staged on-site acceptance and settlement. The Vue role dashboards call a FastAPI backend whose routers handle task preparation, audit outcomes, disputes, evidence, and reports; the backend also integrates with blockchain services and persistent storage. The README describes private off-chain audit and IPFS storage, but the supplied excerpts do not establish their runtime wiring or audit algorithm implementation.

Main entry points: [`backend/main.py`](https://github.com/ssky66/clarity-platform/blob/main/backend/main.py) (FastAPI application), [`backend/models.py`](https://github.com/ssky66/clarity-platform/blob/main/backend/models.py) (Domain records), [`frontend/src/api/tasks.js`](https://github.com/ssky66/clarity-platform/blob/main/frontend/src/api/tasks.js) (Task API client), [`frontend/src/views/ManufacturerDashboard.vue`](https://github.com/ssky66/clarity-platform/blob/main/frontend/src/views/ManufacturerDashboard.vue) (Manufacturer dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Role-based frontend"]
  node_manufacturer_ui["Manufacturer dashboard"]
  node_supplier_ui["Supplier dashboard"]
  node_auditor_ui["Audit dashboards"]
  node_task_api["Task API client<br/>[tasks.js]"]
  node_auth_api["Account API client<br/>[auth.js]"]
  node_request["HTTP request layer<br/>[request.js]"]
end

subgraph group_api["API and task workflow"]
  node_api_app["FastAPI application<br/>[main.py]"]
  node_auth["Identity and access<br/>[auth.py]"]
  node_tasks["Task creation and uploads<br/>[tasks_core.py]"]
  node_preparation["Preparation and staking<br/>[prepare.py]"]
end

subgraph group_resolution["Audit and resolution"]
  node_audit["Online audit<br/>[audit.py]"]
  node_onsite["On-site acceptance<br/>[onsite.py]"]
  node_settlement["Settlement<br/>[settlement.py]"]
  node_disputes["Appeals and arbitration<br/>[appeals.py]"]
  node_arbitration["Arbitration handling<br/>[arbitration.py]"]
  node_rectification["Rectification<br/>[rectification.py]"]
  node_evidence["Evidence and reports<br/>[evidence.py]"]
end

subgraph group_integrations["Persistence and integrations"]
  node_chain_events["Chain event queries<br/>[chain_events.py]"]
  node_data_models["Domain records<br/>[models.py]"]
  node_blockchain["Blockchain client"]
  node_audit_worker["Audit worker<br/>[audit_worker.py]"]
end

node_manufacturer(("Manufacturer"))
node_supplier(("Supplier"))
node_auditor(("Auditor / admin"))
node_mysql[("Relational database")]
node_chain_service["WeBASE / FISCO BCOS"]
node_ipfs["IPFS storage"]
node_audit_result["Audit and fulfillment outcome"]

node_manufacturer -->|"uses"| node_manufacturer_ui
node_supplier -->|"uses"| node_supplier_ui
node_auditor -->|"uses"| node_auditor_ui
node_manufacturer_ui -->|"requests tasks"| node_task_api
node_supplier_ui -->|"requests tasks"| node_task_api
node_auditor_ui -->|"requests reports"| node_task_api
node_manufacturer_ui -->|"requests account"| node_auth_api
node_supplier_ui -->|"requests account"| node_auth_api
node_task_api -->|"sends requests"| node_request
node_auth_api -->|"sends requests"| node_request
node_request -->|"calls API"| node_api_app
node_api_app -->|"registers routes"| node_auth
node_api_app -->|"registers routes"| node_tasks
node_api_app -->|"registers routes"| node_preparation
node_api_app -->|"registers routes"| node_audit
node_api_app -->|"registers routes"| node_onsite
node_api_app -->|"registers routes"| node_settlement
node_api_app -->|"registers routes"| node_disputes
node_api_app -->|"registers routes"| node_arbitration
node_api_app -->|"registers routes"| node_rectification
node_api_app -->|"registers routes"| node_evidence
node_api_app -->|"registers routes"| node_chain_events
node_auth -->|"creates wallets"| node_blockchain
node_tasks -->|"reads and writes"| node_data_models
node_preparation -->|"reads and writes"| node_data_models
node_audit -->|"reads and writes"| node_data_models
node_onsite -->|"reads and writes"| node_data_models
node_settlement -->|"reads and writes"| node_data_models
node_disputes -->|"reads and writes"| node_data_models
node_arbitration -->|"reads and writes"| node_data_models
node_rectification -->|"reads and writes"| node_data_models
node_evidence -->|"reads evidence"| node_data_models
node_chain_events -->|"reads events"| node_data_models
node_data_models -->|"persists records"| node_mysql
node_blockchain -->|"queries and submits"| node_chain_service
node_audit_worker -.->|"produces audit"| node_audit_result
node_audit_result -.->|"audit outcome"| node_audit
node_tasks -.->|"stores encrypted files"| node_ipfs
node_evidence -->|"serves evidence"| node_audit_result
node_settlement -->|"determines outcome"| node_audit_result

click node_manufacturer_ui "https://github.com/ssky66/clarity-platform/blob/main/frontend/src/views/ManufacturerDashboard.vue"
click node_supplier_ui "https://github.com/ssky66/clarity-platform/blob/main/frontend/src/views/SupplierDashboard.vue"
click node_auditor_ui "https://github.com/ssky66/clarity-platform/blob/main/frontend/src/views/AuditorDashboard.vue"
click node_task_api "https://github.com/ssky66/clarity-platform/blob/main/frontend/src/api/tasks.js"
click node_auth_api "https://github.com/ssky66/clarity-platform/blob/main/frontend/src/api/auth.js"
click node_request "https://github.com/ssky66/clarity-platform/blob/main/frontend/src/api/request.js"
click node_api_app "https://github.com/ssky66/clarity-platform/blob/main/backend/main.py"
click node_auth "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/auth.py"
click node_tasks "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/tasks_core.py"
click node_preparation "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/prepare.py"
click node_audit "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/audit.py"
click node_onsite "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/onsite.py"
click node_settlement "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/settlement.py"
click node_disputes "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/appeals.py"
click node_arbitration "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/arbitration.py"
click node_rectification "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/rectification.py"
click node_evidence "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/evidence.py"
click node_chain_events "https://github.com/ssky66/clarity-platform/blob/main/backend/routers/chain_events.py"
click node_data_models "https://github.com/ssky66/clarity-platform/blob/main/backend/models.py"
click node_blockchain "https://github.com/ssky66/clarity-platform/blob/main/backend/blockchain_client.py"
click node_audit_worker "https://github.com/ssky66/clarity-platform/blob/main/backend/scripts/audit_worker.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_manufacturer_ui,node_supplier_ui,node_auditor_ui,node_task_api,node_auth_api,node_request toneBlue
class node_api_app,node_auth,node_tasks,node_preparation,node_mysql,node_ipfs toneAmber
class node_audit,node_onsite,node_settlement,node_disputes,node_arbitration,node_rectification,node_evidence toneMint
class node_chain_events,node_data_models,node_blockchain,node_audit_worker toneRose
class node_manufacturer,node_supplier,node_auditor,node_chain_service,node_audit_result toneIndigo
```

## Components

### Role-based frontend

- [Manufacturer dashboard](https://github.com/ssky66/clarity-platform/blob/main/frontend/src/views/ManufacturerDashboard.vue): `frontend/src/views/ManufacturerDashboard.vue`
- [Supplier dashboard](https://github.com/ssky66/clarity-platform/blob/main/frontend/src/views/SupplierDashboard.vue): `frontend/src/views/SupplierDashboard.vue`
- [Audit dashboards](https://github.com/ssky66/clarity-platform/blob/main/frontend/src/views/AuditorDashboard.vue): `frontend/src/views/AuditorDashboard.vue`
- [Task API client](https://github.com/ssky66/clarity-platform/blob/main/frontend/src/api/tasks.js): `frontend/src/api/tasks.js`
- [Account API client](https://github.com/ssky66/clarity-platform/blob/main/frontend/src/api/auth.js): `frontend/src/api/auth.js`
- [HTTP request layer](https://github.com/ssky66/clarity-platform/blob/main/frontend/src/api/request.js): `frontend/src/api/request.js`

### API and task workflow

- [FastAPI application](https://github.com/ssky66/clarity-platform/blob/main/backend/main.py): `backend/main.py`
- [Identity and access](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/auth.py): `backend/routers/auth.py`
- [Task creation and uploads](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/tasks_core.py): `backend/routers/tasks_core.py`
- [Preparation and staking](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/prepare.py): `backend/routers/prepare.py`

### Audit and resolution

- [Online audit](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/audit.py): `backend/routers/audit.py`
- [On-site acceptance](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/onsite.py): `backend/routers/onsite.py`
- [Settlement](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/settlement.py): `backend/routers/settlement.py`
- [Appeals and arbitration](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/appeals.py): `backend/routers/appeals.py`
- [Arbitration handling](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/arbitration.py): `backend/routers/arbitration.py`
- [Rectification](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/rectification.py): `backend/routers/rectification.py`
- [Evidence and reports](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/evidence.py): `backend/routers/evidence.py`

### Persistence and integrations

- [Chain event queries](https://github.com/ssky66/clarity-platform/blob/main/backend/routers/chain_events.py): `backend/routers/chain_events.py`
- [Domain records](https://github.com/ssky66/clarity-platform/blob/main/backend/models.py): `backend/models.py`
- [Blockchain client](https://github.com/ssky66/clarity-platform/blob/main/backend/blockchain_client.py): `backend/blockchain_client.py`
- [Audit worker](https://github.com/ssky66/clarity-platform/blob/main/backend/scripts/audit_worker.py): `backend/scripts/audit_worker.py`

### Other components

- **Manufacturer**
- **Supplier**
- **Auditor / admin**
- **Relational database**
- **WeBASE / FISCO BCOS**
- **IPFS storage**
- **Audit and fulfillment outcome**

## Connections

- Manufacturer → Manufacturer dashboard: uses
- Supplier → Supplier dashboard: uses
- Auditor / admin → Audit dashboards: uses
- Manufacturer dashboard → Task API client: requests tasks
- Supplier dashboard → Task API client: requests tasks
- Audit dashboards → Task API client: requests reports
- Manufacturer dashboard → Account API client: requests account
- Supplier dashboard → Account API client: requests account
- Task API client → HTTP request layer: sends requests
- Account API client → HTTP request layer: sends requests
- HTTP request layer → FastAPI application: calls API
- FastAPI application → Identity and access: registers routes
- FastAPI application → Task creation and uploads: registers routes
- FastAPI application → Preparation and staking: registers routes
- FastAPI application → Online audit: registers routes
- FastAPI application → On-site acceptance: registers routes
- FastAPI application → Settlement: registers routes
- FastAPI application → Appeals and arbitration: registers routes
- FastAPI application → Arbitration handling: registers routes
- FastAPI application → Rectification: registers routes
- FastAPI application → Evidence and reports: registers routes
- FastAPI application → Chain event queries: registers routes
- Identity and access → Blockchain client: creates wallets
- Task creation and uploads → Domain records: reads and writes
- Preparation and staking → Domain records: reads and writes
- Online audit → Domain records: reads and writes
- On-site acceptance → Domain records: reads and writes
- Settlement → Domain records: reads and writes
- Appeals and arbitration → Domain records: reads and writes
- Arbitration handling → Domain records: reads and writes
- Rectification → Domain records: reads and writes
- Evidence and reports → Domain records: reads evidence
- Chain event queries → Domain records: reads events
- Domain records → Relational database: persists records
- Blockchain client → WeBASE / FISCO BCOS: queries and submits
- Audit worker → Audit and fulfillment outcome: produces audit
- Audit and fulfillment outcome → Online audit: audit outcome
- Task creation and uploads → IPFS storage: stores encrypted files
- Evidence and reports → Audit and fulfillment outcome: serves evidence
- Settlement → Audit and fulfillment outcome: determines outcome
