Skip to content

DraftForge Documentation

Welcome to the DraftForge documentation. DraftForge is a platform for managing Dota 2 tournaments, teams, and competitive gaming.

Overview

DraftForge is a full-stack application for managing:

  • Users - Discord-integrated user management
  • Tournaments - Tournament creation and management
  • Teams - Team organization and drafting
  • Games - Match tracking and statistics

Screenshots

Home Tournaments
Home Tournaments
Tournament Detail Player Draft
Tournament Draft
Bracket Hero Draft
Bracket Hero Draft

Tech Stack

Layer Technologies
Frontend React, TypeScript, Vite, TailwindCSS, Shadcn UI
Backend Django, Django REST Framework, Redis
Infrastructure Docker, Nginx, GitHub Container Registry
Observability structlog, OpenTelemetry (opt-in)
Authentication Discord OAuth via django-social-auth

Features

  • Draft System - Snake, Normal, and Shuffle draft modes
  • Hero Draft - Captains Mode hero banning and picking
  • CSV Import - Bulk-add users via CSV with team assignment and conflict detection

Demo Recordings

Captain 1 - HeroDraft Captain 2 - HeroDraft
Captain 1 Captain 2
Full Video Full Video
Shuffle Draft Snake Draft
Shuffle Draft Snake Draft
Full Video Full Video
CSV Import
CSV Import
Full Video

Generate Demos Locally

# Record all demos and generate GIFs
just demo::quick

# Or record individually
just demo::shuffle     # Shuffle draft
just demo::snake       # Snake draft
just demo::herodraft   # Hero draft with bracket
just demo::csv         # CSV import with bracket

See Just Commands for all options.

Project Structure

website/
├── backend/          # Django REST API
├── frontend/         # React + TypeScript + Vite
├── docker/           # Docker Compose configurations
├── nginx/            # Nginx reverse proxy config
├── scripts/          # Utility scripts
└── docs/             # This documentation