sopra-fs23-group-40 / Server

Apache License 2.0
1 stars 0 forks source link

SoPra FS23 Group 40 - TacBlock

Introduction

Motivation

Our idea was to create a game that would be fun to play, which keeps us motivated for the whole semester. We decided to create "TacBlock", which is similar as the original game "Blokus" from Bernard Tavitian, but as a nice online game version.

Game Mechanism

The game is played by 4 players, who have to place their blocks on the board. The goal is to place as many blocks as possible. The game ends when no player can place any more blocks on the board. The winner is the player with the most blocks on the board. You can find a "Rules" section in the game, which explains the game in more detail.

Technologies

For the Client's technologies, please refer to the Client's README.md.

High-level components

Launch & Deployment

How to run the application

  1. Clone the repository and navigate in the terminal to its location
  2. With the command ./gradlew build, the project will be built
    Alternatively, you can right-click the build.gradle in your IDE and select "Build Module 'Server'".
  3. With the command ./gradlew bootRun, the project will be run
    Alternatively, you can right-click the build.gradle in your IDE and select "Run 'Server'".
  4. The server is now running on localhost:8080
    • To run only the tests, use the command ./gradlew test
    • To exclude tests when building, use the command ./gradlew build -xtest

How to deploy the application

  1. To deploy the application, push it to the main branch of the GitHub repository.
  2. The application will be automatically deployed on Google Cloud and checked by SonarCloud.
  3. The server is now deployed on http://sopra-fs23-group-40-server.oa.r.appspot.com.
    (the Client will be deployed on http://sopra-fs23-group-40-client.oa.r.appspot.com)

Please note that Google Cloud checks are very strict. It is possible that the deployment fails for example because of unused import statements, so make sure to chat that beforehand.

Illustrations

1. Login & Registration

Login

Login

Registration

Register

2. Rules

Rules

3. Finding & Creating a Lobby

Lobby Overview

LobbyOverview

Lobby

Lobby

4. Playing the game

Welcome Information

Welcome

Empty Board

EmptyBoard

No moves possible

NoMovesPossible

Ingame Rules

WelcomeInfo

Resigning from placing blocks

Resign

Leaving the game

Leaving

5. Game over screen

GameOver

6. Statistics

Statistics

Roadmap

Possible features for the future:

Authors and Acknowledgment

Authors

no acknowledgements

License

MIT License

Copyright © (2023) (thomi100, Karo2222, turbodumba, PaulPerpetual, jverho)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.