БОЛЬШОЙ СПОРТ
Ссылка: https://globalrank.ru/
Стек: Symfony, MySQL, React + Next.js
О платформе: основной функционал проекта связанный с созданием турнирных сеток, был реализован минимально. Организатор был сильно ограничен в своих возможностях.
С каким проектом к нам обратился заказчик:
Было доступно только следующее:
- Создать турнирную сетку, в которой бойцы распределялись по дате регистрации на турнир. Иными словами можно было отследить, кто с кем и когда будет драться. Чем раньше боец зарегистрировался в турнире, тем раньше у него будет бой.
- На одной локации (ковре) можно было создавать турнирные сетки для нескольких категорий, но расписание матчей при этому не было сквозным. Сначала отыгрывались по очереди все бои в одной категории (например от 1\16 до финала), и только потом начинались бои в другой категории, так же по очереди.
Что реализовали и каких результатов удалось добиться:
- Добавили уведомление участников о времени начала боя, посредством СМС сообщений.
Если у участника турнира остается менее 15 минут до ближайшего боя, ему приходит СМС сообщением с текстом “Ваш бой начнется через 12 минут на ковре А. Соперник Иванов Иван”.
- Реализация drag and drop функционала для перемещения бойцов в турнирной сетке.
У организатора турнира есть возможность перемещать участников до начала боя, с целью формирования более интересных пар участников, когда встречаются равные по силе бойцы или, когда нужно развести бойцов по различным причинам.
- Создан функционал апелляций - возможность изменить победителя матча используя drag and drop.
Если после завершения боя результат был аннулирован, то это можно изменить также и в турнирной сетки.
- Реализована логика построения турнирных сеток и формирования расписания матчей, в которой соблюдаются следующие условия:
- Между боями одного бойца проходит максимально большое время отдыха.
- Если на одной локации (ковре) участвуют несколько категорий, то нумерация боёв происходит сразу по всем категориям, а не в одной категории сначала проходят все бои, потом приступают к боям другой категории.
- Первыми всегда проходят бои наиболее отдалённые от финала (например в 1\32), далее все категории приводятся к общему раунду (например к 1\8) и так идут до финальных боёв.
- Распределение бойцов при создании турнирной сетки происходит случайным образом, т.е. невозможно предугадать заранее, кто с кем будет драться.
Проект сейчас находится на поддержке. У заказчика есть еще множество идей, которые он хочет реализовать. А мы всегда только рады реализовывать самые неординарные, на первый взгляд, задумки наших клиентов!