- Introduction
- Built With
- Main Components
- Deploy Locally with Gradle
- Deployment
- Roadmap
- Authors & Acknowledgments
- License
Brain Busters is a trivia game designed to entertain and educate players on a wide range of topics, from history and geography to pop culture and sports. It provides a solution to the problem of limited entertainment and educational options for people seeking to learn, have fun, connect with others, and maybe even discover new interests.
The game stands out for its various game modes. The classic trivia game offers a traditional style of gameplay, while the image mode gradually reveals blurry pictures. Both modes challenge players on quick decision-making. The facts are accessed and updated using an API, keeping the game up-to-date and accurate.
Next to the single mode, the tournament mode adds an exciting element of competition, allowing players to participate in a bracket-style tournament, creating a more dynamic and engaging experience, as players can track their progress and compete for the ultimate title of Brain Busters champion.
- React - Front-end JavaScript library
- Spring - Framework that enables running JVM
- Gradle - Build automation tool
- STOMP - Bidirectional real time communication
- The Trivia API - REAST API for retreiving text questions
- Mailjet API - REST API for sending mails
- PostgreSQL - Persistent Open Source DB
The User entity is a core part of BrainBuster, since else in order to participate in a game one has to be able to log in, log out and getting their achieved points. Additionally, an important factor is that one gets recognized and is able to keep the points in their game und thus being able to compare their rank/effort with other users.
The UserController handles requests from the front-end regarding users and fulfills their requests.
The Game entity is a crucial part of BainBusters since without a game the users would not be able to play and obtain their points. Nor being able to retrieve the appropriate questions.
The GameController responds to requests from the front-end regarding Games and fulfills their requests.
The Websockets enables to directly inform the client from the server.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Clone the client-repository onto your local machine with the help of Git.
git clone https://github.com/sopra-fs23-group-10/sopra-fs23-group-10-server.git
./gradlew build
Server should be up and running on localhost:8080
with a non-persistent H2-DB.
./gradlew bootRun -DSPRING_PROFILES_ACTIVE=test
./gradlew test
- the main branch is automatically mirrored onto Google Cloud App Engine via GitHub workflow
- Google SQL PostgreSQL instance is hosted on Google Cloud
- Credentials for Google App Engine and SQL instances are replaced with GitHub Secrets
- follow GitHub documentation
- database is reset during a release with the current settings!
Features that new developers who want to contribute to our project could add.
- new game modes, e.g. a music quiz
- convert to iOS & Android native app
- increase responsiveness for mobile browsers
- add new records to our image database
- Sarah Egger - Frontend - saeie07
- Linn Spitz - Frontend - ringdinglinn
- Patrick Widmer - Backend - Chopstew
- Sandrin Hunkeler - Backend - Altishofer
- Cédric Lüchinger - Backend - dattes
We would like to thank our tutor jemaie and the whole team of the course Software Engineering Lab from the University of Zurich.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.