Django-powered web application for the 2023 Girton Spring Ball Ticketing platform.
- Create a virtual environment:
python3 -m venv .venv
- Activate the environment:
. .venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Set up pre-commit:
pre-commit install
- Source required variables:
. app/dev.sh
- Install fixtures (make sure to load user_kind last as it has foreign key dependencies on all the other fixtures)
- Run local development server:
python3 manage.py runserver
- Any
manage.py
command should automatically create the SQLite database. - Import seed data:
python manage.py loaddata ticketing/fixtures/*
- Migrate the database:
python manage.py migrate
- Django
- ucamwebauth (custom fork, needs to be manually installed with
python setup.py install
)
Lookup requests are forwarded from a simple CGI script hosted inside the University.
- Move to
public_html
- Set appropriate permissions
Because of Reasons, we are using Heroku for deployment.
Changes to make:
- Set the right env vars: django_settings_module, secret_key
- Push:
git subtree push --prefix app heroku master
orgit push heroku ``git subtree split --prefix app master``:master --force
if you need to get yourself out of a pickle - Set yourself as superuser and staff via psql
- Clean up any migrations, shortcuts:
heroku run bash
orheroku psql
- Set the right promocode, change the wave, etc
A custom scanner web app is used to scan tickets. A stripped out database is hosted on another Heroku instance.
To prepare the database, run the setup script to clean a fresh copy of the DB on a local machine then:
heroku pg:push gsb23_tickets DATABASE_URL --app gsb-scanner
Verifies that a list of Cambridge emails meet these requirements: current student + current member of Girton College.
Usage: python3 girtifier.py -h
to find out.
Web-based QR code scanner for ticket check-in.
MIT
Matias Silva 2022