Автоматизация
:Puls. Кастомная платформа для управления корпоративными мероприятиями – от списков участников до логистики

О проекте
Представьте, насколько сложно бывает собрать и организовать группу из десяти человек. А если их около 100? Уже более 10 лет наш клиент, компания Upjet, проводит MICE-мероприятия (направление делового туризма, связанное с организацией и проведением корпоративных встреч) для банков, медучреждений и других предприятий с большим штатом сотрудников. В структуре таких компаний часто бывает несколько региональных офисов и десятки подразделений, для каждого из которых может быть предусмотрена особая программа.
Спланировать трансферы и перелеты, забронировать отели, ничего не напутать в паспортных данных – раньше учет всех этих задач менеджеры Upjet вели в обычных файлах и Excel-таблицах, а согласования получали в почте и мессенджерах. Такой подход не только отнимал их время, но и часто приводил к ошибкам.
Так у клиента появилась идея создать инструмент под названием :Puls – единый «хаб», в котором менеджеры могли бы управлять всей информацией по проектам, участникам, билетам и другими важными деталями.
Цели и задачи
В ходе проекта мы решили несколько задач:
- Разработали интерфейс сотрудника – систему управления всеми этапами организации MICE-мероприятия.
- Организовали админ-панель для наполнения базы отелей, площадок, подрядчиков.
- Выпустили отдельное приложение для участников, в котором они получают всю актуальную информацию по мероприятию и следят за обновлениями в программе.
Так мы построили целую цифровую экосистему, которая включает три отдельных продукта, взаимосвязанных друг с другом.

Разработка travel-приложения и сайта с автоматизацией бронирования туров
Посмотрите наш кейс по разработке travel-агрегатора
Наш подход к проекту
С самого начала было ясно: Upjet работает в узкой нише, для задач которой не всегда подходят стандартные таск-трекеры и CRM-системы. Организация MICE-мероприятий сильно отличается от классического туризма: здесь больше переменных, больше деталей и постоянные изменения в программе, на которые нужно не только быстро реагировать, но корректно фиксировать каждое обновление.
К тому же, Upjet изначально планировал предлагать работу внутри :Puls своим клиентам. А значит, продукт должен давать больше возможностей и преимуществ, чем любое готовое решение.
Поэтому мы с нуля собрали систему и построили гибкую архитектуру, способную учитывать десятки переменных и сценариев. В таких условиях просто «сделать по ТЗ» было невозможно: вместе с клиентом мы искали лучшие решения, адаптировались к изменениям и перестраивали бизнес-логику так, чтобы с продуктом было удобно работать и менеджерам Upjet, и их клиентам.
Ключевые достижения
Сейчас :Puls – это набор сложных таблиц со списками, работая с которыми менеджер поэтапно закрывает все шаги в организации мероприятия – от добавления участников до планирования трансферов и отправки уведомлений по обновлениям в программе. Любое изменение в пути каждого участника, влияет на весь проект и отображается в интерфейсе менеджера.
6
интерактивных таблиц для управления проектом
300
уникальных API-запросов, которые обрабатываются одновременно
Ищете разработчиков для вашего проекта? Расскажите про свою идею!
Как мы встретили Upjet
Команде Upjet нас порекомендовал бизнес-аналитик Александр Бовтрукевич, с которым мы уже работали над проектами для Reso и CarExpo. Он же описал все требования к продукту на старте. Изначально :Puls задумывался как продукт, который будет решать внутренние задачи. Но позже в компании решили подумать в сторону его коммерческого развития.
Больше вариантов партнерства с нашей командой
Суть продукта
Главное преимущество таких проектов, как :Puls – автоматизация процессов. Система сокращает ручную работу и делегирует часть самим участникам (например, заполнение паспортных данных или выбор номеров). В результате и менеджеры, и клиенты компании работают в одной экосистеме. Что делает услуги Upjet более привлекательными, нежели подход конкурентов.
Как шла разработка
Расскажем про сложности и вызовы, с которыми мы столкнулись, и как смогли с ними справиться, чтобы попасть в ожидания клиента.

Сбор требований и фокус-группы
Сначала мы работали с требованиями, которые предоставил клиент на старте. После релиза промежуточной версии была организована закрытая презентация :Puls внутри команды Upjet. Сотрудники протестировали функционал и нашли некоторые расхождения в логике продукта, которые могли отразиться на управлении проектами.
Поэтому мы вместе с клиентом организовали фокус-группы с участием стейкхолдеров из разных подразделений, будущих пользователей :Puls. Получили их фидбек и оптимизировали функционал. Несмотря на то, что мы сделали шаг назад и отказались от некоторых изначальных идей, это позволило определить приоритетные функции.
Выбор стека
Поскольку работа :Puls строится вокруг множества таблиц и форм с типичными CRUD-операциями, мы выбрали для разработки фреймворк Laravel. В проектах такого типа он позволяет быстро реализовывать функциональность, сосредоточившись на бизнес-логике, а не на технических деталях. Основным фронтенд-стеком стал React, что также обеспечило грамотную визуализацию процессов внутри инструмента и гибкость в управлении элементами интерфейса.
Дизайн
При изучении документации и на этапе разработки прототипов уже было видно, что система будет сложной и многофункциональной, со множеством различных повторяющихся элементов, стейтов и разделов. Чтобы систематизировать и унифицировать интерфейс, было решено создать единую дизайн-систему – библиотеку, которая содержит в себе состояния и вариации элементов. Она актуальна для основных продуктов – интерфейса сотрудника и клиента, а также мобильного приложения. И очень помогла нам при внесении изменений в функционал.
Уровни дизайн-системы
Рассмотрим, что включает библиотека компонентов :Puls.

Первый уровень

Второй уровень

Третий уровень

Логи изменений
Преимущества дизайн-системы
Создание библиотеки компонентов помогло нам упростить работу над продуктом и быстрее вносить правки в функционал.
Дизайн-команда
Быстрые правки макеты – при внесении изменений в материнский компонент они автоматически применятся и в дочерних, что ускоряет процесс и позволяет собирать некоторые макеты в реальном времени.
Улучшенная коммуникация – если над продуктом работают несколько дизайнеров, все они будут использовать общую библиотеку, сохранив консистентность в проекте.
Быстрый онбординг – не нужно тратить время на сетап проекта, а можно сразу начинать работу.
Команда разработки
Оптимизация разработки – не нужно тратить время на создание своих компонентов, так как все необходимое уже есть в дизайн-системе.
Работа в общем контексте – весь процесс полностью синхронизирован с дизайн-командой.
Быстрый релиз – интерфейс полностью подготовлен к разработке.
Клиент
Удобная поддержка продукта – если в будущем клиент захочет самостоятельно развивать проект или передать его внутренней команде, у него будет готовый набор компонентов и шаблонов, которые можно переиспользовать для добавления нового функционала.
Тестирование
Перед релизом продукта мы организовали ручное тестирование главных блоков – создания проектов, управления участниками, работы с документами.
Чтобы обеспечить стабильную работу системы, далее мы покрыли автотестами ключевые пользовательские сценарии и модули:
- Регистрация и авторизация пользователей.
- Создание проектов и заполнение информации.
- Добавление и регистрация участников.
- Базовые действия с участниками (верификация, удаление, изменение статуса).
- Генерация инвайт-ссылок и распределение участников через них.
- Загрузка и управление документами в профиле участника (паспорт, виза, страховка, карта лояльности и др.).
Тесты проверяют корректность:
- Статус-кодов всех операций.
- CRUD-функций в разделах профиля.
- Поиска по странам, городам, поставщикам и компаниям.
- Работы выпадающих списков, селектов, календарей и полей ввода дат.
- Фактического сохранение данных (через проверку тела ответа).
Каждый автотест сопровождается подробным логированием – видно, что прошло успешно, а в случае сбоя фиксируется причина падения, что упрощает отладку и поддержку.
Дальше :Puls прошел проверку в «полевых» условиях – Upjet использовал инструмент для организации собственного корпоратива. Полученный опыт и фидбек пошли в бэклог, из которого дальше будут формировать спринты новых доработок. А пока продукт полностью готов к использованию в коммерческих проектах.


Проведем бесплатный технический аудит вашей идеи. Приходите на консультацию!
Максим Б. CEO
Основной функционал
А теперь, посмотрим, каким увидели :Puls для менеджеры и участники.
Создание проекта
При организации нового MICE-мероприятий внутри :Puls менеджер Upjet заводит в системе отдельный проект, где указывает формат, локацию и даты проведения. Далее он добавляет участников из разных бизнес-юнитов компании клиента. Для этого каждый участник получает приглашение от организаторов и загружает приложение :Puls. Все полезные материалы по мероприятию и финансовые документы хранятся в разделах «Файлы» и «Сметы».
Как организовать авторизацию пользователей, рассказали в этой статье

Статусы участников
После того, как менеджер согласовал список участников, он отмечает пользователей, которые точно будут участвовать в мероприятии. Статус «Не еду» предусмотрен для тех, кто отказался от поездки по определенным причинам. Отдельным участникам также присваивается VIP-статус.

Управление проектом
Внутри :Puls предусмотрено разделение по ролям. В панели «Менеджеры» работают сотрудники Upjet, которые занимаются организацией всего мероприятия. Они имеют полный доступ ко всему функционалу платформы. Для организаторов со стороны клиента предусмотрены роли «Админ-клиент» и «Региональный менеджер».

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


Хотите автоматизировать управление проектами? Давайте обсудим детали
Максим Б. CEO
Организация мероприятия
Перейдем к управлению всеми этапами организации мероприятия с помощью интерфейса сотрудника.
Перелеты
Самой сложной частью стала логистика в части перелетов. Участники одного мероприятия могут вылетать из разных городов и стран, а их сроки участия зависят от бизнес-юнита или географии.
Реестр маршрутов

Билеты и статусы

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

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

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


SKI4U. Агрегатор для организации зимнего отдыха под ключ
Как мы разработали букинг-систему для бронирования отелей и трансфера на лыжных курортах
Логистика
Для организации трансферов мы предусмотрели четыре типа перемещений: от дома до мероприятия, между стыковками, из отеля и по локациям внутри города. Менеджер выбирает нужные маршруты и поставщиков, а система на основе данных о проживании, маршрутах и времени автоматически формирует логистику после нажатия на кнопку «Рассадить». Например, трансфер от отеля до ресторана. Всё собирается в сводную таблицу и подстраивается под актуальные даты участия.

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


Админ-панель на Admiral
Для разработки админ-панели, в которой можно управлять учетными записями пользователей и списками по проекту (города, страны, перевозчики, аэрпорты и так далее), мы использовали собственный продукт Admiral – фронтенд-фреймворк для создания бэк-офиса на React. В нем есть множество готовых компонентов и инструментов, которые делают разработку интерфейса админ-панелей более простой и быстрой.

Команда









Сроки разработки
12+
месяцев
На Discovery-фазу и прототипы у нас ушло 3-4 недели.
Первая версия :Puls была представлена через 7-8 месяцев после старта работ. Далее в течение двух месяцев мы вносили доработки и проводили тестирование главных функций.
Стек технологий
Frontend. React, Next.js, React Native
Backend. Laravel
QA. Python в автотестировании
Базы данных. Redis, PostgreSQL
Развертывание и деплой. Kubernetes, Docker, Figma
Как можно улучшить продукт
Вот несколько идей, которые ускорят процесс организации мероприятий внутри :Puls.
Оффлайн-активации
Сбор аналитики