Skip to content

Use Case Diagram

Barathan edited this page Mar 18, 2025 · 4 revisions

Use Case Diagram

Diagram

use_case_diagram_2

Code

@startuml
left to right direction

' Define the actors
actor User
actor Admin
actor Moderator

' Group use cases by functional area using packages
package "User & Account Management" {
  usecase "Sign Up" as SignUp
  usecase "Log In" as Login
  usecase "Login via Google" as GoogleLogin
  usecase "Reset Password" as ResetPassword
  usecase "View Profile" as ViewProfile
  usecase "Edit Profile" as EditProfile
  usecase "Upload Profile Picture" as UploadProfilePic
  usecase "Add Bio/Description" as AddBio
  usecase "Set User Location" as SetLocation
  usecase "Enable/Disable Notifications" as ManageNotifications
  usecase "Delete/Deactivate Account" as DeleteAccount
  usecase "Authenticate Login" as AuthenticateLogin
}

package "Admin Management" {
  usecase "Manage User Accounts" as ManageAccounts
  usecase "Review User Activity" as ReviewActivity
  usecase "Send Platform Notifications" as SendPlatformNotifications
  usecase "Access Analytics Dashboard" as AccessAnalytics
  usecase "Modify Platform Settings" as ModifySettings
  usecase "Approve Custom Waste Category" as ApproveCustomCategory
  usecase "Manage Group Challenges" as ManageGroupChallenges
  usecase "Award Challenge Points" as AwardChallengePoints
}

package "Moderator Functions" {
  usecase "Review Flagged Content" as ReviewFlagged
  usecase "Warn/Suspend Users" as WarnUsers
  usecase "Escalate Issues to Admin" as EscalateIssues
  usecase "Communicate with Violating Users" as CommunicateViolations
}

package "Waste Tracking & Scoring" {
  usecase "Log Waste" as LogWaste
  usecase "View Waste Logs" as ViewWasteLogs
  usecase "Request Custom Waste Category" as RequestCustomCategory
  usecase "Upload Waste Photo" as UploadWastePhoto
  usecase "View Waste Reduction Suggestions" as ViewSuggestions
  usecase "View Scoring System" as ViewScoring
}

package "Goal Management" {
  usecase "Set Waste Reduction Goal" as SetGoal
  usecase "Select Predefined Goal" as SelectGoal
  usecase "Create Custom Goal" as CreateCustomGoal
  usecase "Edit Goal" as EditGoal
  usecase "Track Goal Progress" as TrackGoalProgress
  usecase "Compare Progress" as CompareProgress
}

package "Tips & Recommendations" {
  usecase "View Tips" as ViewTips
  usecase "Search Tips" as SearchTips
  usecase "Save Tips" as SaveTips
  usecase "Submit Tips" as SubmitTips
  usecase "Share Tips" as ShareTips
  usecase "View Recommendations" as ViewRecommendations
  usecase "View Eco-Friendly Products" as ViewEcoProducts
  usecase "Reward Tip Contribution" as RewardTipContribution
}

package "Challenge & Activity Tracking" {
  usecase "Join Challenge" as JoinChallenge
  usecase "Create Challenge" as CreateChallenge
  usecase "Track Challenge Progress" as TrackChallengeProgress
  usecase "Complete Challenge" as CompleteChallenge
  usecase "Exit Challenge" as ExitChallenge
  usecase "Form/Join Team" as JoinTeam
  usecase "Track Sustainable Activity" as TrackActivity
  usecase "Connect with Health APIs" as ConnectHealthAPI
}

package "Achievements & Rewards" {
  usecase "View Leaderboard" as ViewLeaderboard
  usecase "Filter Leaderboard" as FilterLeaderboard
  usecase "View Progress Reports" as ViewProgressReports
  usecase "View Data Visualizations" as ViewDataViz
  usecase "Earn Achievements" as EarnAchievements
  usecase "View Rewards" as ViewRewards
  usecase "View Badges Collection" as ViewBadges
  usecase "View Virtual Eco-World" as ViewEcoWorld
}

package "Notification System" {
  usecase "Receive Notifications" as ReceiveNotifications
  usecase "Send Notifications" as SendNotifications
  usecase "Send Goal Reminders" as SendGoalReminders
  usecase "Send Achievement Alerts" as SendAchievementAlerts
}

' Connect actors to use cases
User --> SignUp
User --> Login
User --> GoogleLogin
User --> ResetPassword
User --> ViewProfile
User --> EditProfile
User --> ManageNotifications
User --> DeleteAccount
User --> LogWaste
User --> ViewWasteLogs
User --> RequestCustomCategory
User --> ViewScoring
User --> SetGoal
User --> CreateCustomGoal
User --> EditGoal
User --> TrackGoalProgress
User --> CompareProgress
User --> ViewTips
User --> SubmitTips
User --> ViewRecommendations
User --> ViewEcoProducts
User --> JoinChallenge
User --> CreateChallenge
User --> TrackChallengeProgress
User --> CompleteChallenge
User --> ExitChallenge
User --> JoinTeam
User --> ViewLeaderboard
User --> ViewProgressReports
User --> ViewDataViz
User --> EarnAchievements
User --> ViewRewards
User --> ViewBadges
User --> ViewEcoWorld
User --> ConnectHealthAPI
User --> ReceiveNotifications

Admin --> ManageAccounts
Admin --> ReviewActivity
Admin --> ApproveCustomCategory
Admin --> ManageGroupChallenges
Admin --> AwardChallengePoints
Admin --> SendPlatformNotifications
Admin --> AccessAnalytics
Admin --> ModifySettings
Admin --> RewardTipContribution

Moderator --> ReviewActivity
Moderator --> ReviewFlagged
Moderator --> WarnUsers
Moderator --> EscalateIssues
Moderator --> CommunicateViolations

' Key relationships
GoogleLogin ..> Login : "extends"
UploadProfilePic ..> EditProfile : "extends"
AddBio ..> EditProfile : "extends"
SetLocation ..> EditProfile : "extends"
SignUp ..> AuthenticateLogin : "extends"
Login ..> AuthenticateLogin : "extends"
EditProfile ..> ViewProfile : "includes"

UploadWastePhoto ..> LogWaste : "extends"
ViewWasteLogs ..> LogWaste : "extends"
ViewSuggestions ..> LogWaste : "extends"
RequestCustomCategory ..> ApproveCustomCategory : "extends"

SetGoal ..> SelectGoal : "includes"
CreateCustomGoal ..> SetGoal : "extends"
TrackGoalProgress ..> LogWaste : "extends"
CompareProgress ..> ViewDataViz : "includes"

ViewTips ..> SearchTips : "includes"
ViewTips ..> SaveTips : "includes"
ShareTips ..> ViewTips : "extends"
ViewRecommendations ..> ViewEcoProducts : "includes"

JoinTeam ..> CreateChallenge : "extends"
JoinTeam ..> JoinChallenge : "extends"
TrackChallengeProgress ..> LogWaste : "extends"
TrackChallengeProgress ..> TrackActivity : "extends"
CompleteChallenge ..> TrackChallengeProgress : "extends"
CompleteChallenge ..> EarnAchievements : "includes"
ConnectHealthAPI ..> TrackActivity : "includes"

ViewLeaderboard ..> FilterLeaderboard : "includes"
ViewProgressReports ..> TrackGoalProgress : "extends"
ViewProgressReports ..> ViewDataViz : "includes"
EarnAchievements ..> TrackChallengeProgress : "extends"
EarnAchievements ..> LogWaste : "extends"
ViewBadges ..> EarnAchievements : "extends"
ViewRewards ..> EarnAchievements : "extends"
ViewEcoWorld ..> EarnAchievements : "extends"
AwardChallengePoints ..> CompleteChallenge : "includes"

SendNotifications ..> SendGoalReminders : "includes"
SendNotifications ..> SendAchievementAlerts : "includes"
SendGoalReminders ..> TrackGoalProgress : "extends"
SendAchievementAlerts ..> EarnAchievements : "extends"
ManageNotifications ..> ReceiveNotifications : "includes"

@enduml
Clone this wiki locally