Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tournament App

Python web app with a FastAPI backend and a Streamlit frontend for creating and running tournaments.

Features

  • Create tournaments with individual or team names, participant count, and setup
  • Setups: single elimination, double elimination, round robin, groups → knockout, Swiss
  • Simple A/B score entry (draws allowed in round robin / Swiss / group stage)
  • SQLite persistence (no auth in v1 — open edit access)

Swiss defaults

  • Rounds: ceil(log2(n)) (overridable on create)
  • Pairing: score-group pairing, avoid rematches when possible
  • Tie-breakers: points → Buchholz → Sonneborn–Berger → name

Project layout

backend/               FastAPI application
  api/                 HTTP routes
  core/                Settings
  db/                  SQLAlchemy engine/session
  models/              Enums, DB models, Pydantic schemas
  services/            Tournament engines + orchestration
frontend/
  app.py               Streamlit UI
data/                  SQLite DB (created at runtime)

Setup

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env

Run

Terminal 1 — API:

uvicorn backend.main:app --reload --port 8000

Terminal 2 — UI:

streamlit run frontend/app.py

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages