Автор кейсаНАДОЛоготип компании

Поддержка и развитие SaaS-платформы для поиска тендеров на Laravel и PostgreSQL

Заказчик
EWATender — SaaS-платформа для поиска и анализа государственных и коммерческих тендеров.
Задача
Технический аудит проекта, восстановление работы парсеров, решили проблему после изменения API государственных закупок, создали техническую документацию, передали клиенту исходный код

О проекте

EWATender — SaaS-платформа для поиска и анализа государственных и коммерческих тендеров.

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

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

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

На протяжении примерно пяти лет систему развивал один разработчик. После его ухода выяснилось сразу несколько критичных проблем:

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

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

Что мы сделали

Провели технический аудит проекта

Работа началась с полной инвентаризации системы. Мы изучили архитектуру платформы, восстановили принципы работы сервисов и одновременно начали создавать техническую документацию, которой ранее не существовало. Фактически пришлось выполнить обратный инжиниринг проекта.

Восстановили работу парсеров

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

Решили проблему после изменения в API государственных закупок

Во время сопровождения произошел критический инцидент.

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

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

Создали техническую документацию

Одной из важнейших задач стало документирование проекта. Мы подготовили более 30 технических документов, описав:

  • архитектуру системы;
  • работу каждого парсера;
  • внешние интеграции;
  • резервное копирование;
  • запуск проекта;
  • обслуживание инфраструктуры;
  • используемые сервисы.

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

Работа с PostgesQL

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

В проекте активно использовались:

  •     партиционирование больших таблиц;
  •     JSON-поля;
  •     полнотекстовый поиск PostgreSQL;
  •     Foreign Data Wrappers;
  •     хранимые процедуры и триггеры.

Это позволило понять существующую архитектуру без переписывания системы и безопасно продолжить развитие проекта. Сегодня мы применяем этот опыт и на других проектах с PostgreSQL.

Что было сделано

  •     проведен аудит легаси-проекта;
  •     восстановлена работа парсеров;
  •     реализован новый механизм получения данных после изменения API;
  •     подготовлено более 30 документов технической документации;
  •     выполнена инвентаризация внешних сервисов;
  •     создан единый Git-репозиторий;
  •     восстановлена управляемость проекта.

Что получил клиент

После завершения работ компания перестала зависеть от одного разработчика.

Клиент получил:

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

Какие задачи мы решаем на подобных проектах

Этот кейс показывает нашу экспертизу в следующих направлениях:

  •     поддержка Laravel-проектов;
  •     сопровождение SaaS-платформ;
  •     аудит легаси-систем;
  •     reverse engineering;
  •     техническая документация;
  •     разработка и сопровождение парсеров;
  •     сопровождение PostgreSQL;
  •     восстановление проектов после ухода разработчиков;
  •     принятие чужого кода на поддержку;
  •     развитие сложных веб-систем без полной переработки архитектуры.

Итог

EWATender — хороший пример того, что далеко не каждый проект требует переписывания с нуля.

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

 


Перейти на сайт

В карточку агентства

Письмо автору кейса

Пользуйтесь реальным опытом в IT и следите за успехами потенциальных подрядчиков и конкурентов
Подпишитесь на рассылку
Подпишитесь
на наши каналы в MAX или Телеграм, чтобы не пропускать новые материалы
MAXКанал в MAXTelegramКанал в TG
Кейсы по теме#Создание сайтов

©2007-2026

Проекты компании Proactivity Group
Нажмите «ОК», если вы соглашаетесь с условиями обработки cookie и ваших данных о поведении на сайте, необходимых для аналитики. Запретить обработку cookie можете через браузер