UseCaseDiagram of CMPE451 - bounswe/bounswe2025group5 GitHub Wiki
The full code of Use Case Diagram:
@startuml WasteReductionPlatformUseCases left to right direction' ==== Actors ==== actor User as "User" actor RegisteredUser as "Registered User" actor Moderator as "Moderator" ' Admin removed per new scope ' Wikidata removed; semantic search is system-provided
' ==== Styling ==== skinparam usecase { BorderColor Black BackgroundColor White RoundCorner 15 Margin 20 } skinparam actorMargin 30 skinparam usecaseMargin 30
' ==== Identity and Access Management (IAM) ==== usecase UC11 as "Register" usecase UC12 as "Set Up Credentials" usecase UC21 as "Login" usecase UC22 as "Enter Username and Password" usecase resetPassword as "Reset Password" usecase deleteAccount as "Delete Account (Irreversible)" usecase logout as "Logout" usecase kvkkConsent as "Accept KVKK (Data Protection) Consent" usecase validatePasswordPolicy as "Validate Password Policy"
' ==== Profile & Goals ==== usecase viewProfile as "View Profile" usecase up as "Upload Profile Picture (<=2MB)" usecase set as "Set/Update Weekly Waste Reduction Goal" usecase edit as "Edit Profile" usecase changePassword as "Change Password" usecase log as "Log Waste" usecase visualize as "Visualize Progress" usecase viewBadges as "View My Badges" usecase badgeCatalog as "View Badge Catalog"
' ==== Social / Following ==== usecase followUser as "Follow User" usecase unfollowUser as "Unfollow User" usecase viewFollowing as "View Following" usecase viewFollowers as "View Followers"
' Waste Tracking usecase categorizeWaste as "Categorize Waste" usecase viewHistory as "View Waste History (12+ months)" usecase bulkLog as "Bulk Log Waste (Batch Entry)" ' system/internal usecase genReports as "Generate Weekly/Monthly Reports" ' system/internal usecase calcReduction as "Compute % Reduction Over Time" usecase calculateLeaderboard as "Calculate Leaderboard" usecase assignMilestoneBadges as "Assign Milestone Badges" usecase assignLeaderboardBadges as "Assign Leaderboard Badges"
' ==== Moderator ==== usecase modReports as "Review Reports" usecase modDeletePost as "Delete Inappropriate Post"
' ==== Challenges / Leaderboard / Rewards ==== usecase viewChallenges as "View Challenges" usecase viewLeaderboard as "View Leaderboard" usecase joinChallenge as "Join a Challenge" usecase createChallenge as "Create Challenge" usecase viewRewards as "View Rewards Catalog" usecase viewPoints as "View Points & Transactions" usecase redeemReward as "Redeem Reward"
' ==== Forum / Posts ==== 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" usecase deletePosts as "Delete Own Post" usecase tagPost as "Tag Post" usecase attachToPost as "Attach Media/Links to Post" usecase accessForumViewOnly as "Access Forum (View Only Mode)" usecase viewOwnerProfile as "View Profile (of the Post Owner)"
' ==== Notifications ==== usecase notifGoal as "Receive Goal Progress Notifications" usecase notifLeaderboard as "Receive Leaderboard Notifications" usecase notifEngagement as "Receive Post Engagement Notifications" usecase notifFollowedPost as "Receive Notifications from Followed Users' Posts"
' ==== Localization & Standardization ==== usecase switchLanguage as "Switch Language (TR/EN)" ' system/internal usecase kindnessReminder as "Show Kindness Reminder" ' system/internal usecase confirmIrreversibleAction as "Confirm Irreversible Action" ' system/internal usecase modelActivitiesAS2 as "Model Activities (AS2)"
' ========================== ' Relationships ' ==========================
' IAM User --> UC11 RegisteredUser --> UC21 UC21 -.> UC22 : <> UC11 -.> UC12 : <> UC11 -.> kvkkConsent : <> UC12 -.> validatePasswordPolicy : <> RegisteredUser --> resetPassword RegisteredUser --> deleteAccount deleteAccount -.> confirmIrreversibleAction : <> RegisteredUser --> logout
' Profile & Goals RegisteredUser --> viewProfile RegisteredUser --> log RegisteredUser --> edit RegisteredUser --> set RegisteredUser --> changePassword edit <-. up : <> viewProfile -.> visualize : <> RegisteredUser --> viewBadges RegisteredUser --> badgeCatalog
' Waste Tracking RegisteredUser --> categorizeWaste RegisteredUser --> viewHistory RegisteredUser --> bulkLog visualize -.> genReports : <> visualize -.> calcReduction: <> log -.> assignMilestoneBadges : <>
' Challenges / Leaderboard / Rewards RegisteredUser --> viewLeaderboard RegisteredUser --> viewChallenges RegisteredUser --> joinChallenge RegisteredUser --> createChallenge viewLeaderboard -.> calculateLeaderboard : <> viewLeaderboard -.> assignLeaderboardBadges : <> viewChallenges <-. createChallenge : <>
' Rewards & Points RegisteredUser --> viewRewards RegisteredUser --> viewPoints RegisteredUser --> redeemReward log -.> viewPoints : <> ' points update triggered by logging waste
' Social / Following RegisteredUser --> followUser RegisteredUser --> unfollowUser RegisteredUser --> viewFollowing RegisteredUser --> viewFollowers followUser -.> modelActivitiesAS2 : <>
' Notifications RegisteredUser --> notifGoal RegisteredUser --> notifLeaderboard RegisteredUser --> notifEngagement RegisteredUser --> notifFollowedPost log -.> notifGoal : <> viewLeaderboard -.> notifLeaderboard : <> likePost -.> notifEngagement : <> commentPost -.> notifEngagement : <> sharePost -.> notifEngagement : <> savePost -.> notifEngagement : <> sharePost -.> notifFollowedPost : <>
' Forum / Posts RegisteredUser --> createPost RegisteredUser --> viewPost RegisteredUser --> sharePost RegisteredUser --> savePost RegisteredUser --> commentPost RegisteredUser --> likePost RegisteredUser --> reportPost RegisteredUser --> deletePosts createPost -.> tagPost : <> createPost -.> attachToPost : <> createPost -.> kindnessReminder : <> commentPost -.> kindnessReminder : <> likePost -.> modelActivitiesAS2 : <> commentPost -.> modelActivitiesAS2 : <> sharePost -.> modelActivitiesAS2 : <> savePost -.> modelActivitiesAS2 : <> joinChallenge -.> modelActivitiesAS2 : <> deletePosts -.> confirmIrreversibleAction : <> ' Moderator actions on posts Moderator --> modReports Moderator --> modDeletePost
' Semantic search integration viewPost -.> semanticSearch : <> User --> semanticSearch RegisteredUser --> semanticSearch
' Access (Non-Registered) User --> accessForumViewOnly User --> viewPost User --> viewChallenges User --> viewLeaderboard User --> viewOwnerProfile ' Localization User --> switchLanguage RegisteredUser --> switchLanguage
' Feedback usecase submitFeedback as "Submit Feedback & Suggestions" User --> submitFeedback RegisteredUser --> submitFeedback
' View owner's profile from a post viewPost <-. viewOwnerProfile : <>
' Inheritance RegisteredUser <|-- Moderator @enduml
