# jaicode25/delivery-verification-system architecture

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

- Interactive diagram: https://gitdiagram.com/jaicode25/delivery-verification-system
- Repository: https://github.com/jaicode25/delivery-verification-system

## Overview

This backend supports delivery/order verification from uploaded evidence: users can register orders and reference images, submit barcode or media evidence, inspect matching and condition/quantity analyses, and generate verification reports. Its distinct stages include barcode/order checks, shipping-label parsing and comparison, product matching, quantity and condition assessment, and report generation. The graph includes the persistence layer and evidence-processing services. No README was provided; relationships to unsampled modules rely on the SOURCE INDEX, so only documented or indexed links are shown.

Main entry points: [`backend/app/main.py`](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/main.py) (FastAPI app), [`backend/app/database/connection.py`](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/database/connection.py) (Database sessions), [`backend/app/api/verification.py`](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/verification.py) (Verification API), [`backend/app/services/analysis_service.py`](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/analysis_service.py) (Media analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API workflows"]
  node_app["FastAPI app<br/>[main.py]"]
  node_analysis_api["Media analysis API<br/>[analysis.py]"]
  node_orders_api["Orders API<br/>[orders.py]"]
  node_verify_api["Verification API<br/>[verification.py]"]
  node_product_api["Product matching API"]
  node_quantity_api["Quantity API"]
  node_condition_api["Condition API"]
  node_reports_api["Reports API<br/>[reports.py]"]
end

subgraph group_verification["Order verification"]
  node_orders["Order management<br/>[order_service.py]"]
  node_references["Reference images"]
  node_analysis["Media analysis"]
  node_barcode["Barcode verification"]
  node_label_parse["Label extraction<br/>[label_parser.py]"]
  node_label_check["Label comparison"]
end

subgraph group_evidence["Evidence analysis"]
  node_product_match["Product matching"]
  node_quantity["Quantity verification"]
  node_condition["Condition assessment"]
  node_evidence_service["Evidence selection"]
  node_frames["Frame extraction<br/>[frame_extractor.py]"]
  node_files["Upload handling<br/>[file_handler.py]"]
  node_ocr["OCR processing<br/>[ocr_service.py]"]
  node_similarity["Image similarity"]
end

subgraph group_persistence["Persistence and reports"]
  node_models[("Persistent records<br/>[models.py]")]
  node_database["Database sessions<br/>[connection.py]"]
  node_reports["Report generation<br/>[report_service.py]"]
end

node_user(("Client"))

node_user -->|"uses API"| node_app
node_app -->|"registers routes"| node_analysis_api
node_app -->|"registers routes"| node_orders_api
node_app -->|"registers routes"| node_verify_api
node_app -->|"registers routes"| node_product_api
node_app -->|"registers routes"| node_quantity_api
node_app -->|"registers routes"| node_condition_api
node_app -->|"registers routes"| node_reports_api
node_orders_api -->|"manages orders"| node_orders
node_orders_api -->|"manages references"| node_references
node_analysis_api -->|"handles uploads"| node_files
node_analysis_api -->|"starts analysis"| node_analysis
node_analysis -->|"verifies codes"| node_barcode
node_analysis -->|"parses labels"| node_label_parse
node_analysis -->|"checks labels"| node_label_check
node_analysis -->|"looks up orders"| node_orders
node_verify_api -->|"verifies evidence"| node_barcode
node_verify_api -->|"parses label"| node_label_parse
node_verify_api -->|"compares label"| node_label_check
node_verify_api -->|"retrieves order"| node_orders
node_barcode -->|"finds order"| node_orders
node_product_api -->|"matches product"| node_product_match
node_product_api -->|"manages references"| node_references
node_product_match -->|"scores images"| node_similarity
node_product_match -->|"extracts text"| node_ocr
node_product_match -->|"loads references"| node_references
node_quantity_api -->|"checks quantity"| node_quantity
node_quantity_api -->|"selects evidence"| node_evidence_service
node_condition_api -->|"assesses condition"| node_condition
node_condition_api -->|"selects evidence"| node_evidence_service
node_evidence_service -->|"extracts frames"| node_frames
node_reports_api -->|"generates reports"| node_reports
node_analysis_api -->|"opens session"| node_database
node_orders_api -->|"opens session"| node_database
node_verify_api -->|"opens session"| node_database
node_product_api -->|"opens session"| node_database
node_quantity_api -->|"opens session"| node_database
node_condition_api -->|"opens session"| node_database
node_reports_api -->|"opens session"| node_database
node_database -->|"maps records"| node_models
node_reports -->|"reads records"| node_models

click node_app "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/main.py"
click node_analysis_api "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/analysis.py"
click node_orders_api "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/orders.py"
click node_verify_api "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/verification.py"
click node_product_api "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/product_matching.py"
click node_quantity_api "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/quantity_verification.py"
click node_condition_api "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/condition_analysis.py"
click node_reports_api "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/reports.py"
click node_orders "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/order_service.py"
click node_references "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/reference_service.py"
click node_analysis "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/analysis_service.py"
click node_barcode "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/verification_engine.py"
click node_label_parse "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/label_parser.py"
click node_label_check "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/label_verification_service.py"
click node_product_match "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/product_matching_service.py"
click node_quantity "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/quantity_verification_service.py"
click node_condition "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/condition_analysis_service.py"
click node_evidence_service "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/evidence_service.py"
click node_frames "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/frame_extractor.py"
click node_files "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/file_handler.py"
click node_ocr "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/ocr_service.py"
click node_similarity "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/image_similarity.py"
click node_models "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/database/models.py"
click node_database "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/database/connection.py"
click node_reports "https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/report_service.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_analysis_api,node_orders_api,node_verify_api,node_product_api,node_quantity_api,node_condition_api,node_reports_api,node_user toneBlue
class node_orders,node_references,node_analysis,node_barcode,node_label_parse,node_label_check toneAmber
class node_product_match,node_quantity,node_condition,node_evidence_service,node_frames,node_files,node_ocr,node_similarity toneMint
class node_models,node_database,node_reports toneRose
```

## Components

### API workflows

- [FastAPI app](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/main.py): `backend/app/main.py`
- [Media analysis API](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/analysis.py): `backend/app/api/analysis.py`
- [Orders API](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/orders.py): `backend/app/api/orders.py`
- [Verification API](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/verification.py): `backend/app/api/verification.py`
- [Product matching API](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/product_matching.py): `backend/app/api/product_matching.py`
- [Quantity API](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/quantity_verification.py): `backend/app/api/quantity_verification.py`
- [Condition API](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/condition_analysis.py): `backend/app/api/condition_analysis.py`
- [Reports API](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/api/reports.py): `backend/app/api/reports.py`

### Order verification

- [Order management](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/order_service.py): `backend/app/services/order_service.py`
- [Reference images](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/reference_service.py): `backend/app/services/reference_service.py`
- [Media analysis](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/analysis_service.py): `backend/app/services/analysis_service.py`
- [Barcode verification](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/verification_engine.py): `backend/app/services/verification_engine.py`
- [Label extraction](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/label_parser.py): `backend/app/services/label_parser.py`
- [Label comparison](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/label_verification_service.py): `backend/app/services/label_verification_service.py`

### Evidence analysis

- [Product matching](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/product_matching_service.py): `backend/app/services/product_matching_service.py`
- [Quantity verification](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/quantity_verification_service.py): `backend/app/services/quantity_verification_service.py`
- [Condition assessment](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/condition_analysis_service.py): `backend/app/services/condition_analysis_service.py`
- [Evidence selection](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/evidence_service.py): `backend/app/services/evidence_service.py`
- [Frame extraction](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/frame_extractor.py): `backend/app/services/frame_extractor.py`
- [Upload handling](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/file_handler.py): `backend/app/services/file_handler.py`
- [OCR processing](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/ocr_service.py): `backend/app/services/ocr_service.py`
- [Image similarity](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/image_similarity.py): `backend/app/services/image_similarity.py`

### Persistence and reports

- [Persistent records](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/database/models.py): `backend/app/database/models.py`
- [Database sessions](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/database/connection.py): `backend/app/database/connection.py`
- [Report generation](https://github.com/jaicode25/delivery-verification-system/blob/backend-integration/backend/app/services/report_service.py): `backend/app/services/report_service.py`

### Other components

- **Client**

## Connections

- Client → FastAPI app: uses API
- FastAPI app → Media analysis API: registers routes (evidence: `backend/app/main.py`)
- FastAPI app → Orders API: registers routes (evidence: `backend/app/main.py`)
- FastAPI app → Verification API: registers routes (evidence: `backend/app/main.py`)
- FastAPI app → Product matching API: registers routes (evidence: `backend/app/main.py`)
- FastAPI app → Quantity API: registers routes (evidence: `backend/app/main.py`)
- FastAPI app → Condition API: registers routes (evidence: `backend/app/main.py`)
- FastAPI app → Reports API: registers routes (evidence: `backend/app/main.py`)
- Orders API → Order management: manages orders (evidence: `backend/app/api/orders.py`)
- Orders API → Reference images: manages references (evidence: `backend/app/api/orders.py`)
- Media analysis API → Upload handling: handles uploads (evidence: `backend/app/api/analysis.py`)
- Media analysis API → Media analysis: starts analysis (evidence: `backend/app/api/analysis.py`)
- Media analysis → Barcode verification: verifies codes (evidence: `backend/app/services/analysis_service.py`)
- Media analysis → Label extraction: parses labels (evidence: `backend/app/services/analysis_service.py`)
- Media analysis → Label comparison: checks labels (evidence: `backend/app/services/analysis_service.py`)
- Media analysis → Order management: looks up orders (evidence: `backend/app/services/analysis_service.py`)
- Verification API → Barcode verification: verifies evidence (evidence: `backend/app/api/verification.py`)
- Verification API → Label extraction: parses label (evidence: `backend/app/api/verification.py`)
- Verification API → Label comparison: compares label (evidence: `backend/app/api/verification.py`)
- Verification API → Order management: retrieves order (evidence: `backend/app/api/verification.py`)
- Barcode verification → Order management: finds order (evidence: `backend/app/services/verification_engine.py`)
- Product matching API → Product matching: matches product (evidence: `backend/app/api/product_matching.py`)
- Product matching API → Reference images: manages references (evidence: `backend/app/api/product_matching.py`)
- Product matching → Image similarity: scores images (evidence: `backend/app/services/product_matching_service.py`)
- Product matching → OCR processing: extracts text (evidence: `backend/app/services/product_matching_service.py`)
- Product matching → Reference images: loads references (evidence: `backend/app/services/product_matching_service.py`)
- Quantity API → Quantity verification: checks quantity (evidence: `backend/app/api/quantity_verification.py`)
- Quantity API → Evidence selection: selects evidence (evidence: `backend/app/api/quantity_verification.py`)
- Condition API → Condition assessment: assesses condition (evidence: `backend/app/api/condition_analysis.py`)
- Condition API → Evidence selection: selects evidence (evidence: `backend/app/api/condition_analysis.py`)
- Evidence selection → Frame extraction: extracts frames (evidence: `backend/app/services/evidence_service.py`)
- Reports API → Report generation: generates reports (evidence: `backend/app/api/reports.py`)
- Media analysis API → Database sessions: opens session (evidence: `backend/app/api/analysis.py`)
- Orders API → Database sessions: opens session (evidence: `backend/app/api/orders.py`)
- Verification API → Database sessions: opens session (evidence: `backend/app/api/verification.py`)
- Product matching API → Database sessions: opens session (evidence: `backend/app/api/product_matching.py`)
- Quantity API → Database sessions: opens session (evidence: `backend/app/api/quantity_verification.py`)
- Condition API → Database sessions: opens session (evidence: `backend/app/api/condition_analysis.py`)
- Reports API → Database sessions: opens session (evidence: `backend/app/api/reports.py`)
- Database sessions → Persistent records: maps records (evidence: `backend/app/database/models.py`)
- Report generation → Persistent records: reads records (evidence: `backend/app/services/report_service.py`)
