# sk-final-deepfake/backend-forensic architecture

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

- Interactive diagram: https://gitdiagram.com/sk-final-deepfake/backend-forensic
- Repository: https://github.com/sk-final-deepfake/backend-forensic

## Overview

ForenShield is a Spring Boot evidence-management prototype. Its documented user path is uploading a file through the evidence API into `uploads/original`; the source tree also identifies analysis-readiness, case, custody, verification, blockchain, reporting, and administrative capabilities. Most Java implementations were not sampled, so these are represented as components without speculative call or storage edges. The only asserted runtime relationship is the upload path documented in the README.

Main entry points: [`src/main/java/com/example/demo/controller/EvidenceController.java`](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/EvidenceController.java) (Evidence API), [`uploads/original`](https://github.com/sk-final-deepfake/backend-forensic/tree/main/uploads/original) (Uploaded Files)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_evidence["Evidence Intake"]
  node_evidence_api["Evidence API"]
  node_uploaded_files["Uploaded Files"]
  node_evidence_workflow["Evidence Workflow"]
end

subgraph group_analysis["Analysis"]
  node_readiness["Video Readiness<br/>[video_readiness.py]"]
  node_analysis_api["Analysis API"]
  node_analysis_messaging["Analysis Messaging"]
end

subgraph group_trust["Integrity And Reports"]
  node_case_api["Case Workflow"]
  node_compare_api["Evidence Compare"]
  node_verification_api["Evidence Verification"]
  node_blockchain_api["Blockchain Anchors"]
  node_reports["Evidence Reports"]
  node_public_verification["Public Verification"]
end

subgraph group_operations["Users And Operations"]
  node_auth["Authentication"]
  node_admin["Administration"]
  node_notifications["Notifications"]
end

node_user(("Uploader"))

node_user -->|"uploads to"| node_evidence_api
node_evidence_api -->|"stores files"| node_uploaded_files

click node_evidence_api "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/EvidenceController.java"
click node_uploaded_files "https://github.com/sk-final-deepfake/backend-forensic/tree/main/uploads/original"
click node_evidence_workflow "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/EvidenceWorkflowController.java"
click node_readiness "https://github.com/sk-final-deepfake/backend-forensic/blob/main/scripts/readiness/video_readiness.py"
click node_analysis_api "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/EvidenceController.java"
click node_analysis_messaging "https://github.com/sk-final-deepfake/backend-forensic/tree/main/src/main/java/com/example/demo/messaging"
click node_case_api "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/CaseController.java"
click node_compare_api "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/CompareController.java"
click node_verification_api "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/EvidenceVerificationController.java"
click node_blockchain_api "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/AdminBlockchainController.java"
click node_reports "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/ReportController.java"
click node_public_verification "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/PublicReportVerificationController.java"
click node_auth "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/AuthController.java"
click node_admin "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/AdminDashboardController.java"
click node_notifications "https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/NotificationController.java"

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_evidence_api,node_uploaded_files,node_evidence_workflow toneBlue
class node_readiness,node_analysis_api,node_analysis_messaging toneAmber
class node_case_api,node_compare_api,node_verification_api,node_blockchain_api,node_reports,node_public_verification toneMint
class node_auth,node_admin,node_notifications toneRose
class node_user toneIndigo
```

## Components

### Evidence Intake

- [Evidence API](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/EvidenceController.java): `src/main/java/com/example/demo/controller/EvidenceController.java`
- [Uploaded Files](https://github.com/sk-final-deepfake/backend-forensic/tree/main/uploads/original): `uploads/original`
- [Evidence Workflow](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/EvidenceWorkflowController.java): `src/main/java/com/example/demo/controller/EvidenceWorkflowController.java`

### Analysis

- [Video Readiness](https://github.com/sk-final-deepfake/backend-forensic/blob/main/scripts/readiness/video_readiness.py): `scripts/readiness/video_readiness.py`
- [Analysis API](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/EvidenceController.java): `src/main/java/com/example/demo/controller/EvidenceController.java`
- [Analysis Messaging](https://github.com/sk-final-deepfake/backend-forensic/tree/main/src/main/java/com/example/demo/messaging): `src/main/java/com/example/demo/messaging`

### Integrity And Reports

- [Case Workflow](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/CaseController.java): `src/main/java/com/example/demo/controller/CaseController.java`
- [Evidence Compare](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/CompareController.java): `src/main/java/com/example/demo/controller/CompareController.java`
- [Evidence Verification](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/EvidenceVerificationController.java): `src/main/java/com/example/demo/controller/EvidenceVerificationController.java`
- [Blockchain Anchors](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/AdminBlockchainController.java): `src/main/java/com/example/demo/controller/AdminBlockchainController.java`
- [Evidence Reports](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/ReportController.java): `src/main/java/com/example/demo/controller/ReportController.java`
- [Public Verification](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/PublicReportVerificationController.java): `src/main/java/com/example/demo/controller/PublicReportVerificationController.java`

### Users And Operations

- [Authentication](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/AuthController.java): `src/main/java/com/example/demo/controller/AuthController.java`
- [Administration](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/AdminDashboardController.java): `src/main/java/com/example/demo/controller/AdminDashboardController.java`
- [Notifications](https://github.com/sk-final-deepfake/backend-forensic/blob/main/src/main/java/com/example/demo/controller/NotificationController.java): `src/main/java/com/example/demo/controller/NotificationController.java`

### Other components

- **Uploader**

## Connections

- Uploader → Evidence API: uploads to (evidence: `README.md`)
- Evidence API → Uploaded Files: stores files (evidence: `README.md`)
