Use Case Diagram - bounswe/bounswe2026group4 GitHub Wiki

Individual Use Cases


Complete Use Case Diagram

image
code

@startuml
@startuml
left to right direction
skinparam packageStyle rectangle
skinparam backgroundColor white
actor "Unregistered User\n(Guest)" as Guest
actor "Registered User" as RegUser
actor "Admin" as Admin
rectangle "Local History Story Map" {

  ' =========================
  ' Guest / Common Discovery
  ' =========================
  usecase "View Stories\non Map" as UC1
  usecase "View Stories\nin Feed" as UC2
  usecase "View Stories\non Timeline" as UC3
  usecase "Search Stories" as UC4
  usecase "Filter Stories" as UC5
  usecase "Open & Read\nFull Story" as UC6
  usecase "View Story\nMetadata" as UC7
  usecase "View/Play\nMultimedia Content" as UC8
  usecase "View Public\nProfile" as UC9
  usecase "View Stories\nby Tag" as UC10
  usecase "Register /\nCreate Account" as UC11
  usecase "Add Story Metedata" as UC42
  usecase "Change Story Metedata" as UC43
  

  ' =========================
  ' Authentication & Profile
  ' =========================
  usecase "Login" as UC12
  usecase "Logout" as UC13
  usecase "Verify Email\nvia Code" as UC14
  usecase "Reset Password" as UC15
  usecase "Change Password" as UC16
  usecase "Manage Profile\n& Privacy Settings" as UC17
  usecase "Delete Account" as UC18
  usecase "View Saved Stories" as UC19
  usecase "Authenticate\nUser" as UC44

  ' =========================
  ' Story Contribution
  ' =========================
  usecase "Submit Story" as UC20
  usecase "Edit Own Story" as UC21
  usecase "Upload / Manage\nStory Media" as UC22
  usecase "Add / Manage\nStory Tags" as UC23

  ' =========================
  ' Interaction
  ' =========================
  usecase "Like Story" as UC24
  usecase "Remove Like" as UC25
  usecase "Comment on Story" as UC26
  usecase "Remove Own Comment" as UC27
  usecase "Save Story" as UC28
  usecase "Remove Saved Story" as UC29
  usecase "Report Story" as UC30
  usecase "Report Comment" as UC31

  ' =========================
  ' Notifications & Rewards
  ' =========================
  usecase "View Notifications" as UC32
  usecase "Manage Notification\nPreferences" as UC33
  usecase "View Points &\nEarned Badges" as UC34

  ' =========================
  ' Admin / Moderation
  ' =========================
  usecase "Review Reports" as UC35
  usecase "Resolve Reports" as UC36
  usecase "Remove Story" as UC37
  usecase "Remove Comment" as UC38
  usecase "Review / Remove\nInappropriate Tags" as UC39
  usecase "Ban User" as UC40
  usecase "Manage Moderation\nRules" as UC41

  ' =========================
  ' Include / Extend Relations
  ' =========================

  ' Story page details
  UC6 ..> UC7 : <<include>>
  UC6 ..> UC8 : <<include>>

  ' Search/filter can affect all discovery views
  UC4 ..> UC1 : <<extend>>
  UC5 ..> UC1 : <<extend>>
  UC4 ..> UC2 : <<extend>>
  UC5 ..> UC2 : <<extend>>
  UC4 ..> UC3 : <<extend>>
  UC5 ..> UC3 : <<extend>>
  UC10 ..> UC2 : <<extend>>

  ' Registration/authentication flows
  UC11 ..> UC14 : <<include>>
  UC12 ..> UC44 : <<include>>

  ' Story submission details
  UC20 <.. UC22 : <<extend>>
  UC20 <.. UC23 : <<extend>>
  UC21 <.. UC22 : <<extend>>
  UC21 <.. UC23 : <<extend>>
  UC20 ..> UC42 : <<include>>
  UC21 <.. UC43 : <<extend>>

  ' Moderation flow
  UC35 <.. UC36 : <<extend>>
  UC36 <.. UC37 : <<extend>>
  UC36 <.. UC38 : <<extend>>
  UC36 <.. UC40 : <<extend>>
  UC36 <.. UC39 : <<extend>>
}

' =========================
' Guest associations
' =========================
Guest --> UC1
Guest --> UC2
Guest --> UC3
Guest --> UC4
Guest --> UC5
Guest --> UC6
Guest --> UC9
Guest --> UC10
Guest --> UC11

' =========================
' Registered User inherits Guest
' =========================
RegUser --|> Guest
RegUser --> UC12
RegUser --> UC13
RegUser --> UC15
RegUser --> UC16
RegUser --> UC17
RegUser --> UC18
RegUser --> UC19
RegUser --> UC20
RegUser --> UC21
RegUser --> UC24
RegUser --> UC25
RegUser --> UC26
RegUser --> UC27
RegUser --> UC28
RegUser --> UC29
RegUser --> UC30
RegUser --> UC31
RegUser --> UC32
RegUser --> UC33
RegUser --> UC34

' =========================
' Admin associations
' =========================
Admin --> UC35
Admin --> UC36
Admin --> UC37
Admin --> UC38
Admin --> UC40
Admin --> UC41
Admin --> UC39

@enduml
'''
⚠️ **GitHub.com Fallback** ⚠️