From 8bf62aac666e051ef38387f290e27b74d3488067 Mon Sep 17 00:00:00 2001 From: ToastedToast0090 Date: Tue, 3 Mar 2026 22:19:46 -0800 Subject: [PATCH] Added all use cases and picture, all 1 commit because I forgot and it didn't take too long in terms of actual writing, most was done on a notepad --- docs/analysis/features-and-usecases.md | 67 ++++++++++++++++++++++++ docs/analysis/use-case-diagramToast.png | Bin 0 -> 17927 bytes 2 files changed, 67 insertions(+) create mode 100644 docs/analysis/features-and-usecases.md create mode 100644 docs/analysis/use-case-diagramToast.png diff --git a/docs/analysis/features-and-usecases.md b/docs/analysis/features-and-usecases.md new file mode 100644 index 0000000..28b4741 --- /dev/null +++ b/docs/analysis/features-and-usecases.md @@ -0,0 +1,67 @@ +## Features +- User Blocking and Safety Controls +- User Reporting System +- Support Ticket System +- Game Progress Tracking +- Notification Preferences Management +- Role and Permission Management +- Account Recovery +- Privacy and Visibility Settings + +## Brief Use Cases + +### UC1: User Blocks Another User +- Primary Actor: User +- Goal: User prevents another user from sending messages, friend requests, or interacting with them. + +### UC2: User Reports Another User +- Primary Actor: User +- Goal: User submits a report about inappropriate behavior or content. + +### UC3: User Submits a Support Ticket +- Primary Actor: User +- Goal: User creates a support request for technical issues, account problems, or abuse concerns. + +### UC4: User Views Game Progress +- Primary Actor: User +- Goal: User views their saved progress for a specific game. + +### UC5: User Updates Notification Preferences +- Primary Actor: User +- Goal: User customizes which notifications they receive (friend requests, achievements, messages, etc.). + +### UC6: Admin Assigns User Roles +- Primary Actor: Admin +- Goal: Admin grants or modifies user roles such as moderator or developer. + +### UC7: Admin Moderates User Reports +- Primary Actor: Admin +- Goal: Admin reviews submitted reports and takes appropriate action. + +### UC8: User Recovers Account +- Primary Actor: User +- Goal: User regains access to their account after losing credentials. + +### UC9: User Adjusts Privacy Settings +- Primary Actor: User +- Goal: User controls who can view their profile, activity, and online status. + +## Use Case Traceability + +| Use Case | Feature(s) | +|---|---| +| UC1: User Blocks Another User | User Blocking and Safety Controls | +| UC2: User Reports Another User | User Reporting System | +| UC3: User Submits a Support Ticket | Support Ticket System | +| UC4: User Views Game Progress | Game Progress Tracking | +| UC5: User Updates Notification Preferences | Notification Preferences Management | +| UC6: Admin Assigns User Roles | Role and Permission Management | +| UC7: Admin Moderates User Reports | User Reporting System, Role and Permission Management | +| UC8: User Recovers Account | Account Recovery | +| UC9: User Adjusts Privacy Settings | Privacy and Visibility Settings | + +## Use Case Diagram + +I made this in paint(the one built into windows) because of how artistic I am + +![Use Case Diagram](use-case-diagramToast.png) \ No newline at end of file diff --git a/docs/analysis/use-case-diagramToast.png b/docs/analysis/use-case-diagramToast.png new file mode 100644 index 0000000000000000000000000000000000000000..5f468166814fc4c1e2eff174a08644d0f3abbfd0 GIT binary patch literal 17927 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 literal 0 HcmV?d00001