|
| 1 | +graph TD |
| 2 | + subgraph "User / Client" |
| 3 | + User[<fa:fa-user> User/API Client] |
| 4 | + end |
| 5 | + |
| 6 | + subgraph "DevOps & CI/CD Pipeline" |
| 7 | + GH_Repo[<fa:fa-github> GitHub Repo] -->|Push to master<br>New Release| GH_Actions[<fa:fa-cogs> GitHub Actions<br>Build, Test, & Publish] |
| 8 | + GH_Actions -->|Publishes Image| DockerHub[<fa:fa-docker> Docker Hub<br>noobdevsam/spring-project-steganography-tool] |
| 9 | + end |
| 10 | + |
| 11 | + subgraph "Spring Boot Application (Docker Container)" |
| 12 | + subgraph "Request Entry Point" |
| 13 | + Filter[<fa:fa-filter> CorrelationIdFilter<br><i>Adds Trace ID</i>] --> Controller |
| 14 | + Controller[<fa:fa-server> StegoController<br><i>REST API Endpoints</i>] |
| 15 | + ExceptionHandler[<fa:fa-shield-alt> GlobalExceptionHandler<br><i>Formats Error Responses</i>] |
| 16 | + Controller -- Catches Exceptions --> ExceptionHandler |
| 17 | + end |
| 18 | + |
| 19 | + subgraph "Core Business Logic" |
| 20 | + Service[<fa:fa-concierge-bell> SteganographyService<br><i>Orchestrates Workflows</i>] |
| 21 | + end |
| 22 | + |
| 23 | + subgraph "Utility Services" |
| 24 | + CapacitySvc[<fa:fa-calculator> CapacityUtilService<br><i>Estimates required space</i>] |
| 25 | + AesSvc[<fa:fa-lock> AesUtilService<br><i>PBKDF2 Key Derivation, AES Encryption</i>] |
| 26 | + LsbSvc[<fa:fa-magic> LsbUtilService<br><i>Hides data in image pixels</i>] |
| 27 | + LargeFileSvc[<fa:fa-file-import> LargeFileEncryptionService<br><i>Handles large file streams</i>] |
| 28 | + end |
| 29 | + |
| 30 | + subgraph "Data & Storage Layer" |
| 31 | + Repo[<fa:fa-book> StegoDataRepository<br><i>JPA interface to DB</i>] |
| 32 | + StorageSvc[<fa:fa-folder-open> StorageService<br><i>Manages file system I/O</i>] |
| 33 | + end |
| 34 | + |
| 35 | + subgraph "Background Processing" |
| 36 | + CleanupTask[<fa:fa-trash-alt> OrphanCleanupTask<br><i>Scheduled Job</i>] |
| 37 | + end |
| 38 | + end |
| 39 | + |
| 40 | + subgraph "External Systems" |
| 41 | + DB[(<fa:fa-database> MySQL Database<br><i>Stores encoding metadata</i>)] |
| 42 | + FS[/<fa:fa-hdd> File System<br><i>Docker Volume for stego-images</i>/] |
| 43 | + end |
| 44 | + |
| 45 | + %% --- FLOWS --- |
| 46 | + User -- "1. POST /encode (Image, Data, Password)" --> Filter |
| 47 | + Controller -->|2. Calls| Service |
| 48 | + |
| 49 | + Service -->|3. Early check| CapacitySvc |
| 50 | + Service -->|4. Encrypts data| AesSvc |
| 51 | + Service -- "4a. (For large files)" --> LargeFileSvc |
| 52 | + Service -->|5. Embeds encrypted data| LsbSvc |
| 53 | + Service -->|6. Saves stego-image| StorageSvc |
| 54 | + Service -->|7. Saves metadata| Repo |
| 55 | + |
| 56 | + Repo -->|JPA| DB |
| 57 | + StorageSvc -->|Writes/Reads| FS |
| 58 | + CleanupTask -->|Deletes old files| StorageSvc |
| 59 | + CleanupTask -->|Checks DB references| Repo |
| 60 | + |
| 61 | + style User fill:#D5E8D4,stroke:#82B366 |
| 62 | + style GH_Repo fill:#f5f5f5,stroke:#333 |
| 63 | + style DockerHub fill:#DAE8FC,stroke:#6C8EBF |
| 64 | + style DB fill:#DAE8FC,stroke:#6C8EBF |
| 65 | + style FS fill:#DAE8FC,stroke:#6C8EBF |
0 commit comments