Nodejs代写 | COMP 2406 – Fall 2020 Connect4 Project Connect4

COMP 2406 – Fall 2020 Connect4 Project

Project Background
The goal of this project will be to create a web application that allows users to play the
game Connect4 with other users of the application. Users will be able to participate in
multiple games at once. They will be able to start a new game with a random other user
or start a new game with one of their friends. Users will also be able to observe their
friends’ games. The application will also track statistics of each user of the site.
Technology Constraints
The main server code for your project must use Node.js. All client resources required by
your project must be served by your server. Your project’s data must be stored using
MongoDB. Any additional software/modules/frameworks you use must be able to be
installed using your NPM install script. The backend of your project must be able to run
successfully on the provided course OpenStack image and your client must work within
an up-to-date Chrome browser. An updated list of allowed modules/frameworks/etc. will
be included with the project documents. If you are unsure if something is allowed or
would like to see if something could be allowed, you should ask for clarification before
User Accounts
The application must provide a way for users to create new accounts by specifying a
username and password. Usernames must be unique. A user should be able to log in
and out of the system using their username and password. Within a single browser
instance, only a single user should be able to be logged in at one time (i.e., user A and
user B cannot log in to the system within the same browser window).
When a user is logged in, they should be able to manage various aspects of their
account, as well as create new games or play in games that they are currently a part of.
The application must provide a way for the user to:
1. Search for other users to form a friendship with.
2. Send a friend request to other users of the application.
3. See their current friend requests and accept/reject those requests. A pair of
users should not be considered friends until the recipient of the friend request
accepts that request.
4. See which of their friends are currently logged into the system and which are
currently offline.
5. Navigate to any of their friends’ profiles.
6. Remove another user from their friend list. If user X removes a friend Y, then
X should also be removed as a friend of Y.
7. Set their own user profile to either public or private. If a user’s profile is set to
public, that user should show up in search results and any other users should
be able to view the user’s profile. If a user’s profile is set to private, they
should not show up in search results and users that are not already their
friend should not be able to view their user profile.
8. View their current active games and navigate to any specific game.
9. Create a new game with a random person that is also looking to create a
random game or create a game with a chosen friend. When creating a game,
a user should be able to specify whether the game will be public (shown to
any user viewing this player’s profile), friends only (shown to only friends of
either player in the game), or private (not shown to any other users). When
matching users creating random games, you are also required to match the
type of game (public/private/friends).
10.View their history of games played, which should include who they played
against and the result of the game. The user should also be able to select any
previously completed game and watch the game play out again.