mirror of
https://github.com/evroon/bracket.git
synced 2026-07-31 10:16:46 -04:00
This PR migrates formatting in `frontend/` from Prettier to `oxfmt`,
including script wiring and dependency cleanup. It removes the Prettier
plugin/config path so formatting is handled by a single tool.
- **Script migration**
- Renamed/rewired formatting scripts in `frontend/package.json`:
- `prettier:check` → `format:check` (`oxfmt --check .`)
- `prettier:write` → `format:write` (`oxfmt .`)
- Updated dependent scripts:
- `test` now runs `pnpm run format:write`
- `openapi-ts` now runs `pnpm run format:write` after generation
- **Dependency cleanup**
- Removed `prettier-plugin-organize-imports` from `dependencies`
- Removed `prettier` from `devDependencies`
- Added `oxfmt` (latest stable at update time)
- **Config removal**
- Deleted `frontend/.prettierrc.js` (no longer used after migration)
- **Lockfile alignment**
- Updated `frontend/pnpm-lock.yaml` to reflect the dependency and script
ecosystem change
```json
{
"scripts": {
"format:check": "oxfmt --check .",
"format:write": "oxfmt .",
"openapi-ts": "openapi-ts && pnpm run format:write",
"test": "tsc && pnpm run format:write"
}
}
```
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Erik Vroon <11857441+evroon@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
49 lines
2.2 KiB
Plaintext
49 lines
2.2 KiB
Plaintext
---
|
|
title: Introduction
|
|
---
|
|
|
|
# Introduction
|
|
|
|
[Bracket](https://github.com/evroon/bracket) is a tournament system meant to be easy to use. Bracket
|
|
is written in async Python (with [FastAPI](https://fastapi.tiangolo.com)) and
|
|
[Vite](https://vite.dev/) as frontend using the [Mantine](https://mantine.dev/) library.
|
|
|
|
## Overview of features
|
|
|
|
It has the following features:
|
|
|
|
- Supports **single elimination, round-robin and swiss** formats.
|
|
- **Build your tournament structure** with multiple stages that can have multiple groups/brackets in
|
|
them.
|
|
- **Drag-and-drop matches** to different courts or reschedule them to another start time.
|
|
- Various **dashboard pages** are available that can be presented to the public, customized with a
|
|
logo.
|
|
- Create/update **teams**, and add players to **teams**.
|
|
- Create **multiple clubs**, with **multiple tournaments** per club.
|
|
- **Swiss tournaments** can be handled dynamically, with automatic scheduling of matches.
|
|
|
|
## Why does this exist?
|
|
|
|
There are plenty of tournament systems to be found online. So why does Bracket exist?
|
|
|
|
**Firstly**, there are **no complete open-source tournament systems to be found** [on
|
|
github](https://github.com/search?q=tournament%20system&type=repositories). Let me know if you find
|
|
one, I will list it here as alternative to Bracket. Furthermore, the closed-source tournament
|
|
systems that can be found online are typically payware, and **quite expensive**.
|
|
|
|
**Secondly**, there is a **lack of tournament systems that support Swiss tournaments**. There are a
|
|
few that exist, but they're typically quite ancient projects. Furthermore, AFAIK the Swiss
|
|
tournament systems that exist usually only support Swiss, no other types of tournament elements
|
|
(round-robin, elimination etc.). That is quite a limitation when you want to host a tournament that
|
|
starts with Swiss and determines a winner based on a knockoff (elimination) stage.
|
|
|
|
**Finally**, I developed this project to learn more about Vite and apply my Python (e.g. FastAPI)
|
|
experience to a project with a real purpose.
|
|
|
|
## Quickstart
|
|
|
|
To get started in selfhosting Bracket, follow the steps described
|
|
in [quickstart](/docs/running-bracket/quickstart.mdx).
|
|
|
|
To learn how to organize a tournament in Bracket, read the [usage guide](/docs/usage/guide.mdx).
|