# parshotam94/cv_assurance architecture

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

- Interactive diagram: https://gitdiagram.com/parshotam94/cv_assurance
- Repository: https://github.com/parshotam94/cv_assurance

## Overview

VisionTrust Assurance is an offline computer-vision integrity and provenance system. A local user operates the dashboard or API to assess datasets and models, check distribution drift, and run inference; inference records are signed and can be verified against tampering or replay. Findings support risk disposition, audit and compliance, and PDF/JSON/CSV dossiers. The README documents these capability areas, while sampled source confirms application routing, database/repository behavior, and inference verification flows; some internal wiring is therefore left unspecified.

Main entry points: [`backend/app/main.py`](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/main.py) (FastAPI app), [`backend/app/api/inference.py`](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/inference.py) (Inference API), [`backend/app/api/datasets.py`](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/datasets.py) (Dataset API), [`backend/app/api/models.py`](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/models.py) (Model API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Local interface"]
  node_app["FastAPI app<br/>[main.py]"]
  node_dataset_api["Dataset API<br/>[datasets.py]"]
  node_model_api["Model API<br/>[models.py]"]
  node_distribution_api["Distribution API<br/>[distribution.py]"]
  node_inference_api["Inference API<br/>[inference.py]"]
  node_frontend["Offline dashboard<br/>[api.js]"]
end

subgraph group_assurance["Asset assurance"]
  node_dataset_analysis["Dataset analysis"]
  node_model_analysis["Model analysis"]
  node_drift_analysis["Distribution analysis"]
end

subgraph group_trust["Provenance and audit"]
  node_inference_core["Provenance verification"]
  node_signatures["Signing keys<br/>[signatures.py]"]
  node_audit["Audit ledger<br/>[audit.py]"]
end

subgraph group_records["Risk and reporting"]
  node_risk["Risk engine<br/>[risk_engine.py]"]
  node_findings_api["Findings API<br/>[findings.py]"]
  node_compliance_api["Compliance API<br/>[compliance.py]"]
  node_reports_api["Reports API<br/>[reports.py]"]
  node_reporting["Dossier generation"]
  node_repository["Repository layer<br/>[repository.py]"]
  node_database[("SQLite database<br/>[database.py]")]
end

node_user(("Local user"))

node_user -->|"uses"| node_frontend
node_frontend -->|"API requests"| node_app
node_user -->|"API requests"| node_app
node_app -->|"routes"| node_dataset_api
node_app -->|"routes"| node_model_api
node_app -->|"routes"| node_distribution_api
node_app -->|"routes"| node_inference_api
node_app -->|"routes"| node_findings_api
node_app -->|"routes"| node_compliance_api
node_app -->|"routes"| node_reports_api
node_dataset_api -->|"analyzes"| node_dataset_analysis
node_model_api -->|"inspects"| node_model_analysis
node_distribution_api -->|"detects drift"| node_drift_analysis
node_inference_api -->|"verifies records"| node_inference_core
node_inference_api -->|"signs records"| node_signatures
node_inference_api -->|"stores records"| node_repository
node_findings_api -->|"scores findings"| node_risk
node_reports_api -->|"generates dossiers"| node_reporting
node_repository -->|"reads and writes"| node_database

click node_app "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/main.py"
click node_dataset_api "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/datasets.py"
click node_model_api "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/models.py"
click node_distribution_api "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/distribution.py"
click node_inference_api "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/inference.py"
click node_frontend "https://github.com/parshotam94/cv_assurance/blob/main/frontend/js/api.js"
click node_dataset_analysis "https://github.com/parshotam94/cv_assurance/tree/main/backend/app/dataset"
click node_model_analysis "https://github.com/parshotam94/cv_assurance/tree/main/backend/app/model"
click node_drift_analysis "https://github.com/parshotam94/cv_assurance/tree/main/backend/app/distribution"
click node_inference_core "https://github.com/parshotam94/cv_assurance/tree/main/backend/app/inference"
click node_signatures "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/core/signatures.py"
click node_audit "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/core/audit.py"
click node_risk "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/core/risk_engine.py"
click node_findings_api "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/findings.py"
click node_compliance_api "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/compliance.py"
click node_reports_api "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/reports.py"
click node_reporting "https://github.com/parshotam94/cv_assurance/tree/main/backend/app/reports"
click node_repository "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/database/repository.py"
click node_database "https://github.com/parshotam94/cv_assurance/blob/main/backend/app/database/database.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,node_dataset_api,node_model_api,node_distribution_api,node_inference_api,node_frontend,node_user toneBlue
class node_dataset_analysis,node_model_analysis,node_drift_analysis toneAmber
class node_inference_core,node_signatures,node_audit toneMint
class node_risk,node_findings_api,node_compliance_api,node_reports_api,node_reporting,node_repository,node_database toneRose
```

## Components

### Local interface

- [FastAPI app](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/main.py): `backend/app/main.py`
- [Dataset API](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/datasets.py): `backend/app/api/datasets.py`
- [Model API](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/models.py): `backend/app/api/models.py`
- [Distribution API](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/distribution.py): `backend/app/api/distribution.py`
- [Inference API](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/inference.py): `backend/app/api/inference.py`
- [Offline dashboard](https://github.com/parshotam94/cv_assurance/blob/main/frontend/js/api.js): `frontend/js/api.js`

### Asset assurance

- [Dataset analysis](https://github.com/parshotam94/cv_assurance/tree/main/backend/app/dataset): `backend/app/dataset`
- [Model analysis](https://github.com/parshotam94/cv_assurance/tree/main/backend/app/model): `backend/app/model`
- [Distribution analysis](https://github.com/parshotam94/cv_assurance/tree/main/backend/app/distribution): `backend/app/distribution`

### Provenance and audit

- [Provenance verification](https://github.com/parshotam94/cv_assurance/tree/main/backend/app/inference): `backend/app/inference`
- [Signing keys](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/core/signatures.py): `backend/app/core/signatures.py`
- [Audit ledger](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/core/audit.py): `backend/app/core/audit.py`

### Risk and reporting

- [Risk engine](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/core/risk_engine.py): `backend/app/core/risk_engine.py`
- [Findings API](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/findings.py): `backend/app/api/findings.py`
- [Compliance API](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/compliance.py): `backend/app/api/compliance.py`
- [Reports API](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/api/reports.py): `backend/app/api/reports.py`
- [Dossier generation](https://github.com/parshotam94/cv_assurance/tree/main/backend/app/reports): `backend/app/reports`
- [Repository layer](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/database/repository.py): `backend/app/database/repository.py`
- [SQLite database](https://github.com/parshotam94/cv_assurance/blob/main/backend/app/database/database.py): `backend/app/database/database.py`

### Other components

- **Local user**

## Connections

- Local user → Offline dashboard: uses
- Offline dashboard → FastAPI app: API requests
- Local user → FastAPI app: API requests
- FastAPI app → Dataset API: routes
- FastAPI app → Model API: routes
- FastAPI app → Distribution API: routes
- FastAPI app → Inference API: routes
- FastAPI app → Findings API: routes
- FastAPI app → Compliance API: routes
- FastAPI app → Reports API: routes
- Dataset API → Dataset analysis: analyzes
- Model API → Model analysis: inspects
- Distribution API → Distribution analysis: detects drift
- Inference API → Provenance verification: verifies records
- Inference API → Signing keys: signs records
- Inference API → Repository layer: stores records
- Findings API → Risk engine: scores findings
- Reports API → Dossier generation: generates dossiers
- Repository layer → SQLite database: reads and writes
