Skip to content
This repository has been archived by the owner on Feb 14, 2024. It is now read-only.

BenjaminBruenau/Schach

 
 

Repository files navigation

Schach

Scala CI

Game Project for the Software Architecture class in AIN5 at HTWG

The game is using the common chess rules. If you want to know more about those click here.

Check out the Documentation of our Game(-Logic) here

Usage

The easiest way to start the Game locally, after cloning the repository, would be to start the Persistence and Model Service via their respective Docker Containers (located in the docker-compose.yml) and by then starting the Main Method of the Root Service to gain easy access towards the Text-and Graphical User Interface.

(Alternatively the Root Service can be used through its Docker Container by either setting the Display Variable in the compose file correctly to connect with the GUI or using the REST Interface via its paths)

Architecture

The Root Service is the core of the Game, containing the User Interfaces as well as the Games Controller.

The Model Service defines the GameField Model and Rules, but is also responsible for maintaining and updating the instance of the current Game.

The Persistence Service is providing the option to persistently save and load a specific Game State (or Game States in the case of MongoDB / Slick).

While running the Application and interacting with the Root Service to play the game, it will communicate with the other two Services via HTTP and REST APIs by exchanging JSON Data.

Tests

The Unit-Tests (src/test) can be run locally without further requirements thanks to our Mock Implementations.

The Integration-Tests (src/it) need to be run with a Docker Service available (e.g. Docker Desktop), since we make heavy use of Testcontainers for Scala to provide a Database and needed Micro Services for these Tests.

The Performance Tests can be run individually (after starting up the required Services) by exchanging the needed Test Class in our Gatling Runner

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 99.1%
  • Dockerfile 0.9%