Favicon of Bracket

Bracket

codecov backend frontend last commit release


Warning

This project is still under construction and considered beta software. Release v1.0.0 will be the first out-of-beta release.

Ladder tournament system meant to be easy to use. Bracket is written in async Python (with FastAPI) and Next.js as frontend using the Mantine library.

Preview

Setup

Database

First create a bracket cluster:

sudo pg_createcluster -u postgres -p 5532 13 bracket
pg_ctlcluster 13 bracket start

Subsequently, create a new bracket_dev database:

sudo -Hu postgres psql  -p 5532
CREATE USER bracket_dev WITH PASSWORD 'bracket_dev';
CREATE DATABASE bracket_dev OWNER bracket_dev;

You can do the same but replace the user and database name with:

  • bracket_ci: for running tests
  • bracket_prod: for a production database

The database URL can be specified per environment in the .env files (see config).

Config

Copy ci.env to prod.env and fill in the values:

  • PG_DSN: The URL of the PostgreSQL database
  • JWT_SECRET: Create a random secret using openssl rand -hex 32
  • CORS_ORIGINS and CORS_ORIGIN_REGEX: Specify allowed frontend domain names for CORS (see the FastAPI docs)
  • ADMIN_EMAIL and ADMIN_PASSWORD: The credentials of the admin user, which is created when initializing the database

Running the frontend and backend

The following starts the frontend and backend for local development:

Frontend

cd frontend
yarn
npm run dev

Backend

cd backend
pipenv install -d
pipenv shell
./run.sh
Description
No description provided
Readme AGPL-3.0 28 MiB
Languages
TypeScript 51.1%
Python 47.6%
CSS 0.8%
Dockerfile 0.2%