AppealR is a platform designed to gamify the process of identifying inconsistencies within the rules of 'What? Where? When?' games.
The "What? Where? When?" game is a team quiz, where the team answers questions. Some answers are not anticipated by the authors of questions, so the team can appeal. Appeals are judged by an appeal jury according to the rules of the game.
Appealr uses a database of appeals submitted by real teams.
Appealr is written in Python. It uses htmx (via fasthtml package) and sqlite (via fastsql package). It uses picocss for CSS styling and icons8 for icons.
The code is licensed under AGPL 3.0 or any later version.
We use questions and appeals from the GotQuestions dump of appeals. The questions are licensed under CC BY-NC-ND 4.0 by default; more detailed information is on copyright page of GQ.
pip install -r requirements.txt
python src/main.py
Set BASE_URL
and PORT
environment variables if needed.
Also has src/database.py
to import questions from JSON to sqlite database.
GET /
- root page with the project description and "Start" button
POST /p
- randomly chooses jury member and creates a pack with 5 appeals judged by this jury member. Redirects to /p/:pack
GET /p/:pack
- shows the current appeal from the pack (either only htmx part or whole page). Has "Accept", "Decline" and "Both are correct" buttons. Each button sends request to POST /p/:pack/:n
and saves the result into database.
Then it shows the form (only htmx or whole page) with the original verdict from the appeal jury. Has "Fair" and "Unfair, send to higher instance" buttons. If unfair, saves the question and appeal for emailing. Both buttons send POST /p/:pack/:n/fairness
and move to the next question. If the question is final, it shows saved appeals and redirects to /p/:pack
GET /p/:pack
(if pack was finished) - shows total information about pack: how much times the user had the same verdict as the appeal jury. Has a link to each question and the original and user's verdict.
If you have any other questions, please don't hesitate to contact me directly: @gltronred or gltronred@pm.me.
You can also:
You can support my work on liberapay (regular donations) or buymeacoffee (one-time donation).