diff --git a/docs/diagrams/use-case-overview.mmd b/docs/diagrams/use-case-overview.mmd index c743d3b..fcc5ee2 100644 --- a/docs/diagrams/use-case-overview.mmd +++ b/docs/diagrams/use-case-overview.mmd @@ -1,27 +1,57 @@ graph TD; +%% Actors (Users) Admin["Administrator"] Owner["Owner"] Grantee["Grantee"] -Admin --> UC1["Manage All Blobs"] -Admin --> UC2["Manage Cryptographic Keys"] -Admin --> UC3["Logout"] - -Owner --> UC4["Upload Own Blobs"] -Owner --> UC5["Delete Own Blobs"] -Owner --> UC6["Grant Download Permission"] -Owner --> UC7["Grant View Permission"] -Owner --> UC8["Encrypt Own Blobs"] -Owner --> UC9["Decrypt Own Blobs"] -Owner --> UC10["Hash Own Blobs"] -Owner --> UC11["Verify Blob Signature"] -Owner --> UC12["Logout"] - -Grantee --> UC13["Download Blob with Permission"] -Grantee --> UC14["View Blob with Permission"] -Grantee --> UC15["Verify Blob Signature"] -Grantee --> UC16["Logout"] +%% Use Cases Grouped by Domain +subgraph Blob_Management ["Blob Management"] + UC1["Manage All Blobs"] + UC4["Upload Own Blobs"] + UC5["Delete Own Blobs"] + UC13["Download Blob with Permission"] + UC14["View Blob with Permission"] +end +subgraph Cryptographic_Management ["Cryptographic Management"] + UC2["Manage Cryptographic Keys"] +end + +subgraph Cryptographic_Key_Operations ["Cryptographic Key Operations"] + UC8["Encrypt Own Blobs"] + UC9["Decrypt Own Blobs"] + UC10["Hash Own Blobs"] + UC11["Verify Blob Signature"] +end + +subgraph Permission_Management ["Permission Management"] + UC6["Grant Download Permission"] + UC7["Grant View Permission"] +end + +%% Actor -> Use Cases +Admin --> UC1 +Admin --> UC2 + +Owner --> UC4 +Owner --> UC5 +Owner --> UC6 +Owner --> UC7 +Owner --> UC8 +Owner --> UC9 +Owner --> UC10 +Owner --> UC11 + +Grantee --> UC13 +Grantee --> UC14 + +%% Class definitions for actors classDef actor fill:#ADD8E6,stroke:#333,stroke-width:2px; -class Admin,Owner,Grantee actor; \ No newline at end of file +class Admin,Owner,Grantee actor; + +%% Class definitions for domains +class Blob_Management fill:#FFD700,stroke:#333,stroke-width:2px; +class Cryptographic_Management fill:#90EE90,stroke:#333,stroke-width:2px; +class Cryptographic_Key_Operations fill:#98FB98,stroke:#333,stroke-width:2px; +class Permission_Management fill:#FF6347,stroke:#333,stroke-width:2px;