Тендерная площадка ИНТЕРПАЙП: разработка, обеспечившая ведущему поставщику труб надежную логистику

5.0
15.01.2024
3436
0

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

Обсудить проект
Заполните личные данные.
Phone
Нажимая на кнопку “Отправить”, вы даете согласие на обработку личных данных. Подробнее
Шаг 1 из 2

Чтобы облегчить ситуацию и настроить устойчивую систему логистики, необходимо действительно надежное и эффективное технологическое решение. 

Именно такие технологии мы стремились предоставить нашему клиенту - группе компаний ИНТЕРПАЙП, которая является глобальным игроком на рынке стальных труб и железнодорожных колес. Расскажем о кастомной разработке тендерной площадки для перевозок ИНТЕРПАЙП, которая решила ряд проблем в технических процессах компании.

Наш клиент

ИНТЕРПАЙП - украинская промышленная компания, мировой производитель стальных труб и железнодорожной продукции. Клиенты ИНТЕРПАЙП - ведущие мировые компании нефтегазовой отрасли, строительства, транспорта. Даже сегодня, несмотря на войну в Украине, продукция холдинга поставляется в 70 стран мира через сеть торговых офисов, размещенных на ключевых рынках Ближнего Востока, Северной Америки и Европы.

С какой проблемой столкнулся клиент

Чтобы определить проблему, надо немного рассказать о специфике бизнес-процессов клиента.

В организации своей логистики ИНТЕРПАЙП полагается на внутреннюю электронную тендерную площадку, где можно закупать услуги автоперевозок. Тендеры на этой платформе проводятся практически в непрерывном режиме, обновляясь по три-четыре раза в день. Перевозчик, который выигрывает в тендере, должен быть готовым отправиться в рейс без промедлений. Часто на подготовку к перевозке - не более суток.

В тендерах участвуют экспедиторы, которые стремятся получить контракт на перевозку продукции по Европе или Украине. Для этого им надо предложить лучшую цену и условия на тендерном конкурсе, который проводится в формате торгов. В каждых таких торгах могут участвовать десятки перевозчиков, которые жестко конкурируют по ценовым ставкам и условиям сервиса.

Задача электронной тендерной площадки заключается в том, чтобы автоматизировать эти торги и обеспечить равные условия для всех участников. Но с ростом нагрузки на нее – старая система потеряла эффективность. Платформа начала терять быстродействие и обрабатывала запросы с ошибками, или же отклоняла их. Наиболее критическими были последние 5-10 секунд до конца торгов. В этот момент десятки экспедиторов начинали интенсивно обновлять свои ценовые ставки, поэтому система теряла стабильность.

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

За решением этой проблемы команда ИНТЕРПАЙП обратилась в нашу компанию. Клиенту было необходимо новое решение - эффективное и надежное.

Решение проблемы

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

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

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

Достижение этой цели требовало решения ряда задач:

  • реализовать функционал для проведения тендеров в формате веб-приложения (SPA);

  • обеспечить обновление тендерных данных на платформе в реальном времени. Чтобы все пользователи в рамках тендера могли видеть абсолютно идентичные данные с минимальной задержкой;

  • обеспечить платформе возможности точной обработки большого количества запросов в течение короткого промежутка времени, во время пиковых нагрузок;

  • реализовать современный UI/UX, который будет удобным и понятным для экспедиторов.

 

Какие технологии мы выбрали

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

Для реализации клиентской части был использован фреймворк Next.js. В качестве СУБД была применена реляционная база данных PostgresSQL, а в качестве In-memory хранилища - Redis. Backend-часть разработана с применением языка PHP, а именно фреймворка Laravel. Взаимодействие между компонентами посредством API реализовано с использованием GraphQL.

Полный стек разработки выглядит так:

  • PHP 8;

  • Laravel 8 with octane (Swoole);

  • WS Server (Swoole engine);

  • PostgresSQL 14;

  • Redis (cache/queue);

  • GraphQL;

  • TypeScript;

  • React.js;

  • Next.js;

  • Apollo Client;

  • Ant Design.

 

Как мы построили работу

В целом проект состоял из двух этапов. Первый этап предусматривал разработку Proof-of-Concept. В рамках этой стадии команда изучила запрос клиента и подготовила ядро продукта под его технические требования, с учетом всей специфики будущего решения. Работу этого ядра мы продемонстрировали клиенту в тестовой симуляции на демо-серверах, проведя процедуру нагрузочного тестирования.

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

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

Сроки выполнения проекта были ограничены, поэтому команда тщательно детализировала и спланировала все задачи разработки. Важно было четко придерживаться плана и продвигаться к релизу максимально быстро.

К работе над проектом присоединилась опытная команда:

  • UX Designer

  • Business Analyst

  • Backend Developer

  • Frontend Developer

  • Project Manager

  • QA Engineer

  • DevOps Engineer

Отчетность и коммуникация

Клиент закрепил за проектом собственного менеджера, который мониторил ход разработки и предоставлял разработчикам всю необходимую обратную связь. Мы вели отчет для клиента о соблюдении тайминга проекта и прогрессе выполнения road-map.

Раз в две недели команда разработчиков проводила demo day для бизнес-заказчика и технического департамента ИНТЕРПАЙП, которые были лично заинтересованы в проекте. Мы подробно обсуждали наш прогресс и демонстрировали результаты работ. В целом разработка продвигалась без неожиданностей, поэтому команда вышла к релизу в запланированные сроки.

Что мы разработали

Результатом проекта стала надежная цифровая тендерная площадка для закупки транспортных услуг, реализованная в формате Single Page Application. Теперь клиент может быть уверен в том, что его ежедневные онлайн-тендеры на автомобильные перевозки проводятся без проблем, задержек и ошибок.

Рассмотрим, как работает новое решение.

1.   Экспедитор авторизуется на корпоративном портале ИНТЕРПАЙП. Там он может перейти в раздел "Торги на перевозки" и попасть на платформу, разработанную нашей командой.

2.  Здесь пользователь видит карточки доступных тендеров со всей необходимой информацией. Он может выбрать один или несколько из них для участия в торгах. Платформа предоставляет систему фильтров для отбора необходимых предложений. Их можно фильтровать по типам груза, транспорта, по направлению (экспорт, импорт), по специфическим разновидностям тендеров клиента (разовые, кольцевые, сгруппированные) и т.д.

      

3.  Ключевой функцией платформы являются торги. Выбрав необходимые тендеры, экспедитор нажимает на кнопку "Торговать по выбранным" и попадает в новый экран. Здесь в карточках выбранных тендеров появляется таймер и поле для торговой ставки.

4.  Цель экспедитора - выиграть тендер, предлагая самую выгодную цену. Он выставляет в карточке свою стартовую цену и шаг автоматического снижения ставки. Важным здесь является то, что таймер торгов и актуальные ставки обновляются через протокол WebSocket в реальном времени.

5.  Когда таймер торгов истекает, тендер автоматически поступает на обработку. Логика определения победителя лежит за пределами платформы, на стороне ERP клиента. Но именно наша платформа гарантирует точность и сохранение правильной очередности подачи ставок от всех участников.

6.  Результаты своих торгов экспедитор может увидеть во вкладке "неактивные тендеры". Там он может узнать, в каких тендерах он выиграл, а в каких - проиграл.

Важной частью проекта стал новый дизайн. Мы проработали UI/UX площадки таким образом, чтобы сделать ее максимально удобной и информативной для конечных пользователей. Команда также уделила особое внимание адаптивной верстке страниц, чтобы сделать их удобными на планшетах и смартфонах.

Какие вызовы мы преодолели

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

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

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

Дополнительным вызовом было формирование архитектурной составляющей проекта, которая бы отвечала всем указанным выше требованиям. Основное из таких требований заключалось в обеспечении отказоустойчивости и масштабируемости системы путем автоматического горизонтального скейлинга.

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

Результаты проекта

Сейчас новая тендерная площадка стала частью повседневных операций ИНТЕРПАЙП. Ее функционал, быстродействие, стабильность и безопасность закрывает все потребности клиента. Сегодня команда разработки сосредоточилась на мелких улучшениях и апдейтах сервиса. Клиент уже собрал первый фидбек от конечных пользователей платформы и планирует изменения в дизайне для улучшения пользовательского опыта.

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

Переход к современному веб-приложению позволил команде ИНТЕРПАЙП оставить в прошлом жалобы и недоразумения, связанные с ошибками системы проведения тендеров. Новая платформа не допускает ситуаций, в которой победитель тендера определяется некорректно, либо не определяется вовсе. Это прямо влияет на непрерывность операций, минимизирует риски простоя и убытков из-за срыва торгов. Поэтому этот опыт можно считать полезным для любого производителя, любого перевозчика, любого логистического оператора.

Евгений
Про автора
Евгений
CBDO
9
Отвечает за выход на новые рынки, стратегические партнёрства и формирование проектов на стыке бизнеса и технологий. Вывел компанию на новые сегменты в США и Европе, увеличил средний чек и количество стратегических сделок. Запустил 44+ решений в логистике, девелопменте, e-commerce и энергетике. Умеет точно считывать потребности клиентов и выстраивать эффективные модели сотрудничества.
Больше статей от автора
Как вам статья?
5.0
Проголосовало: 1
Обсудить проект
Заполните личные данные.
Phone
Нажимая на кнопку “Отправить”, вы даете согласие на обработку личных данных. Подробнее
Шаг 1 из 2
Комментарии
(0)
Будьте первыми, кто оставит комментарий
have questions image
Остались вопросы?
Оставьте ваши контактные данные. Наш менеджер свяжется и проконсультирует вас.
Подписывайтесь на рассылку Айтыжблог
blog subscriber decor image
Хотите получать интересные статьи?
Нажимая на кнопку “Отправить”, вы даете согласие на обработку личных данных. Подробнее
Следите за нами в социальных сетях