публикация
Как мы пересобрали баскетбольную платформу «Лиги Чемпионов Бизнеса» без потери истории
вернуться назад

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

«Там столько цифр, и всё связано между собой»

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

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

Мы подумали: объём данных там такой, что с наскока не подступишься. И всё это должно сходиться: у каждого показателя есть с десяток связей с остальными.

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

Вызов #1: старый сайт нельзя было просто выключить

«Лига Чемпионов Бизнеса» проводит корпоративные спортивные соревнования. У баскетбольного направления уже был собственный сайт — с сезонами, дивизионами, командами, игроками, расписанием, результатами и статистикой.

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

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

И начать с пустой базы было нельзя — на старом сайте уже накопилась история чемпионата.

Мы спроектировали новую структуру данных в 1С-Битрикс, написали парсер и перенесли информацию со старой платформы: сезоны, матчи, команды, игроков и связанные с ними показатели. Восстановили связи между сущностями и настроили их вывод на публичном сайте. Сам сайт привели в порядок и адаптировали под мобильные устройства.

Но именно после миграции началась основная часть проекта.

Вызов #2: статистику нужно ПРАВИЛЬНО считать 

В футболе статистику легко прочитать даже случайному зрителю: игры, голы, передачи, карточки. Баскетбольный протокол устроен плотнее — и требует другого уровня формализации.

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


Так появилась и новая версия «Зала славы». Если раньше статистика была привязана к отдельным сезонам, теперь система агрегирует достижения игроков за всю историю выступлений в ЛЧБ.

Вызов #3: одна ошибка в протоколе ломает всю цепочку расчётов

Большой объём ручного ввода создаёт свою проблему: ошибиться можно в одной ячейке — и вся цепочка расчётов поедет следом.

Поэтому одной формы для хранения цифр было недостаточно. В административной панели появились проверки, которые помогают статисту понять, сходится ли протокол. Например, система суммирует очки, полученные из внесённых бросков игроков, и сравнивает результат с финальным счётом команды.

На реальном матче это выглядит просто:

Очки из бросков: 42. Финальный счёт: 42.

Отдельно проверяется игровое время. Для четырёх периодов система ожидает суммарно 200 минут у игроков команды и показывает, соответствует ли этому заполненный протокол.

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

Вызов #4: стандартная админка Bitrix не подходит для работы статиста 

Когда расчёты заработали, возник пользовательский вопрос: как всем этим будут пользоваться сотрудники ЛЧБ?

Можно было оставить стандартную административную часть 1С-Битрикс. Но тогда человеку, который после матча переносит данные из протокола, пришлось бы работать с технической структурой CMS и десятками полей — для ежедневной работы с протоколами такой интерфейс избыточен.

На футбольном проекте ЛЧБ уже существовала специализированная панель статиста, созданная другими разработчиками. Взять её за основу не получилось: исходный код у заказчика не сохранился.

Поэтому мы сделали свою. Внутри проекта её называют просто — «Админ 2».

Вместо инфоблоков и технических сущностей пользователь видит знакомую ему структуру: матчи, сезоны, дивизионы, команды, площадки, судей, тренеров.

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

То, что внутри системы представляет собой множество связанных данных и расчётов, для пользователя превращается в последовательный сценарий:

выбрать матч → заполнить протокол → проверить данные → сохранить результат.

Интерфейс проектировался именно под людей, которые будут повторять этот сценарий снова и снова в течение сезона.

Вызов #5: синхронизация с Российской федерацией баскетбола

У проекта есть следующий этап, который мы сейчас готовим к запуску.

Статистика матчей ЛЧБ также фиксируется в системе Российской федерации баскетбола. Получается двойная работа: данные уже внесены статистами РФБ, но затем их приходится повторно переносить на площадку ЛЧБ.

Мы разрабатываем интеграцию, которая позволит получать их автоматически по API. Во время матча данные из системы РФБ смогут поступать на сайт ЛЧБ с интервалом порядка 10–15 секунд. Вместо повторного заполнения большого протокола сотруднику останется проверить полученную информацию, завершить матч и запустить расчёт. По сути, останется нажать две кнопки вместо того, чтобы заново забивать кучу параметров/

На этой же интеграции в дальнейшем можно построить онлайн-трансляцию хода игры на сайте ЛЧБ.

Полгода работы, которую зритель не должен замечать

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

И именно так всё и должно выглядеть.

За этими страницами теперь находится система, которая хранит историю соревнований, связывает между собой матчи, сезоны, команды и спортсменов, рассчитывает баскетбольные показатели и даёт сотрудникам ЛЧБ отдельный инструмент для работы с ними.

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



Почитайте также

публикация

Три проблемы любых сложных соревнований — и как мы их решаем

публикация

Автоматизация футбольных турниров и статистики для Лиги чемпионов бизнеса

публикация

Cтруктурные изменения: кейс по обновлению сайта ПФК “Кристалл”

публикация

Всё о новом продукте - Sport CMS

публикация

История одного факапа. Как разработчик Sportsoft попал в заголовки спортивных СМИ