API-first платформа для создания мероприятий с регистрацией участников, кастомными формами и встроенным движком соревновательных механик (round-robin, команды и др.), с поддержкой live-управления и отображения результатов.
LeagueKit — это универсальный сервис для организации мероприятий и соревнований. Платформа предоставляет API и интерфейс для:
- создания мероприятий — настройка обёртки: название, описание, логотип, тип, правила участия
- сбора заявок через формы — конструктор кастомных полей, валидация, открытая регистрация или по приглашению
- управления участниками и командами — приём/отклонение заявок, управление составами
- настройки механик соревнований — абстрактный движок, не привязанный к конкретной игре
- проведения турниров в реальном времени — генерация расписания, сетки/таблицы, управление матчами
- отображения live-результатов — публичная страница с текущими матчами, таблицей лидеров, статистикой
Система построена по принципу: Event Platform + Tournament Engine + Form Builder
Платформа разделяется на три независимых слоя:
Описывает «обёртку» события: название, описание, логотип, тип (открытое / закрытое), правила участия. Уровень «что за событие вообще происходит».
Конструктор форм для регистрации участников, приглашений по ссылке, сбора кастомных данных (ФИО, Telegram, email и т.д.). Поддерживает кастомные поля с валидацией и режимы: открытая регистрация / регистрация по приглашению. Уровень «кто участвует».
Ядро системы — движок соревнований, не привязанный к конкретной игре. Работает через абстрактные механики. Основные сущности: Participant, Match, Round, Tournament. Поддерживаемые механики: round-robin, командные форматы, кастомные правила. Организатор настраивает систему очков, модификаторы, длительность матчей, правила победы. Уровень «как проходит соревнование».
- Создание мероприятия — организатор задаёт базовые данные, выбирает тип (open / closed), выбирает механику
- Настройка регистрации — создаётся форма, генерируется ссылка, настраиваются поля, команды, видимость
- Сбор заявок — пользователи заполняют форму, заявки попадают в систему, организатор принимает/отклоняет, управляет составами
- Подготовка — закрытие регистрации, генерация расписания, формирование сетки / таблицы
- Проведение — запуск мероприятия, управление матчами, фиксация результатов, обновление таблицы в реальном времени
- Live Dashboard — публичная страница с текущими матчами, таблицей лидеров, прогрессом турнира, статистикой (можно выводить на экран / стрим / проектор)
| Модуль | Стек | Назначение |
|---|---|---|
api |
Rust | HTTP API-сервер, точка входа для всех клиентов |
core |
Rust | Доменные сущности, бизнес-логика, движок турниров |
desktop-app |
Tauri 2 + SvelteKit + Svelte 5 | Нативный desktop-клиент для организаторов и зрителей |
ui-components |
Svelte 5 + Tailwind CSS 4 | Переиспользуемая библиотека компонентов для всех UI-клиентов |
Подробнее — в README каждого модуля: api, core, desktop-app, ui-components
Система проектируется как backend (API + DB) с несколькими клиентами: web-панель (интерфейс организатора), публичная страница (интерфейс зрителя), desktop-приложение (нативный клиент), потенциально mobile-приложение. Все клиенты взаимодействуют с системой исключительно через API.
Не привязано к играм — шахматы это просто preset, квиз тоже preset. Система работает на уровне механик, а не конкретных игр.
Расширяемость — можно добавлять новые форматы турниров, новые типы форм, новые правила и модификаторы.
Гибкость ролей — организатор (создаёт и управляет), участник (регистрируется и участвует), зритель (следит за ходом в реальном времени).
Live-режим — система изначально проектируется как real-time: обновления матчей, синхронизация состояния, live-таблицы.
Это не CRUD-приложение, а state-driven система. Центральная сущность — Event. Всё остальное — модули вокруг него: Registration (формы, заявки), Competition (механики, турниры), Visualization (live, дашборды).
🚧 Проект находится на ранней стадии разработки. Структура модулей заложена, доменная логика и API активно проектируются.