An open API service indexing awesome lists of open source software.

https://github.com/orazchollaev/tournament-sim

A browser-based tournament bracket simulator built with Vue 3 and TypeScript
https://github.com/orazchollaev/tournament-sim

brackets football sports-simulator tournament tournament-manager typescript vite vue

Last synced: 24 days ago
JSON representation

A browser-based tournament bracket simulator built with Vue 3 and TypeScript

Awesome Lists containing this project

README

          

# Tournament Sim

A browser-based tournament bracket simulator built with Vue 3 and TypeScript.

Create tournaments, manage teams, simulate matches with penalty shootouts, and follow the bracket from first match to final.

## Features

- Create and manage multiple tournaments with custom team rosters
- Two tournament formats: **single-elimination bracket** and **group stage + knockout**
- Group stage with round-robin fixtures and live standings (pts / gd / gf)
- Classic cross-seeding when advancing from groups (1A vs 2B, 1B vs 2A …)
- Match results with optional penalty shootout scores
- Manual draw support for seeded tournaments
- Persistent state — everything survives a page refresh
- Pre-built example data (Champions League, World Cup formats)

## Tech Stack

| Layer | Tool |
| ------------ | -------------------------------------------------- |
| UI Framework | [Vue 3](https://vuejs.org/) + TypeScript |
| Build | [Vite](https://vite.dev/) |
| State | [Pinia](https://pinia.vuejs.org/) with persistence |
| Routing | [vue-router](https://router.vuejs.org/) |

## Getting Started

```bash
pnpm install
pnpm dev
```

Build for production:

```bash
pnpm build
```

## Project Structure

```
src/
├── engine/ # Core bracket & match logic
│ ├── utils.ts # uid, shuffle, round naming
│ ├── simulation.ts # Match & penalty shootout simulation
│ ├── bracket.ts # Bracket generation & winner propagation
│ ├── groups.ts # Group fixtures, standings, simulation
│ ├── tournament.ts # Tournament factory & group seeding
│ └── index.ts # Barrel export
├── modules/
│ ├── tournament/ # Tournament pages, bracket, draw
│ ├── teams/ # Team management
│ └── settings/ # App settings
└── examples/ # Sample tournament JSON files
```