UseCaseDiagram - bounswe/bounswe2025group5 GitHub Wiki

XLTDK-Gs4BtxLtJD1VOmcuLKBYcAMXX8QbCGA5Z2MMFrU1HioP7acKm-_dlabaSVniwU6FLhTRUUMltCPsEPjbrJ5pLkB5W5MbHR2rneBArGiYXOQPM65uCQc855_sCn69-m4iQYHXxWQ8BKyrvnrCmgxtHS1VYADq8IHB-EvbVn9ZYpZ93ZOb4Kvat8bcdMG6UmP0RX

The full code of Use Case Diagram: @startuml left to right direction

actor User as "User" actor RegisteredUser as "Registered User" actor Moderator as "Moderator" actor Admin as "Admin" actor Wikidata as "Wikidata"

skinparam usecase { BorderColor Black BackgroundColor White RoundCorner 15 Margin 20 } skinparam actorMargin 30 skinparam usecaseMargin 30

' Identity and Access Management (IAM) Use Cases usecase UC11 as "Register" usecase UC12 as "Set Up Credentials" usecase UC21 as "Login" usecase UC22 as "Enter Username and Password"

' New IAM Use Cases (added bubbles) usecase adminLogin as "Admin Login" usecase verifyAccount as "Verify Account"

' Profile Management Use Cases usecase viewProfile as "View Profile" usecase up as "Add/Change Profile Picture" usecase bio as "Add/Change Bio Section" usecase display as "Select Badges to Display" usecase addText as "Add/Change Descriptive Text" usecase set as "Set Waste Management Goals" usecase selectType as "Select the Goal Type" usecase select as "See Created Goal" usecase log as "Log Waste" usecase removeGoal as "Remove Goal" usecase visualize as "Visualize Progress" usecase seePosts as "See Posted Content" usecase deletePosts as "Delete Posted Content" usecase logout as "Log Out" usecase edit as "Edit Profile" usecase changePassword as "Change Password"

' Admin and Moderator Use Cases usecase createDefaultChallenges as "Create default challenges" usecase viewAppStats as "View statistics about app usage" usecase modReports as "View and Moderate Reported posts" usecase modChallengeRequests as "Verify challenge requests from registered users"

' New Forum Use Cases for RegisteredUser usecase viewChallenges as "View Challenges" usecase selectCommunityChallenge as "Select a Community Challenge" usecase viewLeaderboard as "View Leaderboard" usecase joinChallenge as "Join a Challenge"

usecase createPost as "Create Post" usecase viewPost as "View Post" usecase semanticSearch as "Semantic Search" usecase likePost as "Like Post" usecase commentPost as "Comment on Post" usecase savePost as "Save Post" usecase sharePost as "Share Post" usecase reportPost as "Report a Post"

' New Forum Use Case for unregistered User (View Only Mode) usecase accessForumViewOnly as "Access Forum (View Only Mode)"

' New extension for viewing post owner's profile from a post usecase viewOwnerProfile as "View Profile (of the Post Owner)"

' IAM Relationships User --> UC11 RegisteredUser--> UC21 RegisteredUser--> viewLeaderboard

UC21 -.> UC22 :<> UC11 -.> UC12 :<>

' New IAM Relationships for Admin Login User --> adminLogin adminLogin -.> verifyAccount :<>

' Profile Management Relationships RegisteredUser --> viewProfile RegisteredUser --> log RegisteredUser --> edit RegisteredUser --> logout RegisteredUser --> deletePosts RegisteredUser --> seePosts RegisteredUser --> select RegisteredUser --> removeGoal RegisteredUser --> set

bio <-. display :<> bio <-. addText :<> set -.> selectType :<> select -.> visualize :<> ' Moved Log Waste to extend View Profile edit <-. bio :<> edit <-. up :<> ' Edit Profile now extends Change Password edit <-. changePassword :<>

' Admin and Moderator Relationships Admin --> createDefaultChallenges Admin --> viewAppStats Moderator --> modReports Moderator --> modChallengeRequests

' New Forum Relationships for RegisteredUser RegisteredUser --> viewChallenges viewChallenges <-. selectCommunityChallenge :<> selectCommunityChallenge <-. joinChallenge :<>

RegisteredUser --> createPost RegisteredUser --> viewPost ' Removed the direct arrow from Access Forum to Semantic Search

' View Post Relationships RegisteredUser --> sharePost RegisteredUser --> savePost RegisteredUser --> commentPost RegisteredUser --> viewPost RegisteredUser --> likePost RegisteredUser --> reportPost

RegisteredUser <|-- Moderator

' Semantic Search now included in View Post viewPost -.> semanticSearch :<>

' Arrow from Wikidata to Semantic Search Wikidata --> semanticSearch

' New Forum Relationship for User (View Only Mode) User --> accessForumViewOnly

' Extend View Post with ability to view the post owner's profile viewPost <-. viewOwnerProfile :<> @enduml

⚠️ **GitHub.com Fallback** ⚠️