uprm-inso4116-2024-2025-s1 / semester-project-multiplayer-dominoes

semester-project-multiplayer-dominoes created by GitHub Classroom
9 stars 0 forks source link

[Documentation Fix] Fix Milestone 1 Issues with Documentation - Interface Requirements #198

Open PinkSylvie opened 2 weeks ago

PinkSylvie commented 2 weeks ago

Please fix the section according to the following critique from the professor taking into account as well what he said about the Domain requirements:

"Many of your domain requirements are too big, too broad to be assigned you just one category. For example, take "The system-to-be must calculate scores based on standard dominoes rules and display a leaderboard." there are domain aspects in this (e.g. that there have to be functions that calculate scores), but there are also other aspects in this. One would be the display of the leaderboard.

Your interface requirements also mix different aspects together and they're not stated as requirements on the system-to-be."

Negroni1 commented 6 hours ago

Done! Please review, @ebrain-mendoza121 @AngelCIICMorales @Keiven-Soto


- The system must provide users with the option to either create a new account or log into an existing one. This choice must be presented on the landing page with distinct buttons for "Sign Up" and "Log In."
- When creating an account, the system nust prompt the user to enter a valid username, password, and email address. The system must validate these inputs, displaying specific error messages such as "Username already taken" or "Invalid email format" if necessary. Upon successful registration, the user will be automatically logged in and redirected to the home screen.
- The system must prompt users to enter their username and password to log in. If the credentials are incorrect, the system shall display a clear error message (e.g., “Incorrect username or password”) and prompt the user to retry. The system shall allow for up to 3 failed attempts.
- The system must provide a "Forgot Password" option, allowing users to recover their account via email verification. Upon selecting this option, the system shall prompt the user to enter their registered email and send a password reset link to that email.
- After account creation and password recovery, the system shall send a verification email to the user's registered email. The user must verify their email address before gaining full access to the system’s features.
- The system shall allow users to update their profile information, such as changing their password, username, or email, from the "Account Settings" page.
- Users must be able to create game lobbies (rooms) with customizable settings. The system shall prompt the user to set preferences such as room name, privacy (public or private), max players, and game rules.
- For private rooms, the system shall generate a room password. The room creator shall share this password with invited players. Public rooms shall be listed in a lobby directory, visible to all users.
- The system must display a list of available public lobbies, showing room name, number of players, and privacy status. Users shall be able to search or filter lobbies by room name, number of players, or game settings. Clicking the "Join" button must allow users to enter a public room or enter the password to access a private room.
- Upon joining a room, the system must display the user's domino tiles and the game board. The game board shall update in real-time to reflect moves made by all players. Players shall be able to interact with their tiles by dragging and dropping them onto valid positions on the board.
- The system must validate tile placements in real-time, ensuring that all moves follow the game’s rules. If an invalid tile is placed, the system shall display an error message and prompt the user to make a valid move.
- The system shall provide an in-game chat feature, allowing players within the same game room to communicate in real time. Users can toggle the chat window open or closed as needed.
- The system must allow users to pause a game, either by individual players or the game host. A "Pause Game" button shall be available.
- Upon pause, when the user returns, they must be prompted with a “Resume Game” option to continue from where they left off. 
- The system must provide an easily accessible “Game Rules” button within the game interface, allowing users to review the game rules at any time.
- The system must track and display achievements earned by users, such as winning streaks, high scores, or completing specific game objectives. Achievements shall be viewable from the user’s profile page and during gameplay.
- The system shall display a leaderboard after the game, ranking players based on their wins, losses, and points. The leaderboard must update in real-time to reflect the current game state and allow users to view their overall rankings.