Quinzical is a quiz platform written in java and designed for players to test their knowledge of New Zealand through multiple categories. The quiz platform contains a game module and a practice module for the players to practice and measure their knowledge. The game module contains 25 random questions (5 questions per category) each with a score ranging from $100 to $500. The practice module contains all categories and the user will be given a random question from the category chosen. Each question is read out aloud using TTS. Quinzical multiplayer is an online feature that is multi-platform with an implemented web client to play online with your friend and family. Heavily inspired by Among Us.
- New Zealand themed
- TTS for reading aloud questions using espeak
- SQLite database
- Cloud based User login/register using REST API backend
- Responsive UI design with fxml
- Settings menu to change volume and TTS speed
- Github workflows to check code style and lint
- Online Multiplayer Quinzical (with web client)
Check our server status here
- Linux or Unix system (designed for ubuntu)
- espeak installed (for TTS support)
- JavaFX 11 sdk installed
- Java installed (Java 14 recommended)
- Atleast 4GB of system RAM (uses approx 1GB of memory)
- Eclipse IDE
- Checkstyle installed and use checkstyle.xml
- Eclipse formatter setup using eclipse-formatter.xml
Run bash script when using 206 VM2 with atleast 4GB RAM
$ ./Quinzical.sh # or bash Quinzical.sh
Run on .jar by add arguments (replace /usr/share/java/lib
to javafx sdk)
java --module-path /usr/share/java/lib --add-modules javafx.controls,javafx.media,javafx.base,javafx.fxml,javafx.web,javafx.graphics -jar Quinzical.jar
If you do not want to create a login, our default login is as below:
Username: Bob
Password: password
The workspace contains two folders by default, where:
src
: the folder to maintain sourcesquinzical
: application packagecontrollers
: controllers for viewslocal
: controller for local gamesonline
: controller for online gamesutil
: controller utils for buttons and alerts etc.
resources
: includes fxml, css, fontimages
: for all iamges
util
: models, sql and apiapi
: used to access apimodels
: models for accessing dataprocesses
: task/thread related processessocket
: socket io handlerssql
: used to access sqlite
data
: the folder to maintain datadata.db
: sqlite filehash.txt
: checksum is used to check if quinzical.txt is changedauth.txt
: saves jwt token for auto login
Questions are in the file quinzical.txt
in the format:
CATEGORY_NAME
QUESTION\ (What is) ANSWER
Example:
NZ Life
This is the name for a traditional fenced Māori village\ (What is) a Pā
This is the Māori word for stomach\ (What is) Puku
Local userdata is stored in sqlite and on cloud using the endpoint
- Styling pop ups
- Scene Manager Concept
- Learning more about JavaFX Animations
- Socket io usage
- Using org.json
- Idea of using Timelines to animate
- TilesFX demo project was referenced to use library (bad docs)
- Native HttpClient was used
Most code follow java and library documentations.