Skip to content

Latest commit

 

History

History
51 lines (38 loc) · 4.59 KB

README.md

File metadata and controls

51 lines (38 loc) · 4.59 KB

Terminal Web Chess Game

A multiplayer chess game built using Java, with a focus on real-time gameplay using WebSockets, HTTP, MYSQL.

Overview

This project consists of a client and server implementation, allowing multiple players to engage in a game of chess over the web. The game uses WebSockets to establish a real-time connection between clients and the server, enabling seamless communication and gameplay.networking using HTTP and WebSocket, database persistence, unit testing, serialization, and security.

Architecture Diagram https://sequencediagram.org/index.html#initialData=IYYwLg9gTgBAwgGwJYFMB2YBQAHYUxIhK4YwDKKUAbpTngUSWDADIQDmSaF1hKmAuvkLFgpACIoEKMCh5U+A3MMZjmAcWABbOZQUh+QhqNIAlFJwDOYKMAIRuexcuNMY4u8ACCIA5csCACaeAEbAligwgSGCguxQEACu2DAAxGjAVACeMOZWNnZIDmkA7gAWSLKYiKikALQAfOR6lABcMADaAAoA8mQAKgC6MAD0iRFQADpoAN7jlBk6ADQwuP4l0IErKFrASAgAvpjylDCNuRZI1rb2jrwG7VCX1pQAFPNQiygra5YbUFsYDs9ggAJSYPJXAq3eR8M5NDxgby+FD+drsGQAVQm7wmX3BiORfks8KiIXaZAAoixKXB+jAPl8YAAzBJaBkTTCEnzEs7nSHXQoOWEPGBoRIIBAQ57Qop3fSRc7clFomAgJ52FDYt6M7TfVbhP6bAmeHmoknnaLtACSADkqaZ6brlgb1pttrt9jA7f0ehzaALZcKnAZScrie11ShNV5EmAyriFnqTUizf5SVbvfbKY7-Z89StgHGyv0IABrdBZ30wIvxrmmlUW-kym5ykUodq1kvl9DS-Kt4P3RXnE5QTvF0sVtDHFqwOrnGroMDtABMAAY19MZl3J+gjuhAgJ4kkUqloGIMawOFxShUqov6k1R+1un0hqMIv45Vvnfrfv9AiOUdSTYTh5T4doEGvNBE3zF1-2NTBQK4dt4XDc12jgMoUBAMs4CeQIlyQYAEFgr4lgQgEUyJc0M3JchqVpJ08T1Fk2TzGs0ECGAnjARJPldI0AXrVNGz5BpkPA0Udx7adJNQ+cGmfGsJ1kmdqFORT4GQJdVw3LcZKnI5MAPI8EmSNJ4hQStQKSZhUnKSp+AfZgR1nF9xEY-pKWGEZP0sb8MlUqd1JoOcESkGRdCHSCODs15-LlQtgvQAlItkBSGnQ1UQGw3CKC-BwEvNJKVPjXc0HBaJFOyyxWn6KBEn4WqavS6KFXaBqmq5NrMtq9pJGkDKSqKxKHGS8rZKqkIaobCMYC65q5vNVqhvaiCFsa5repDFBFOfRbQsoRSXL0zdZgAIjIRJG2ZCUEByKD2Dsi79y4syTzSAjWChGBNB0EkHLvJbRN5RpM1ynCywKgLRpGtAJu7KdwRc0llI6dRKXfEZ2D1aZDN7YDzn+9bRXUGQSZYKFXgJyrMBJvrltVLCodjSapxplK6dq+FMwoaRwBgNmkd7arGn6zbupaxoGd2zqtvpvV23Fpm6r+im9Sp6xOfZ1KRJo-xwfo-mcI0TWoUwMWstV9oSeQax9bTSxFNlmK-r1e2sFdhV9vc92dE9o650aU7-akC2TPezBjws1JsH47BpHgDVZDD28nOqHTH2aDSx06XoBl83GdHxrmt2LlBbT1IDZ1Jb2Nvw6NZBJnWRYRkmq50cF69DFXQYw+A8rLYWKtbirqKd3njciwWR7Uq2JcO6WGh7jtJf4Ve0JtmAADEuECBBwjACvrXEV4J7Eo2KRn5hD+sE-xEtma+4NtW7+PvVT8dxsXaVuWYHfg-RWOhlbW37szFOKAW6d2+IAz+4gL7Eivt6NAEwzY6BgZxbiJMv4L23kvVWv8QH-0OqvX2udbbwKDuJUOODH6R0PNHcyp4shSCgiUGAAApCAN4SZpBCIfXCmdaiuSfH7bomJsYV1LrrNAW4XJwAgFBKAKwH411znXP+btuFcBbrTJYCilHQFUfA7uWiFRb3AWrFmuE54c1pog2iyCTazy5k-WaVj5ZS0ITLcxG1SF+N7mA1+tssQsR0GPKa38wYND5jfGA2o4L8DwZ4hJ4SN6BMVMEp27Q95cToa8B+jj0zOPiUAlJIT17RJWr44hbsAl1J9tkxsmFIF6K5gYrOYBFHKJMToU+xTnaxOngLdBkRT4oLQWVCAFUsEwHcS-HJVTl6ry8RkxpfByFhUof0x+RMQ5dJ2SgL+DCPqx3iMAHIiBoywGANgROhAhRoHTveLpaNxGeRpN5Xy0RqHix2m7QaUUSIIHEAAIXPj1NaoCJZAtkCC8FkKWrDIGm1GAAAqBZzT5oEKsatKK7Y1lQoJbtLZbQqmjhOocqppkgA

Key Features

Multiplayer chess gameplay over the web using WebSockets Real-time updates and communication between clients and server Support for multiple games and players Simple text-based user interface for easy gameplay Advanced technologies: Networking using HTTP and WebSocket Database persistence for game state and player data Unit testing for robustness and reliability Serialization for efficient data transmission Security measures to protect player data and prevent cheating

IntelliJ Support

Open the project directory in IntelliJ in order to develop, run, and debug your code using an IDE.

Maven Support

You can use the following commands to build, test, package, and run your code.

Command Description
mvn compile Builds the code
mvn package Run the tests and build an Uber jar file
mvn package -DskipTests Build an Uber jar file
mvn install Installs the packages into the local repository
mvn test Run all the tests
mvn -pl shared tests Run all the shared tests
mvn -pl client exec:java Build and run the client Main
mvn -pl server exec:java Build and run the server Main

These commands are configured by the pom.xml (Project Object Model) files. There is a POM file in the root of the project, and one in each of the modules. The root POM defines any global dependencies and references the module POM files.

Running the program using Java

Once you have compiled your project into an uber jar, you can execute it with the following command.

java -jar client/target/client-jar-with-dependencies.jar

♕ 240 Chess Client: chess.ChessPiece@7852e922