# ReverseQuiz

Game where you have to fool your friends with false answers to trivia quiz questions.

I created this game to be able to remotely play games with friends during the Coronavirus pandemic. It was built using `node.js` and `socket.io`.


## The Game

Reverse Quiz is like a normal quiz, but with a twist: everyone can submit answers to the questions. If someone thinks your answer is correct, you get some points.

So come up with false answers to trivia questions and, afterwards, select the correct one to gain the most points. Don't be deceived by your fellow players' entries.

These simple rules actually make for a pretty entertaining game that's still really fun to play with some friends. I enjoyed creating it, and I hope you like playing it. Have fun!


## Installation

You can host the game on your own computer, by following these steps:

**Note:** this guide assumes you're running Ubuntu and have already installed node.js on your system.

1. Open a terminal window
2. Download the code: `git clone https://git.bitscuit.be/bitscuit/ReverseQuiz.git`
3. Move into the project directory: `cd ReverseQuiz`
4. Install the dependencies: `npm i socket.io` and `npm i node-fetch`

You can now edit the `main.js` file with your favourite text editor and change the following:

- Set the value of `hostname` to your machine's IP address on your local network. This will make it possible for anyone on your local network to join the game.
- Set the value of `port` to whatever port you want the game to run at.

## Usage

Once you've installed the game on your system, run `node main.js` to start the game.

Other players can now join the game by entering `<IP-address>:<port>` in their browser.

If you want others to be able to join over the Internet, you should forward a port on your router and redirect it to your machine. More information about this can be found [here](https://www.howtogeek.com/66214/how-to-forward-ports-on-your-router/). Others can then join the game by entering your *public* IP address in their browser.


## Contributing

Want to help develop Reverse Quiz? Awesome!

Feel free to fork this repository, add new features and submit a pull request. Thanks!


## Disclaimer

Copyright 2021 Thomas Van Acker

This project is available under the [GPLv3 license](https://www.gnu.org/licenses/gpl-3.0.en.html). This program comes with ABSOLUTELY NO WARRANTY.

I am not resposible for any damage that may be caused by this software. USE AT YOUR OWN RISK.


## Acknowledgements

Reverse Quiz uses the following libraries:

- Node.js, available at [https://github.com/nodejs/node](https://github.com/nodejs/node), [license](https://github.com/nodejs/node/blob/master/LICENSE)
- socket.io, available at [https://github.com/socketio/socket.io](https://github.com/socketio/socket.io), [license](https://github.com/socketio/socket.io/blob/master/LICENSE)
- skeleton, available at [https://github.com/dhg/Skeleton](https://github.com/dhg/Skeleton), [license](https://github.com/dhg/Skeleton/blob/master/LICENSE.md)
- FontAwesome, available at [https://github.com/FortAwesome/Font-Awesome](https://github.com/FortAwesome/Font-Awesome), [license](https://github.com/FortAwesome/Font-Awesome/blob/master/LICENSE.txt)
- Node Fetch, available at [https://github.com/node-fetch/node-fetch](https://github.com/node-fetch/node-fetch), [license](https://github.com/node-fetch/node-fetch/blob/master/LICENSE.md)
- Open Trivia Database, available at [https://opentdb.com/](https://opentdb.com/), [license](https://creativecommons.org/licenses/by-sa/4.0/)

