Skip to content

Requirements

Nicolas Bolouri edited this page Nov 2, 2024 · 5 revisions

Requirements

Functional Requirements (FRs)

  • 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.

Non-Functional Requirements (NFRs)

  • 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.

Clone this wiki locally