Техстройконтракт

Техстройконтракт

Продажа строительно-дорожной техники ведущих мировых производителей
Стек технологий:
  • JavaScript
  • Python
  • React

Задачи

  • Нам требовалось адаптировать существующий сайт под новые бизнес-требования

  • Главной задачей была интеграция с внутренней системой компании – импорт всей спецификации из Oracle БД через XML-выгрузки (до 1000+ Мб), который изначально не справлялся с нагрузкой

  • Реализовать динамическую фильтрацию с возможностью гибкой настройки прямо из административной панели

  • Полностью переработать раздел «Запчасти», создав новый дизайн и расширенный функционал

Решение

Проект находился на устаревшем стеке технологий: Python 3.7, Django 2.2, с неработающим функционалом и незавершенными задачами. Среди проблем также наблюдались: устаревшая техническая база мешала масштабированию и дальнейшей разработке, не работал импорт данных из внутренней системы Oracle (XML-файлы до 1000+ Мб). Плохая производительность и неудобство в обслуживании, было невозможно быстро управлять фильтрами и контентом. Первым делом мы провели полный аудит проекта. Поняли, что большая часть кода нуждается в глубоком рефакторинге, а некоторые части требовалось переписать с нуля. Макетов сайта не было, мы также создали UI kit и полный дизайн в Figma.

Решение
  • Мы провели аналитику требований от клиента, составили техническое задание на новый раздел «Запчасти». Поскольку отсутствовали макеты дизайна, заново создали UI-kit

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

  • Также мы реализовали новый раздел «Распродажа» в кратчайшие сроки. С использованием поиска, динамической фильтрации, новым дизайном

  • На сайте был настроен импорт данных из сторонней системы посредством XML большого объема, часть импорта оказалась в нерабочем состоянии. В процессе мы его оптимизировали, разбили обработку на очереди (с дочерними подпроцессами), настроили валидацию данных XML по схемам XSD

  • Создали документацию, четко описали все методы по импорту и закрыли по безопасности от посторонних запросов

  • Реализовали механизм добавления товара в корзину в зависимости от выбранного филиала с учетом цены. Для техники в аренду создали механизм добавления в корзину с выбором количества дней аренды

  • Сейчас мы занимаемся переводом сайта на современный стек технологий в виде NextJS, в дальнейшем планируем улучшать интеграции с внешними сервисами и CRM заказчика

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

  • Перевели проект на Python 3.13 и Django 5+

  • Подключили Celery, Redis, ElasticSearch, CI/CD, Poetry, PyTest

  • Полностью переписали XML-импорт, сделав его стабильным даже для больших объемов данных

  • Добавили тесты на основной функционал сайта

  • Внедрили Docker для удобного развертывания

  • Создали систему автоматизированного тестирования

  • Внедрили быстрый поиск по сайту через ElasticSearch

  • Улучшили возможности СЕО-оптимизации, доработали текущие разделы и добавили новые

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

Основные сложности

  • Интеграция с внутренней системой Oracle через XML-файлы (до 1ГБ)

  • Обработка огромных объемов данных (до 11 млн позиций цен)

  • Полная переработка фронтенда без готовых макетов

  • Сложная логика фильтрации и динамического отображения данных

  • Одновременная работа над несколькими разделами с разной логикой и отсутствие документации

Основные сложности
Основные сложности

Стек технологий

  • Backend : Python, Django, Django Rest Framework, PostgreSQL, Redis, Celery, ElasticSearch

  • Frontend : HTML5, CSS3, JavaScript, ReactJS, NextJS (в процессе перехода)

  • Инструменты : Docker, CI/CD, Poetry, PyTest, Figma

  • Интеграции : CRM, КЛАДР, FTP, XML, XSD, API

Стек технологий

Результаты

  • Импорт данных стал в 6 раз быстрее (с 18 часов до 3)

  • Поиск товаров — 0.3 секунды

  • Поддержка более 10 000 товаров , 1000+ пользователей онлайн

  • Полностью обновлен фронтенд (100%), значительная часть бэкенда (80%)

  • Более 20 новых API-методов , 90+ автоматизированных тестов

Результаты

Бизнес-эффект

  • Снижение нагрузки на отдел продаж

  • Рост конверсии в заказы на 25%

  • Упрощенная поддержка благодаря Docker, CI/CD и документации

Понравился проект?

Оставьте заявку, и наши менеджеры свяжутся с вами
  • JavaScript
  • Python
  • React