Skip to content

SSA-CESDT/LeagueKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏆 LeagueKit

API-first платформа для создания мероприятий с регистрацией участников, кастомными формами и встроенным движком соревновательных механик (round-robin, команды и др.), с поддержкой live-управления и отображения результатов.


📌 Что это

LeagueKit — это универсальный сервис для организации мероприятий и соревнований. Платформа предоставляет API и интерфейс для:

  • создания мероприятий — настройка обёртки: название, описание, логотип, тип, правила участия
  • сбора заявок через формы — конструктор кастомных полей, валидация, открытая регистрация или по приглашению
  • управления участниками и командами — приём/отклонение заявок, управление составами
  • настройки механик соревнований — абстрактный движок, не привязанный к конкретной игре
  • проведения турниров в реальном времени — генерация расписания, сетки/таблицы, управление матчами
  • отображения live-результатов — публичная страница с текущими матчами, таблицей лидеров, статистикой

Система построена по принципу: Event Platform + Tournament Engine + Form Builder


🧩 Архитектура

Платформа разделяется на три независимых слоя:

1. Event Layer (мероприятия)

Описывает «обёртку» события: название, описание, логотип, тип (открытое / закрытое), правила участия. Уровень «что за событие вообще происходит».

2. Registration Layer (формы и заявки)

Конструктор форм для регистрации участников, приглашений по ссылке, сбора кастомных данных (ФИО, Telegram, email и т.д.). Поддерживает кастомные поля с валидацией и режимы: открытая регистрация / регистрация по приглашению. Уровень «кто участвует».

3. Competition Layer (механики)

Ядро системы — движок соревнований, не привязанный к конкретной игре. Работает через абстрактные механики. Основные сущности: Participant, Match, Round, Tournament. Поддерживаемые механики: round-robin, командные форматы, кастомные правила. Организатор настраивает систему очков, модификаторы, длительность матчей, правила победы. Уровень «как проходит соревнование».


⚡ Event Lifecycle

  1. Создание мероприятия — организатор задаёт базовые данные, выбирает тип (open / closed), выбирает механику
  2. Настройка регистрации — создаётся форма, генерируется ссылка, настраиваются поля, команды, видимость
  3. Сбор заявок — пользователи заполняют форму, заявки попадают в систему, организатор принимает/отклоняет, управляет составами
  4. Подготовка — закрытие регистрации, генерация расписания, формирование сетки / таблицы
  5. Проведение — запуск мероприятия, управление матчами, фиксация результатов, обновление таблицы в реальном времени
  6. 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


🔌 API-first подход

Система проектируется как backend (API + DB) с несколькими клиентами: web-панель (интерфейс организатора), публичная страница (интерфейс зрителя), desktop-приложение (нативный клиент), потенциально mobile-приложение. Все клиенты взаимодействуют с системой исключительно через API.


🧠 Важные особенности

Не привязано к играм — шахматы это просто preset, квиз тоже preset. Система работает на уровне механик, а не конкретных игр.

Расширяемость — можно добавлять новые форматы турниров, новые типы форм, новые правила и модификаторы.

Гибкость ролей — организатор (создаёт и управляет), участник (регистрируется и участвует), зритель (следит за ходом в реальном времени).

Live-режим — система изначально проектируется как real-time: обновления матчей, синхронизация состояния, live-таблицы.


🏗️ Философия дизайна

Это не CRUD-приложение, а state-driven система. Центральная сущность — Event. Всё остальное — модули вокруг него: Registration (формы, заявки), Competition (механики, турниры), Visualization (live, дашборды).


📋 Статус проекта

🚧 Проект находится на ранней стадии разработки. Структура модулей заложена, доменная логика и API активно проектируются.

About

API-first платформа для организации мероприятий с регистрацией участников, кастомными формами и встроенным движком соревновательных механик (round-robin, команды, турниры) с поддержкой live-обновлений.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors