ООО «КСТ ГРУПП»
Образование, наука, работа
Россия, Красноярск
Октябрь 2025
Задачи проекта:
1. Модернизировать чат с разграничением ролей для безопасной и организованной коммуникации между участниками мероприятий.
2. Разработать систему контроля посещаемости для точного отслеживания присутствия участников.
3. Автоматизировать формирование и сбор отчетности по ключевым метрикам мероприятий
4. Обеспечить перенос и сохранность исторических данных при переходе на новую систему
В рамках системы непрерывного медицинского образования (НМО) врачи обязаны регулярно проходить обучение и получать сертификаты, подтверждающие квалификацию. В 2022 году вступили в силу новые регуляторные требования к проведению онлайн-мероприятий НМО. Появились обязательные условия автоматической фиксации времени присутствия и подтверждения активности участников, без чего невозможно выдавать сертификаты.
На платформе Nmonews проводятся съезды, конгрессы, конференции, образовательные школы, вебинары для врачей, и ранее контроль присутствия участников осуществлялся сторонней организацией.
Предыдущая версия чата, установленная разработчиком, не могла справится с такой нагрузкой и не подходила для образовательной платформы. При росте числа участников чат работал нестабильно, происходили зависания, задержки отправки сообщений и массовые сбои.
Чтобы соответствовать новым правилам и обеспечить стабильную работу чата при одновременном участии до 10 000 пользователей, компании потребовалась модернизация чата трансляции с автоматическим и ручным контролем присутствия и возможностью формировать подробную статистику.
Команда Первого Бита совместно с заказчиком проанализировала специфику проекта и новые требования НМО. Были подготовлены функционально-технические требования, описывающие логику работы системы, контроль присутствия и сбор статистики. Параллельно создали прототипы интерфейса чата: отображение сообщений, закрепление, всплывающие окна, поведение разных ролей пользователей.
Для разработки серверной части онлайн-чата был выбран язык Go — компилируемый многопоточный язык программирования, который обеспечивает высокую производительность и возможность поддерживать большие нагрузки. Архитектура решения была построена так, чтобы разделить хранение и поддержку баз данных чата и сайта на разные серверы, повысив отказоустойчивость и стабильность системы.
Функциональность чата охватывает несколько ролей пользователей:
Пользователь может отправлять сообщения, задавать вопросы лектору, цитировать других участников и подтверждать свое присутствие через всплывающее окно.
Лектор видит вопросы участников в отдельной вкладке.
Модератор (техническая поддержка) управляет чатом: удаляет или закрепляет сообщения, блокирует пользователей на мероприятие или определенный срок, запускает автоматический и ручной контроль присутствия.
Контроль присутствия реализован двумя способами:
Автоматический контроль работает в фоновом режиме — пока у пользователя открыта вкладка с трансляцией, система каждую минуту отправляет сигнал активности и фиксирует время участия.
Ручной контроль запускается модератором и отображается в виде всплывающего окна с кнопкой подтверждения. Если пользователь вовремя подтвердил участие, его присутствие засчитывается.
Информация сохраняется в базе данных TimescaleDB и используется для формирования подробной статистики. Система автоматически фиксирует фамилию, имя, отчество, контакты участника, его должность, город, время входа и выхода из трансляции, посещенные залы, отправленные сообщения, вопросы лекторам и устройство, с которого было подключение. Также учитывается, закрывал ли пользователь вкладку во время мероприятия.
По итогам мероприятия можно получить как детализированные отчеты по каждому участнику, так и сводную статистику: сколько человек зарегистрировались и пришли, из каких регионов и организаций они были, сколько вопросов задали, какие темы вызывали наибольший интерес. Статистику можно выгрузить в таблицу и использовать для подготовки отчетов партнерам.
Система прошла внутреннюю проверку. Тестировали корректность интерфейсов и логики: отправку сообщений, работу ролей, автоматический и ручной контроль присутствия. Проверяли корректную работу системы на разных устройствах и в браузерах, устойчивость при нестандартных сценариях и корректное сохранение данных в базе.
Были подготовлены два основных сценария:
Максимальная нагрузка — поэтапное увеличение числа пользователей от 100 до 20 000 с одновременной проверкой отправки сообщений и прохождения контроля активности.
Стабильность — работа системы в течение 12 часов с 10 000 активными пользователями. Также был описан набор параметров мониторинга и точки наблюдения.
После завершения внутренних проверок команда Первого Бита совместно с ООО «КСТ ГРУПП» провела финальное тестирование на реальных трансляциях. Проверялась стабильность работы чата, функционирование системы контроля присутствия и формирование статистики. Все выявленные баги устранялись оперативно, в том числе в процессе подготовки мероприятий.
На финальном этапе ИТ-специалисты провели аудит базы данных, очистили устаревшие данные и поэтапно перенесли актуальную информацию с ручной проверкой. Настроили административную панель для управления чатами и выгрузки статистики. Запустили систему в боевом режиме с готовностью к высокой нагрузке и дальнейшей поддержке.
1. Чат трансляций стабильно работает при нагрузке до 10 000 одновременных пользователей. Благодаря разграничению ролей (администратор, модератор, участник) взаимодействие участников мероприятий и спикеров стало комфортнее и организованнее.
2. Внедрённая система автоматического и ручного контроля присутствия позволяет точно фиксировать активность участников на всех этапах мероприятия, что полностью соответствует требованиям к онлайн-мероприятиям НМО.
3. Благодаря автоматизации создания отчетов можно быстро получить информацию об участниках мероприятий для дальнейшего анализа и подготовки итоговой отчетности.
4. Исторические данные перенесены без потерь, сохранена преемственность и возможность использовать накопленную аналитику для планирования будущих мероприятий.