We are a Team of 4 Students at the UZH of Zürich. For the course Software Enginnering Lab we had to build a web app. We wanted to make a fun project and therefore we decided to implement a game. The game we choose is the popular game Uno Extreme.
- gradle (build tool)
- java 15
- spring boot
- Heroku (for automatic deployment via github)
- Sonarcloud (for Coverage and bug detection)
- GameController handles all requests via websockets and calls the GameService with the data.
- GameService validates and processes the data and stores the changes in the game repository.
- JpaEntity Game & GameRepository stores the game data such as players their hands the deck and the discard pile.
- UserController via Rest protocol
- UserService Handles the User data from the controller
- LobbyController Rest and Websocket Endpoints
- LobbyService Handles the Lobby data from the controller
Building with Gradle You can use the local Gradle Wrapper to build the application.
- macOS: ./gradlew
- Linux: ./gradlew
- Windows: ./gradlew.bat More Information about Gradle Wrapper and Gradle.
./gradlew build
./gradlew bootRun
./gradlew test
You can start the backend in development mode, this will automatically trigger a new build and reload the application once the content of a file has been changed and you save the file.
Start two terminal windows and run:
- ./gradlew build --continuous
and in the other one:
- ./gradlew bootRun
If you want to avoid running all tests with every change, use the following command instead:
- ./gradlew build --continuous -xtest
- Sorting Cards according to Color before returning them
- Profile Picture displayed in lobbies
- Additonal Cards like Change Hands
- Livia Stöckli
- Florian Rüegsegger
- Lea Kehrli
- Mauro Hirt
- Kyrill Hux: Project Assistant teacher
- Thomas Fritz: Professor
- Roy Rutishauser: Head asssistant teacher
This project is licensed under the MIT License - see the LICENSE.md file for details