Digital Agency · Алматы · с 2007
Техническое задание

Мобильное приложение для проведения соревнований по боксу

Цифровая платформа полного цикла турнира: от подписанного Положения и взвешивания до автоматической жеребьёвки, формирования весовых групп и живой турнирной сетки в личном кабинете каждого участника.

📱 iOS + Android 🖥 Веб-панель организатора 🌐 RU / KZ ⚖️ Стандарт World Boxing
Заказчик
Боксёрский клуб (Камал)
Исполнитель
Веб-студия A-LUX
Документ
ТЗ v1.0 · черновик
Дата
22 июня 2026
Содержание

Структура документа

Документ описывает назначение продукта, роли пользователей, бизнес-процесс турнира, функциональные требования по модулям, алгоритм автоматической жеребьёвки и план реализации.
01 · О проекте

Что мы создаём

Приложение автоматизирует всю организационную «бумажную» часть детских и любительских соревнований по боксу. Сегодня жеребьёвка, формирование пар и весовых групп ведутся вручную — на бумажных карточках формата А8 и листочках с номерами. Это медленно, подвержено ошибкам и непрозрачно для участников и родителей.

⚙️ Автоматизация

Система сама группирует боксёров по годам рождения и весовым категориям согласно Положению и проводит честную жеребьёвку.

👁 Прозрачность

Каждый участник в личном кабинете видит свою сетку: с кем дерётся сегодня, кто следующий, путь до финала.

🏆 Бренд турнира

Современный продукт повышает уровень организации, привлекает клубы и спонсоров, продвигает бокс как вид спорта.

Ключевая ценность. Организатор закрывает взвешивание одной кнопкой — и через секунды получены корректные группы и турнирные сетки по всем весовым категориям. То, что раньше занимало часы ручной работы судейской коллегии.
02 · Глоссарий

Термины предметной области

Чтобы разработка и заказчик говорили на одном языке.
ТерминЗначение
ПоложениеУтверждённый организатором документ, регламентирующий турнир: возрастные группы (пары годов рождения), весовые категории, даты, место, количество дней и правила.
Мандатная комиссияПроверка документов участников перед взвешиванием (свидетельство о рождении, справка из школы, допуск).
ВзвешиваниеЭтап, на котором фиксируется фактический вес боксёра и создаётся его карточка.
Карточка боксёраУчётная запись участника турнира (сейчас — бумажный листок А8). Содержит данные спортсмена, число боёв и побед.
Весовая категорияДиапазон веса (по World Boxing), в котором соревнуются боксёры одной возрастной группы.
ГруппаНабор боксёров одной возрастной + весовой категории, разыгрывающих места между собой.
ЖеребьёвкаСлучайное распределение участников по группам и позициям в сетке через присвоение номеров.
Турнирная сетка (bracket)Схема боёв: четвертьфинал → полуфинал → финал, с продвижением победителей.
Bye (проход)Автоматический выход в следующий раунд без боя, когда в группе нечётное число участников.
03 · Цели и задачи

Зачем приложение

Бизнес-цели

  • Привлечение детей к систематическим занятиям спортом и ЗОЖ.
  • Продвижение и развитие бокса как вида спорта.
  • Повышение уровня и репутации организатора соревнований.
  • Цифровая база участников, клубов и истории выступлений.

Продуктовые задачи

  • Исключить ручную жеребьёвку и ошибки группировки.
  • Ускорить запуск турнира после закрытия взвешивания.
  • Дать участникам прозрачность: своя сетка в реальном времени.
  • Хранить число боёв/побед — спортивную историю боксёра.
04 · Роли

Пользователи системы

Четыре роли с разными правами. Состав ролей согласуется с заказчиком.
🎯

Организатор

Создаёт турнир, загружает Положение, ведёт мандатную комиссию и взвешивание, закрывает взвешивание, запускает жеребьёвку, вносит результаты боёв. Веб-панель + приложение.

🥊

Тренер / Клуб

Регистрирует своих спортсменов на турнир, подаёт заявки, видит расписание боёв своих воспитанников. на согласование

👤

Участник / Родитель

Регистрируется, заполняет данные, видит анонсы, получает подтверждение участия, в личном кабинете следит за своей группой и сеткой.

⚖️

Судья / Секретарь

Фиксирует исход боя (победитель), что двигает участника по сетке. Может быть совмещён с ролью организатора. на согласование

05 · Бизнес-процесс

Путь турнира — как это работает

Логика воспроизводит реальный регламент соревнований, описанный заказчиком.
1

Публикация Положения

Организатор создаёт турнир и загружает подписанное Положение: возрастные пары годов, весовые категории, даты, место, число дней соревнований.

2

Подбор и заявки клубами

Клубы и тренеры по Положению подбирают подходящих детей по возрасту и весу, регистрируют их как участников.

3

Приезд и мандатная комиссия

Участники предъявляют свидетельство о рождении и справку из школы. Документы проверяются.

4

Взвешивание → карточка боксёра

Боксёр встаёт на весы, фиксируется фактический вес, создаётся / заполняется карточка участника.

5

Закрытие взвешивания

Организатор закрывает приём — состав участников зафиксирован. Это триггер автоматической обработки.

6

Группировка

Система раскладывает карточки: сначала по парам годов рождения (из Положения), затем внутри — по весовым категориям.

7

Жеребьёвка и сетки

Участникам присваиваются номера, формируются группы (размер зависит от числа дней) и строятся турнирные сетки.

8

Бои и продвижение

Судья фиксирует победителей, сетка обновляется: полуфинал → финал. Участник видит актуальную картину в ЛК.

06 · Функциональные модули

Что умеет приложение

Требования сгруппированы по модулям. обязательно — в первый релиз; опц. — может быть позже; на согласование — уточняется с заказчиком.
M1

Регистрация и авторизация

  • обязательно Регистрация участника по номеру телефона (SMS-код) или email.
  • обязательно Профиль пользователя: ФИО, дата рождения, город, клуб, тренер, контакты.
  • обязательно Роли и разные интерфейсы (организатор / участник / тренер / судья).
  • опц. Вход через Apple ID / Google.
M2

Главная — анонсы соревнований

  • обязательно Приветственный экран со списком предстоящих и текущих турниров.
  • обязательно Карточка турнира: название, даты, место, статус (анонс / идёт регистрация / взвешивание / идёт / завершён), Положение.
  • обязательно Кнопка «Подать заявку / Участвовать».
  • опц. Новости, фото и результаты прошедших турниров.
M3

Личный кабинет участника

  • обязательно Статус заявки: на рассмотрении → подтверждён организатором.
  • обязательно Моя группа и весовая категория после жеребьёвки.
  • обязательно «С кем дерусь сегодня», следующий соперник, путь до финала.
  • обязательно Живая турнирная сетка своей категории.
  • опц. История выступлений, личная статистика боёв/побед.
M4

Создание турнира и Положение (организатор)

  • обязательно Создание турнира: название, место, даты, количество дней (влияет на размер групп).
  • обязательно Настройка возрастных пар (2012-2013, 2014-2015, 2016-2017 …).
  • обязательно Настройка весовых категорий по World Boxing (напр. 33,35,37,40,43,46,49,52,55,58,61,64,67,70,70+).
  • обязательно Загрузка PDF/скан Положения, доступный участникам.
M5

Мандатная комиссия и взвешивание

  • обязательно Список заявленных участников, отметка о проверке документов.
  • обязательно Ввод фактического веса → автоматическое определение весовой категории.
  • обязательно Создание / заполнение карточки боксёра (см. раздел 08).
  • обязательно Кнопка «Закрыть взвешивание» — фиксация состава и запуск обработки.
M6

Группировка и жеребьёвка

  • обязательно Автогруппировка по парам годов → по весовым категориям.
  • обязательно Присвоение номеров и распределение по группам (алгоритм — раздел 07).
  • обязательно Размер группы зависит от числа дней (2 дня → до 4 чел.).
  • обязательно Обработка нечётных составов через Bye.
  • опц. Ручная корректировка организатором перед публикацией.
M7

Турнирная сетка и результаты

  • обязательно Визуальная сетка: четвертьфинал → полуфинал → финал.
  • обязательно Ввод результата боя судьёй/организатором → продвижение победителя.
  • обязательно Определение 1, 2, 3 мест по группе.
  • опц. Экспорт сетки и протоколов в PDF/печать.
M8

Уведомления

  • обязательно Push: заявка подтверждена, жеребьёвка готова, скоро твой бой, результат.
  • опц. Напоминания о датах взвешивания и боёв.
07 · Ядро системы

Алгоритм автоматической жеребьёвки

Самая ценная часть продукта. Воспроизводит ручную судейскую логику: группировка по возрасту и весу + честное случайное распределение через номера.

Шаг 1 — Возрастные группы

После закрытия взвешивания все карточки раскладываются по парам годов рождения из Положения (например: 2012-2013, 2014-2015, 2016-2017).

Шаг 2 — Весовые категории

Внутри каждой возрастной группы участники распределяются по весовым категориям World Boxing на основе фактического веса со взвешивания.

Шаг 3 — Присвоение номеров

Каждому участнику присваивается случайный номер (диапазон 1–500, как исторические «листочки»). Это основа честной жеребьёвки.

Шаг 4 — Формирование групп

Внутри весовой категории участники сортируются по номеру и разбиваются на группы. Размер группы зависит от числа дней турнира: 2 дня → максимум 4 человека (полуфинал + финал); 3 дня → больше (четвертьфинал + полуфинал + финал).

Шаг 5 — Построение сетки

В группе формируются пары. При нечётном числе — кто-то получает Bye (проход) и сразу выходит в финал. Победители продвигаются дальше.

Пример из ТЗ заказчика. Весовая категория, 2 дня, 6 участников → две группы: одна на 4 чел. (полуфинал+финал), вторая на 2 чел. (сразу финал). Кого куда — решает близость номеров: напр. {33, 50, 58, 103} в одной группе, {333, 458} — в другой.
# Псевдокод формирования групп внутри весовой категории on close_weighing(tournament): participants = all_weighed(tournament) for age_pair in tournament.age_groups: # 2012-2013, 2014-2015 … for weight in tournament.weight_classes: # 33,35,…,70+ pool = filter(participants, age_pair, weight) assign_random_numbers(pool, range=1..500) pool.sort(by=number) max_size = 4 if tournament.days == 2 else bigger groups = split_into_groups(pool, max_size) for g in groups: build_bracket(g) # пары, Bye, раунды

Визуализация сетки (пример: группа из 4)

Полуфинал
№33 Иванов
№50 Петров
№58 Сидоров
№103 Ким
Финал
№33 Иванов
№103 Ким
за 1–2 место
Результат
🥇 1 место
🥈 2 место
🥉 3 место ×2
08 · Карточка боксёра

Цифровая карточка участника

Замена бумажного листка А8. Заполняется на этапе заявки/взвешивания.
ПолеЗаполнениеСтатус
ФИОпри заявкеобязательно
Дата / год рожденияпри заявкеобязательно
Ростпри заявке / взвешиванииобязательно
Город / регионпри заявкеобязательно
Клубпри заявкеобязательно
Тренерпри заявкеобязательно
Количество боёвпри заявкеобязательно
Количество победпри заявкеобязательно
Документы (свид. о рождении, справка из школы)мандатная комиссияобязательно
Весфиксируется системой на взвешиваниине вручную
Весовая категорияопределяется автоматически по весуне вручную
Прямое требование заказчика. При заполнении карточки на взвешивании «Вес» и «Весовую категорию» вручную НЕ заполнять — вес фиксирует система при взвешивании, категория вычисляется автоматически. Все остальные поля обязательны. Количество боёв и побед — указывать обязательно.
09 · Интерфейс

Карта экранов

Ориентировочный состав, детализируется на этапе дизайна (UI/UX).
S01Онбординг / входSMS-код, выбор роли
S02Главная — анонсыСписок турниров
S03Карточка турнираДаты, место, Положение
S04Подача заявкиДанные боксёра
S05Личный кабинетСтатус, группа, сетка
S06Моя сеткаС кем и когда дерусь
S07Профиль / историяБои, победы
S08[Орг.] ТурнирыСоздание, Положение
S09[Орг.] ВзвешиваниеВес, карточки
S10[Орг.] ЖеребьёвкаЗапуск, корректировка
S11[Орг.] Сетки/результатыВвод исходов
S12УведомленияPush-лента
10 · Нефункциональные требования

Технические требования

Платформы

  • Мобильное приложение: iOS и Android.
  • Веб-панель организатора (десктоп-браузер).
  • Единый бэкенд и база данных (API).

Языки

  • Русский и казахский (переключение).
  • Возможность добавить другие языки.

Производительность

  • Жеребьёвка турнира — секунды после закрытия взвешивания.
  • Живое обновление сетки у участников.

Безопасность и данные

  • Защита персональных данных детей (хранение, доступ по ролям).
  • Резервное копирование, журнал действий организатора.
Стандарт. Возрастные группы и весовые категории соответствуют требованиям World Boxing, что заложено в Положении турнира.
11 · Технологии

Предлагаемый технологический стек

Предложение A-LUX, финальный выбор согласуется с заказчиком. Стек проверенный, масштабируемый и экономичный в поддержке.

📱 Мобильные приложения — Flutter

Единая кодовая база для iOS и Android. Быстрее и дешевле, чем две отдельные нативные разработки, при нативной производительности и качестве UI.

🧠 Backend — Node.js

Серверная логика и REST/realtime API: движок группировки и жеребьёвки, управление турнирами, роли и права доступа.

🗄 База данных — PostgreSQL

Надёжное реляционное хранилище: турниры, участники, карточки, группы, сетки, результаты и история боёв/побед.

🔔 Push — Firebase (FCM)

Мгновенные уведомления: подтверждение заявки, готовность жеребьёвки, «скоро твой бой», результаты.

🖥 Веб-панель организатора

Административная панель в браузере (на том же бэкенде) для создания турниров, ведения взвешивания, запуска жеребьёвки и ввода результатов на десктопе.

Почему так. Flutter + Node.js + PostgreSQL + Firebase — это оптимальный баланс скорости разработки, стоимости и надёжности. Один бэкенд обслуживает и мобильные приложения, и веб-панель — меньше дублирования, проще поддержка.
12 · Реализация

Этапы работ

Ориентировочный план. Точные сроки и стоимость фиксируются в коммерческом предложении и договоре.
Этап 1Аналитика

ТЗ и прототип

Финализация требований, согласование ролей и алгоритма, кликабельный прототип ключевых экранов.

Этап 2Дизайн

UI/UX дизайн

Фирменный стиль приложения, макеты всех экранов под iOS/Android и веб-панель.

Этап 3Backend

Сервер и алгоритм жеребьёвки

База данных, API, движок группировки и жеребьёвки, веб-панель организатора.

Этап 4Mobile

Мобильные приложения

Разработка iOS и Android, личный кабинет, сетки, push-уведомления.

Этап 5QA + запуск

Тестирование и публикация

Тест на реальном турнире, публикация в App Store и Google Play, обучение организатора.

На согласование с заказчиком. Состав ролей (тренер, судья), монетизация (платная регистрация на турнир / бесплатно), необходимость онлайн-оплаты, итоговые сроки и бюджет.
13 · Доверие

Клиенты, которые нам доверяют

A-LUX на рынке с 2007 года. За это время мы реализовали сотни проектов для крупнейшего бизнеса и государственных структур Казахстана — сайты, мобильные приложения и фирменный стиль полного цикла.
19
лет на рынке · с 2007
500+
реализованных проектов
iOS · Android
приложения в App Store и Google Play
ТОП
бренды и госструктуры РК
MagnumEsentaiNIC NBKLOTTEPKI gov.kzStandard LifeMelissaMIT MediconROOMSDelicio
Наши работы
Magnum
Magnum
Крупнейшая розничная сеть Казахстана
magnum.kz
Esentai Mall
Esentai Mall
Флагманский премиум-ТРЦ Алматы
esentai.com
Esentai Tower
Esentai Tower
Премиальная башня в центре Алматы
esentaitower.com
NIC NBK
NIC NBK
Инвесткорпорация Нацбанка РК
nicnbk.kz
PKI gov.kz
PKI gov.kz
Нац. удостоверяющий центр (ЭЦП)
pki.gov.kz
Standard Life
Standard Life
Страховая компания
standardlife.kz
Melissa
Melissa
Сеть аптек «Мелисса»
melissaapteka.kz
Magnum Corporate
Magnum Corporate
Корпоративный портал Magnum
corp.magnum.kz
MIT Medicon
MIT Medicon
Медицинский центр, 10 лет
mit.my-qr.kz
Djaparov Logistics
Djaparov Logistics
Межд. грузоперевозки Китай → КЗ/СНГ
applications.kz/japarov
ROOMS Mebel
ROOMS Mebel
Мебель для дома · маркетплейс
rooms.kz
Delicio
Delicio
Платформа доставки еды + мобильное приложение
delicio.kz
Благодарственные письма
Благодарственное письмо
Лидеры рынка РК
Благодарственное письмо
Лидеры рынка РК
Благодарственное письмо
Лидеры рынка РК
LOTTE
LOTTE
Благодарственное письмо
Лидеры рынка РК
Благодарственное письмо
Лидеры рынка РК
Релевантный опыт. Среди наших проектов — мобильные приложения полного цикла для iOS и Android (Magnum Club, Delicio и др.). Тот же подход применим к вашему приложению для соревнований. По запросу предоставим контакты заказчиков для рекомендаций.
14 · Приложения

Исходные документы заказчика

Приложение А — Положение турнира

«ASTANA ALLIANCE TOURNAMENT / BEGINNERS», подписано. Источник возрастных групп и весовых категорий.

Положение

Приложение Б — пример жеребьёвки

Турнирная сетка World Boxing (Кубок мира) — образец визуализации bracket: Preliminaries → Quarterfinals → Semifinals → Final.

Bracket