-
Notifications
You must be signed in to change notification settings - Fork 1
Requirements
-
FR1: The system shall allow the manager and employees to manage games in the catalog.
- FR1.1: The system shall allow employees to submit a game request (create new or update existing).
- FR1.2: The system shall allow the manager to approve or reject game requests (create new or update existing).
- FR1.3: The system shall require the manager to enter the price when approving creation of new game requests.
- FR1.4: The system shall allow the manager to directly create new or update existing games without requiring approval.
- FR1.5: The system shall allow the manager to delete (archive) games.
- FR1.6: The system shall allow employees to view the list of archived games.
- FR1.7: The system shall allow the manager to reactivate archived games.
-
FR2: The system shall allow categorization of games by genre and console type.
- FR2.1: The system shall include built-in basic categories.
- FR2.2: The system shall allow the manager to directly create new or update existing game categories.
- FR2.3: The system shall allow only the manager to delete (archive) game categories.
- FR2.4: The system shall allow employees to assign games to existing categories.
-
FR3: The system shall allow customers to review games.
- FR3.1: The system shall allow only customers who have purchased a game to submit a review.
- FR3.2: The system shall allow customers to provide a rating and/or comment as part of their review.
- FR3.3: The system shall allow all users to view customer reviews for a game.
- FR3.4: The system shall allow only the manager to reply to customer reviews.
- FR3.5: The system shall allow only the manager to delete customer reviews.
-
FR4: The system shall allow users to browse games in the catalog.
- FR4.1: The system shall allow game browsing without the need to be logged in.
- FR4.2: The system shall allow users to search for games by name, category, price range, and/or stock status.
- FR4.3: The system shall display real-time availability of games in stock.
- FR4.4: The system shall allow customers to add or remove in-stock games from their cart while browsing.
-
FR5: The system shall allow account creation and log in.
- FR5.1: The system shall enforce a unique email address constraint across all accounts (customer, employee, manager).
- FR5.2: The system shall allow customers to create an account.
- FR5.3: The system shall allow customers to update their account details, excluding email.
- FR5.4: The system shall include a single pre-created manager account as part of the system setup.
- FR5.5: The system shall allow the manager to update their account details, excluding email.
- FR5.6: The system shall allow the manager to update their account details, excluding email.
- FR5.7: The system shall not allow employees to create employee accounts.
- FR5.8: The system shall allow all users to log in.
-
FR6: The system shall allow the manager to manage employees.
- FR6.1: The system shall allow the manager to create employee accounts.
- FR6.2: The system shall allow the manager to update employee account details, excluding email.
- FR6.3: The system shall allow the manager to deactivate employee accounts, restricting their access while retaining their account data.
-
FR7: The system shall allow the manager to manage store-related information via an administrative dashboard.
- FR7.1: The system shall allow the manager to modify store policies.
- FR7.2: The system shall allow the manager to add, update, and remove special promotions on specific games or categories.
- FR7.3: The system shall allow the manager to monitor customer order statuses and history.
- FR7.4: The system shall allow the manager to monitor employee activities.
- FR7.5: The system shall allow the manager to view sales metrics, including total revenue, most popular games, and low-stock items.
- FR7.6: The system shall allow the manager to update game stock and prices.
- FR7.7: The system shall prevent the manager from viewing sensitive customer information such as passwords or payment information.
-
FR8: The system shall allow customers to place orders for games.
- FR8.1: The system shall provide an option to save payment information (except for CVV) for future use.
- FR8.2: The system shall automatically fill in payment information (except for CVV) if the customer had saved it.
- FR8.3: The system shall confirm purchases.
- FR8.4: The system shall automatically process returns within 7 days of purchase.
- FR8.5: The system shall automatically remove any purchased games from the customer’s wishlist if they are included.
-
FR9: The system shall allow customers to manage their order history.
- FR9.1: The system shall allow customers to view past orders.
- FR9.2: The system shall allow customers to track current order statuses.
- FR9.3: The system shall flag and show archived games if customer have archived games in their history
-
FR10: The system shall allow customers to manage their wishlist.
- FR10.1: The system shall allow customers to add or remove games from their wishlist.
- FR10.2: The system shall allow employees and the manager to view customer wishlists.
- FR10.3: The system shall flag and show archived games if customer have archived games in their wishlist.
-
NFR1: The system shall encrypt all sensitive customer information, including passwords, payment details, and personal data.
-
NFR2: The system shall implement secure authentication mechanisms.
* NFR2.1: The system shall use JWT (JSON Web Tokens) for secure user authentication and authorization.
* NFR2.2: The system shall store JWT tokens in HTTP-only cookies to prevent unauthorized access through client-side scripts.
* NFR2.3: The system shall implement a refresh token mechanism to allow users to maintain their session securely without requiring frequent logins.
- NFR3: The system shall enforce strong password policies for all users, requiring a minimum length of 8 characters, at least one uppercase letter, one lowercase letter, one number, and one special character.
* NFR4: The system shall enforce role-based authorization.
* NFR4.1: The system shall allow only the manager and employees to manage the product catalog.
* NFR4.2: The system shall allow only the manager to access sensitive actions such as adding/removing employees, modifying store policies, and approving game submissions.
* NFR4.3: The system shall restrict all customers to only view and interact with their account details, purchase games, and submit reviews.
- NFR5: The system shall maintain logging of important system actions.
- NFR5.1: The system shall log all employee activities, including game catalog management (adding, updating, deleting games), inventory updates, and account-related actions, with timestamps, employee IDs, and the type of action performed.
- NFR5.2: log every order placed by customers, including customer ID, list of items ordered, total purchase amount, payment status, and timestamp of the transaction.
- NFR5.3: The system shall log all order returns initiated by customers, capturing the customer ID, the returned items, return reason, refund status, and the timestamp when the return was processed.