No description
| app | ||
| src | ||
| tests | ||
| .gitignore | ||
| app_config.json | ||
| app_config.py | ||
| chi-captcha.txt | ||
| fn.md | ||
| id_tag.py | ||
| kure.jpg | ||
| kure.md | ||
| kure.pdf | ||
| kure.png | ||
| lehke-kure.png | ||
| licence.png | ||
| licence.py | ||
| lore.md | ||
| lore.pdf | ||
| luky.png | ||
| markdown-list.png | ||
| meat_tag.py | ||
| names.txt | ||
| NerdFontMono-Regular.ttf | ||
| pes.png | ||
| pr.md | ||
| print_label.py | ||
| print_markdown_list.py | ||
| pull-horizontal.png | ||
| pull-QR.png | ||
| qr_code.py | ||
| README.md | ||
| receipt.py | ||
| requirements.txt | ||
| run.py | ||
| ryba.jpg | ||
| sek.md | ||
| surnames.txt | ||
| tezke-kure.png | ||
| ticket_queue.py | ||
Corporate Adventure (Flask)
Web app for an IRL “adventure” game with a simple “corporate system” theme:
- Participants register only if their name is on an imported roster (CSV/YAML)
- Login system (name + password)
- Participant dashboard shows their position and corporate credit
- Organizers (flagged in the roster) can adjust credits and a company-wide evaluation score
Setup
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Run
export SECRET_KEY='change-me'
python3 run.py
Then open http://127.0.0.1:5000.
Default admin (first run only)
On first run only when there are no users yet, the app will auto-create:
- username:
admin - password:
hroch112
You can override these before first run:
export DEFAULT_ADMIN_USERNAME='admin'
export DEFAULT_ADMIN_PASSWORD='hroch112'
Database
By default the app uses SQLite at instance/app.db and creates tables on startup.
You can override:
export DATABASE_URL='sqlite:////absolute/path/to/app.db'
Roster import format
CSV headers:
name(required)role(participantororganizer, defaultparticipant)position(optional)initial_credit(optional integer)
YAML: list of objects with the same keys.
Smoke test checklist
- Start the app (
python3 run.py) and openhttp://127.0.0.1:5000.\n - Create an organizer in the roster:\n
- Go to
/register(it should fail until a roster is imported).\n - Temporarily import a roster as an organizer by preloading a roster entry directly in SQLite, or (recommended) first add a roster import file and use an organizer account.\n
- Easiest path for a first run: create
instance/app.dband insert a roster entry for yourself, then register and set your role toorganizer, then use the UI.\n
- Go to
- In Admin → Import roster, upload a file like:\n
- CSV:\n
name,role,position,initial_credit\n Alice Example,organizer,HR Lead,10\n Bob Example,participant,Engineer,0\n ```\n
- CSV:\n
- Register users:\n
/registerwith a roster name should succeed.\n/registerwith a non-roster name should be rejected.\n
- Organizer actions:\n
/admin/adjust-creditchanges credit and adds a ledger entry.\n/admin/companychanges evaluation and adds a ledger entry.\n
- Participant dashboard:\n
/dashboardshows credit + company evaluation.