This repository contains the backend for the Chickenshock minigame.
It persists the game data (configurations, game results, etc.), in a database and communicates with other backend services.
- User documentation for the minigame can be found here.
- For the frontend, see the Gamify-IT/chickenshock repository.
- The installation manual and setup instructions can be found here.
Rest mappings are defined in
- Game result
controller:
src/main/java/de/unistuttgart/chickenshockbackend/controller/GameResultController.java - Config
controller:
src/main/java/de/unistuttgart/chickenshockbackend/controller/ConfigController.java
When the service is started (see Getting started), you can access the API documentation:
Open http://localhost/minigames/chickenshock/api/v1/swagger-ui/index.html#/ and
fill http://localhost/minigames/chickenshock/api/v1/v3/api-docs into the input field in the navbar.

Beginning of additions (that work)
Make sure you have the following installed:
- Java: JDK 1.17 or higher
- Maven: Maven 3.6.3
- Docker: Docker
- PostgreSQL: PostgreSQL
To build the project, run:
mvn installin the project folder. Then go to the target folder:
cd targetand run:
java -jar chickenshock-backend-0.0.1-SNAPSHOT.jarto start the application.
To run your local changes as a docker container, with all necessary dependencies, build the Docker container with:
docker compose up --buildYou can remove the containers with:
docker compose downTo run your local build within your IDE, but also have the dependencies running in docker, follow the steps to build the project, then run the dependencies in docker with the following:
docker compose -f docker-compose-dev.yaml up You can remove the containers with:
docker compose -f docker-compose-dev.yaml downEnd of additions
To set up a database with docker for testing you can use
docker run -d -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=postgres --rm --name chickenshock-database postgresTo stop and remove it simply type
docker stop chickenshock-database
This class diagram shows an overview of the ConfigController class.
This class diagram shows an overview of the GameResultController class.
The data structure of GameResult and its contents are shown at the left and bottom of the diagram.
This simplified class diagram shows how the most important services, mappers and repositories in the project are interlinked.
To prevent incorrect or cheated data, all important values are checked for logic.
The field borders are configured in src/main/java/de/unistuttgart/chickenshockbackend/Constants.java.
MIN_POINTS: minimal number of points a player can achieveMAX_POINTS: maximal number of points a player can achieveMIN_QUESTION_COUNTminimal number of questions a player can answer correctlyMAX_QUESTION_COUNTmaximal number of questions a player can answer correctlyMIN_TIMEandMIN/MAX_SCOREshould not be changed