Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/obilodeau/ceopardy
Game Board for NorthSec's Hacker Jeopardy since 2017
https://github.com/obilodeau/ceopardy
board flask game hacker jeopardy sqlalchemy
Last synced: 9 days ago
JSON representation
Game Board for NorthSec's Hacker Jeopardy since 2017
- Host: GitHub
- URL: https://github.com/obilodeau/ceopardy
- Owner: obilodeau
- License: gpl-3.0
- Created: 2017-03-14T15:35:23.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-09-26T05:43:36.000Z (about 1 month ago)
- Last Synced: 2024-10-14T23:23:27.187Z (23 days ago)
- Topics: board, flask, game, hacker, jeopardy, sqlalchemy
- Language: HTML
- Homepage: https://www.nsec.io/competition/
- Size: 1.15 MB
- Stars: 13
- Watchers: 3
- Forks: 12
- Open Issues: 4
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
README
= Ceopardy
The Hacker Jeopardy Game Board we use at NorthSec.
== Screenshots
This is what the crowd sees:
image::docs/images/viewer-board.png[The Viewer Interface Displaying the Game Board]
When a clue is displayed:
image::docs/images/viewer-clue.png[The Viewer Interface Displaying a Clue]
This is the host interface, how you control the game:
image::docs/images/host.png[The Host Interface]
Note that there are two drawers that can be opened by clicking on the brown
arrows at the top and at the bottom of the screen. The top drawer contain the
functions to change team names. The bottom drawer provides functions to
display a custom message on the board or to pause a game.== First time deployment
You need Python, pip, virtualenv and npm. The tl;dr:
python -m venv .venv/
source .venv/bin/activate
pip install -r requirements.txt
npm install
npm run copy-assets
python ceopardy.py== Setup
=== Display
You need at least 2 outputs: one for the game host for control and one for the
public.At NorthSec 2017, we used 3 outputs because we didn't have the proper gear to
duplicate the public output for a stage monitor. There is a script in
`helpers/` that will set 3 outputs using `xrandr`. It didn't work with a GUI
tool when we tried at that time.== Prepare a game
Game data goes in `data/`. There you should add round files (create a `.round`
file) and questions in `Questions.cp`. The format is pretty self explanatory.
Check `data/` for an example.== Running
python ceopardy.py
Then open http://127.0.0.1:5000/host[the host view] and setup the game.
http://127.0.0.1:5000/[The players' view] (also known as the viewer) can be
opened at any time. Nothing will be displayed until the game is started by
the host.NOTE: In order to avoid dataloss due to a crash, Ceopardy is backed by a
database where transactions are pushed when the hosts submit the points. This
has the flipside requiring games to be finalized before a new one can be
started. Make sure that you always push the "Game over" button before
reloading to start a new game.