- 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.pyNote, 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.