ДжазТим — надежный технологический партнер

Agile разработка ПО на Java

Система автоматического мониторинга цен конкурентов, оптимизации цен в своих магазинах

Описание проекта

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

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

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

При сканировании торговых площадок (например: Amazon, Ebay, Pricerunner), система автоматически находит ваших конкурентов, у которых есть аналогичный товар, что и у вас. При этом система информирует не только о старых конкурентах, но и о появлении новых. Затем пользователь может добавить в систему нового конкурента и настроить новые правила для изменения цен на свои продукты.

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

Система состоит из двух независимых приложений: веб-приложение и краулер.

1. Веб-приложение — приложение, с которым взаимодействует пользователь: настраивает свой кабинет (dashboard), добавляет конкурентов, задает правила регулирования цен продуктов, управляет сканированием продуктов.
Бэкенд реализован на Java c использованием Spring. Используется БД MySQL, для быстрого доступа к данным используется Apache Solr. Приложение разбито на модули, которые можно развернуть на отдельных серверах, для связи между модулями используется RabbitMQ.
Фронтенд разработан с помощью ExtJS и Bootstrap.
Защиту обеспечивает KeyCloak сервер.

2. Краулер — отдельное приложение, которое занимается сканированием интернет магазинов. Разработан на Scala с использованием Apache Spark фреймворка.
Для большинства cms магазинов написаны скрипты для парсинга, которые разбирают структуру магазина, находят информацию о продуктах, сохраняют информацию в БД. Для парсинга новых или нестандартных cms есть возможность указывать индивидуальные парсинг правила, используя определенный шаблон.

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

Технологии

Backend: Java EE, Hibernate, JPA, Spring, KeyCloak, MySQL, Solr, RabbitMQ, Jackson, Apache Tomcat.
Frontend: ExtJS, JQuery, JavaScript, Bootstrap.
Crawler: JavaScript, Spark, Scala.
Jira, HipChat, GitHub, Jenkins, Maven.

Скриншоты

Особенности проекта

  • Совместная работа в распределенной интернациональной команде.
  • Быстрый вход в проект и быстрые, короткие этапы разработки.
  • Часто меняющиеся функциональные требования.
  • Работа над продуктом, действующем на рынке с высокими рисками.
  • Необходимость погружения в особенности функционирования крупных мировых торговых площадок.

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

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

Достижения

  • Проект успешно завершен в условиях динамично изменяющихся требований.
  • Инициировали и принимали участие в разработке архитектуры БД.

Свяжитесь с нами, чтобы обсудить Ваш IT-проект

    Имя *

    Название компании

    Email *

    Телефон

    Чем мы можем Вам помочь? *

    * – Обязательные поля для заполнения