# riteshd11/secure-digital-document-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/riteshd11/secure-digital-document-management-system
- Repository: https://github.com/riteshd11/secure-digital-document-management-system

## Overview

Secure-DMS is a case-oriented evidence document system: users submit files, which the backend validates and scans, fingerprints and signs, stores as objects with indexed metadata, and audits. Retrieval checks stored content against its integrity metadata and signature before delivery. The README also documents version/type locking and forensic auditing; the tree indicates access control, identity, search, face verification, timestamps, and blockchain custody features. Upload, storage, cryptography, and audit wiring is supported by sampled source and README; several other subsystem links are omitted where invocation details were not sampled.

Main entry points: [`backend/src/main/java/com/security_management/backend/service/DocumentUploadService.java`](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentUploadService.java) (Upload pipeline), [`backend/src/main/java/com/security_management/backend/controller/DocumentController.java`](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/controller/DocumentController.java) (Document API), [`backend/src/main/java/com/security_management/backend/service/DocumentDownloadService.java`](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentDownloadService.java) (Download service), [`backend/src/main/java/com/security_management/backend/service/DocumentVerificationService.java`](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentVerificationService.java) (Document verification)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["User interface"]
  node_web["Web application<br/>[page.tsx]"]
  node_api_client["API client<br/>[api.js]"]
end

subgraph group_api["Backend API"]
  node_document_api["Document API"]
  node_access_api["Access API"]
  node_upload["Upload pipeline"]
  node_download["Download service"]
  node_verification["Document verification"]
  node_access_service["Access control"]
  node_search["Document search"]
  node_face["Face verification"]
end

subgraph group_security["Document security"]
  node_validation["File validation"]
  node_malware["Malware scanning"]
  node_hash["Hashing<br/>[HashService.java]"]
  node_signature["Digital signatures"]
  node_timestamp["Trusted timestamp"]
  node_encryption["Encryption services"]
end

subgraph group_records["Records and integrations"]
  node_storage["Storage abstraction"]
  node_minio["MinIO storage"]
  node_document_repo["Document metadata"]
  node_audit["Audit service<br/>[AuditService.java]"]
  node_audit_repo["Audit records"]
  node_blockchain["Custody ledger"]
  node_fabric["Fabric chaincode"]
end

node_user(("User"))
node_minio_service[("MinIO S3")]
node_mysql[("MySQL")]
node_fastapi["Search service"]

node_user -->|"uses"| node_web
node_web -->|"submits requests"| node_api_client
node_api_client -->|"calls"| node_document_api
node_document_api -->|"uploads"| node_upload
node_document_api -->|"requests files"| node_download
node_document_api -->|"requests checks"| node_verification
node_access_api -->|"manages access"| node_access_service
node_upload -->|"validates"| node_validation
node_upload -->|"scans"| node_malware
node_upload -->|"fingerprints"| node_hash
node_upload -->|"signs"| node_signature
node_upload -->|"timestamps"| node_timestamp
node_upload -->|"stores object"| node_storage
node_upload -->|"saves metadata"| node_document_repo
node_upload -->|"records event"| node_audit
node_upload -.->|"anchors record"| node_blockchain
node_storage -->|"implemented by"| node_minio
node_minio -->|"stores objects"| node_minio_service
node_document_repo -->|"persists metadata"| node_mysql
node_download -->|"retrieves object"| node_storage
node_download -->|"reads metadata"| node_document_repo
node_download -->|"checks integrity"| node_verification
node_verification -->|"recomputes digest"| node_hash
node_verification -->|"verifies signature"| node_signature
node_audit -->|"saves logs"| node_audit_repo
node_audit_repo -->|"persists audit"| node_mysql
node_blockchain -.->|"records custody"| node_fabric
node_search -.->|"queries"| node_fastapi

click node_web "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/frontend/app/page.tsx"
click node_api_client "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/frontend/src/services/api.js"
click node_document_api "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/controller/DocumentController.java"
click node_access_api "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/controller/DocumentAccessController.java"
click node_upload "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentUploadService.java"
click node_download "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentDownloadService.java"
click node_verification "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentVerificationService.java"
click node_validation "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/validation/FileValidationService.java"
click node_malware "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/malware/MalwareScanService.java"
click node_hash "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/hashing/HashService.java"
click node_signature "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/signature/DigitalSignatureService.java"
click node_timestamp "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/timestamp/RFC3161Service.java"
click node_storage "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/storage/StorageService.java"
click node_minio "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/storage/MinioStorageService.java"
click node_document_repo "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/repository/DocumentRepository.java"
click node_audit "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/audit/AuditService.java"
click node_audit_repo "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/repository/AuditLogRepository.java"
click node_blockchain "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/blockchain/BlockchainService.java"
click node_fabric "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/blockchain/chaincode/document_chaincode.go"
click node_access_service "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentAccessService.java"
click node_search "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/FastApiService.java"
click node_face "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/FaceVerificationService.java"
click node_encryption "https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/encryption/EncryptionService.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_web,node_api_client,node_user toneBlue
class node_document_api,node_access_api,node_upload,node_download,node_verification,node_access_service,node_search,node_face,node_minio_service,node_mysql toneAmber
class node_validation,node_malware,node_hash,node_signature,node_timestamp,node_encryption toneMint
class node_storage,node_minio,node_document_repo,node_audit,node_audit_repo,node_blockchain,node_fabric toneRose
class node_fastapi toneIndigo
```

## Components

### User interface

- [Web application](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/frontend/app/page.tsx): `frontend/app/page.tsx`
- [API client](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`

### Backend API

- [Document API](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/controller/DocumentController.java): `backend/src/main/java/com/security_management/backend/controller/DocumentController.java`
- [Access API](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/controller/DocumentAccessController.java): `backend/src/main/java/com/security_management/backend/controller/DocumentAccessController.java`
- [Upload pipeline](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentUploadService.java): `backend/src/main/java/com/security_management/backend/service/DocumentUploadService.java`
- [Download service](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentDownloadService.java): `backend/src/main/java/com/security_management/backend/service/DocumentDownloadService.java`
- [Document verification](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentVerificationService.java): `backend/src/main/java/com/security_management/backend/service/DocumentVerificationService.java`
- [Access control](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/DocumentAccessService.java): `backend/src/main/java/com/security_management/backend/service/DocumentAccessService.java`
- [Document search](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/FastApiService.java): `backend/src/main/java/com/security_management/backend/service/FastApiService.java`
- [Face verification](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/service/FaceVerificationService.java): `backend/src/main/java/com/security_management/backend/service/FaceVerificationService.java`

### Document security

- [File validation](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/validation/FileValidationService.java): `backend/src/main/java/com/security_management/backend/validation/FileValidationService.java`
- [Malware scanning](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/malware/MalwareScanService.java): `backend/src/main/java/com/security_management/backend/malware/MalwareScanService.java`
- [Hashing](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/hashing/HashService.java): `backend/src/main/java/com/security_management/backend/hashing/HashService.java`
- [Digital signatures](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/signature/DigitalSignatureService.java): `backend/src/main/java/com/security_management/backend/signature/DigitalSignatureService.java`
- [Trusted timestamp](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/timestamp/RFC3161Service.java): `backend/src/main/java/com/security_management/backend/timestamp/RFC3161Service.java`
- [Encryption services](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/encryption/EncryptionService.java): `backend/src/main/java/com/security_management/backend/encryption/EncryptionService.java`

### Records and integrations

- [Storage abstraction](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/storage/StorageService.java): `backend/src/main/java/com/security_management/backend/storage/StorageService.java`
- [MinIO storage](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/storage/MinioStorageService.java): `backend/src/main/java/com/security_management/backend/storage/MinioStorageService.java`
- [Document metadata](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/repository/DocumentRepository.java): `backend/src/main/java/com/security_management/backend/repository/DocumentRepository.java`
- [Audit service](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/audit/AuditService.java): `backend/src/main/java/com/security_management/backend/audit/AuditService.java`
- [Audit records](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/repository/AuditLogRepository.java): `backend/src/main/java/com/security_management/backend/repository/AuditLogRepository.java`
- [Custody ledger](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/backend/src/main/java/com/security_management/backend/blockchain/BlockchainService.java): `backend/src/main/java/com/security_management/backend/blockchain/BlockchainService.java`
- [Fabric chaincode](https://github.com/riteshd11/secure-digital-document-management-system/blob/main/blockchain/chaincode/document_chaincode.go): `blockchain/chaincode/document_chaincode.go`

### Other components

- **User**
- **MinIO S3**
- **MySQL**
- **Search service**

## Connections

- User → Web application: uses
- Web application → API client: submits requests
- API client → Document API: calls
- Document API → Upload pipeline: uploads
- Document API → Download service: requests files
- Document API → Document verification: requests checks
- Access API → Access control: manages access
- Upload pipeline → File validation: validates
- Upload pipeline → Malware scanning: scans
- Upload pipeline → Hashing: fingerprints
- Upload pipeline → Digital signatures: signs
- Upload pipeline → Trusted timestamp: timestamps
- Upload pipeline → Storage abstraction: stores object
- Upload pipeline → Document metadata: saves metadata
- Upload pipeline → Audit service: records event
- Upload pipeline → Custody ledger: anchors record
- Storage abstraction → MinIO storage: implemented by
- MinIO storage → MinIO S3: stores objects
- Document metadata → MySQL: persists metadata
- Download service → Storage abstraction: retrieves object
- Download service → Document metadata: reads metadata
- Download service → Document verification: checks integrity
- Document verification → Hashing: recomputes digest
- Document verification → Digital signatures: verifies signature
- Audit service → Audit records: saves logs
- Audit records → MySQL: persists audit
- Custody ledger → Fabric chaincode: records custody
- Document search → Search service: queries
