En

JazzTeam Software Development Company

Agile Java Development

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

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

К примеру, можно установить правило, чтобы цены на свои товары в вашем магазине всегда были ниже цен конкурентов на определенное значение. Скажем, на 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.

Скриншоты: 

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

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

Достижения: