CRR tools

Two independently runnable applications migrating into one monorepo:

  • Tournament: Vue 3 and the temporary legacy Node backend.
  • Shifts: FastAPI, Jinja, SQLAlchemy and Alembic on Python 3.13.
  • CRR brand: shared logo, favicon and CSS primitives.

See the migration plan and verified progress and baseline evidence.

Development

Requires Node 22+, Python 3.13, uv, and make.

make tournament-install
make tournament-test tournament-build
make shifts-test
make test

uv resolves Shifts dependencies using the single root uv.lock and creates the root .venv. Tournament joins that workspace when the FastAPI backend is ported. Run make tournament-backend-dev and make tournament-frontend-dev in separate terminals, or make shifts-dev for Shifts. App-specific environment setup is documented in each application's README.

Deployment

Docker Compose 2.24+ supports the optional per-app environment files:

docker compose up --build tournament
docker compose up --build shifts

Each service has its own Dockerfile, image, database volume, and credentials. Set the application's secrets in its environment file before deployment. Release tags will be app-specific: tournament-v... and shifts-v....

Baselines

originals/ is read-only, including its nested Git repositories. Baseline checks run in disposable .migration/ copies using make baseline-test; production code and CI run exclusively from apps/. See migration/README.md for fixture and screenshot commands. Root Docker contexts exclude both the snapshots and migration artefacts.

S
Description
No description provided
Readme
2.6 MiB
Languages
Python 42.2%
TypeScript 27.4%
Vue 15.4%
CSS 7.1%
HTML 5.9%
Other 1.9%