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