- Jeopardy!
- Multiplayer
- API for Games, Categories, Questions, and more
- Great for quarantines!
- Python3.8+ (Uses the assignment operator
:=
) - Game: Flask and Flask-SocketIO
- API: Flask-RESTful, Flask-SQLAlchemy, Flask-Marshmallow (API)
- (Optional) Eventlet (See here for more details)
Run in a "development" environment super easily!
# Clone the files
git clone https://github.com/cazier/jeopardy
# Enter the directory
cd jeopardy
# Install requirements
python -m pip install -r requirements.txt
# Run!
python jeopardy/web.py
Note, per the Flask-SocketIO documentation, if using either eventlet or gevent web servers, running that above command is enough for a production environment. If that's not the case, see the documentation for other deployment methods
There's also a Docker image you can use too! Just make sure to forward the port, as needed, and make sure that you're providing a database file, via a bind mount, if you want to use more than the sample.
docker run -p 5000:5000 --env DB_FILE=questions.db -v ${PWD}/questions.db:/home/jeopardy/app/questions.db --env APP_URL=https://<your_domain_here> -it -d cazier/jeopardy:latest
The backbone of all the data that makes this game work is on an API. There are currently no API docs. (It's a work in progress...), but the endpoints can be found in routes.py
, and you may be able to work out what they do from their. Docs are forthcoming!
Without this website, this project wouldn't have happened. I couldn't find any terms of use or service that prohibited programmatic scraping of their content.
Obviously the idea of Jeopardy!, the trivia data, all of that is property of Jeopardy!, and I claim no ownership of it. It's all theirs.