Client – Checkers Gamer Client
Design and implement a checkers client that has the following features and functionality:
• The client has a friendly graphical user interface (GUI) that includes a window showing the user’s contacts.
• When a match is started, the GUI will show a checkers grid with the users and the opponents pieces.
• The user opens the game and connects to the game server using the servers domain name and port number.
• The user is given the option to register or login.
• If the user is not registered, they can sign up and provide the server with username and password.
• In case of a registered user, the user logs in with their existing account where the server performs authentication by verifying the username and password.
• Every user is assigned a score. A new user starts with a 0 score that increments with every game won. Scores can only be viewed by the user’s contacts.
• A logged in user has the ability to add contacts by sending their username to the server. The server should notify the user if the contact accepted their add request.
• A user can send and receive play requests from his contact list.
• The user should not be able to move his pieces if it is the opponents turn.
• The user should not be able to move his pieces to an invalid position.
Server – Checkers Game Server Server – Design and implement a checkers game server that has the following features and functionality:
• The server application takes as a command line argument the port number on which it would be listening.
• The server allows the users to register and login.
• The server application manages a database that stores user accounts, list of ”online users”, and contacts of each user.
• The server has to change the user status to online if they are logged in and offline otherwise.
• Every time a new user signs up for a new account, the server adds a new user. • Every time a user logs in, the server authenticates them by verifying their username and password.
• When a user adds a contact, the server should update the contact list of that user.
• When a user moves a piece, the server should send that information to the users opponent and vice versa.
• When a user sends a ”play” request to one of their contacts, the server should relay that request to the specified contact. Extra Features .
• Allow two opponents to chat during a match. • Allow the user to view his records (total games played, games won, games lost). The records should be stored on the server.

+1 862 207 3288 