Simple ctf-like platform for irl treasure hunt. (don't let my friend know I'm planning his surprise birthday party)
Small project made for a friends surpise birthday party. Project was limited in scope and only meant to be used a single day by a single user, so few resources were invested in architecture, robustness and security.
In order to keep costs down and rapidly iterate without having to deal with setting up servers and stuff, the project was built on the Google Cloud Platform (gcp)
The following is a simple backend that serves as a thin layer between gcp data and the frontend (WIP) running on gcp app engine.
The API allows for basic read and modify operation on the task entity, which represents a task the birthdayboitm has to complete. On each of the IRL checkpoints, the birthdayboitm has to complete a task, and is awarded with a solution string that is inputet via the frontend. When the correct solution string is provided, the task is marked as solved and the birthdayboitm can move on to the next task.
export GOOGLE_APPLICATION_CREDENTIALS="[path to credentials file]"
pip install -r requirements.txt
python main.py
gcloud app deploy
GET /task/<task_number>
patch /task/<task_number>
This endpoint takes in form data.
If the form data contains a the field reset
(with any value),
the task is reset to unsolved without checking the answer string.
If not, the field answer
is compared with the solution.
Returns 200
on correct answer string and 400
on incorrect answer string.
GET /task/
Returns a list of all tasks, sorted by natural order.
PATCH /task/
Resets all tasks to unsolved