EWATender — SaaS-платформа для поиска и анализа государственных и коммерческих тендеров.
Сервис агрегирует информацию с различных площадок, помогает пользователям искать закупки, а также предоставляет дополнительные образовательные продукты и услуги тендерного сопровождения.
За годы развития система превратилась в крупный легаси-проект с большим количеством интеграций, парсеров и внутренних сервисов.
На протяжении примерно пяти лет систему развивал один разработчик. После его ухода выяснилось сразу несколько критичных проблем:
Кроме исправления ошибок, наша задача заключалась в том, чтобы принять проект на полноценную техническую поддержку и сделать его независимым от конкретного исполнителя.
Работа началась с полной инвентаризации системы. Мы изучили архитектуру платформы, восстановили принципы работы сервисов и одновременно начали создавать техническую документацию, которой ранее не существовало. Фактически пришлось выполнить обратный инжиниринг проекта.
Основная ценность платформы — актуальная информация о тендерах. Во время аудита выяснилось, что часть парсеров работала некорректно. Из-за этого пользователи не видели часть закупок. Мы проверили работу всех парсеров, определили причины ошибок и восстановили корректную обработку различных источников данных.
Во время сопровождения произошел критический инцидент.
Основной источник данных изменил способ предоставления информации и ввел ограничения на количество запросов. Стандартный механизм перестал позволять получать весь необходимый объем данных. Мы проанализировали доступные варианты и реализовали альтернативный способ получения информации через API мобильного приложения.
После этого появилась новая проблема — ограничение количества страниц при выборке. Мы переработали алгоритм запросов, разделив их по категориям и типам закупок, что позволило продолжить получать полный объем данных.
Одной из важнейших задач стало документирование проекта. Мы подготовили более 30 технических документов, описав:
После завершения работ клиент получил полный комплект документации для дальнейшего сопровождения системы. Передали клиенту исходный код До начала проекта часть кода отсутствовала в репозиториях или находилась только у предыдущего разработчика. Мы объединили кодовую базу, подготовили единый Git-репозиторий и передали его заказчику вместе с историей изменений. Теперь проект может сопровождать любая команда разработки.
Проект использовал PostgreSQL вместо более привычного для нас MySQL. Во время сопровождения мы подробно изучили существующую архитектуру базы данных и особенности реализации.
В проекте активно использовались:
Это позволило понять существующую архитектуру без переписывания системы и безопасно продолжить развитие проекта. Сегодня мы применяем этот опыт и на других проектах с PostgreSQL.
После завершения работ компания перестала зависеть от одного разработчика.
Клиент получил:
Этот кейс показывает нашу экспертизу в следующих направлениях:
EWATender — хороший пример того, что далеко не каждый проект требует переписывания с нуля.
Даже если документация отсутствует, архитектура сложна, а бизнес зависит от одного разработчика, систему можно принять на сопровождение, восстановить ее управляемость и обеспечить дальнейшее развитие без остановки продукта.