Кейс: Разработка системы автоматического мониторинга цен конкурентов

Кейс: Разработка системы автоматического мониторинга цен конкурентов

Fullstack-проект с современным технологическим стеком: FastAPI, React, PostgreSQL, Redis, Celery

Задача проекта

Разработать веб-приложение для автоматизации процесса мониторинга цен конкурентов в B2B сегменте. Система должна заменить ручной процесс сбора данных, который занимал 4-6 часов ежедневно.

Ключевые требования к системе:

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

Техническое решение

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

 Основной функционал системы:

  1. Автоматический сбор данных с множественных веб-источников
  2. Интеллектуальный анализ изменений и аномалий
  3. Долгосрочное хранение исторических данных
  4. Система уведомлений о критических изменениях
  5. Аналитическая отчетность и экспорт данных

🔧 Архитектура парсинг-модулей:

Система поддерживает подключение различных источников данных через универсальную архитектуру парсеров:

  •  Базовый абстрактный класс для всех парсеров
  •  Специализированные модули для каждого источника
  • Автоматическая обработка ошибок и повторные попытки
  • Валидация данных на всех этапах обработки
  •  Гибкая настройка параметров парсинга

Технологический стек

🏗️ Архитектура приложения

Система построена на современных enterprise-технологиях с акцентом на производительность и масштабируемость:

  • Backend: FastAPI + SQLAlchemy — асинхронный REST API
  • Frontend: React + TypeScript + Ant Design — SPA интерфейс
  • База данных: PostgreSQL — реляционное хранение данных
  • Очереди задач: Celery + Redis — асинхронная обработка задач
  • Контейнеризация: Docker + Docker Compose — простое развертывание
  • Веб-сервер: Nginx — reverse proxy и статические файлы

 Умный алгоритм парсинга

Каждый парсер работает по единому алгоритму:

  1. Получение страницы с товаром (с повторными попытками при ошибках)
  2. Извлечение цены из HTML-кода страницы
  3. Валидация данных (цена должна быть разумной)
  4. Сравнение с предыдущими значениями для выявления изменений
  5. Сохранение в базу данных с временной меткой

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

 Ключевые показатели эффективности:

Метрика Было Стало Улучшение
Время на мониторинг 4-6 часов в день 15 минут в день 95% автоматизация
Покрытие товарных позиций 200-300 единиц 2000+ единиц ×7 масштабирование
Частота обновления данных 1-2 раза в неделю 24/7 мониторинг Real-time данные
Точность прогнозов Интуитивные оценки Data-driven решения Аналитический подход

 Техническая эффективность:

  • Производительность: обработка 10,000+ запросов в день
  • Надежность: 99.9% uptime системы
  • Масштабируемость: горизонтальное расширение парсеров
  • Мониторинг: детальное логирование и метрики производительности

Работа системы

 Жизненный цикл обработки данных

Система работает по следующему алгоритму:

  • 02:00 — Автоматический запуск процедур сбора данных
  • 02:00-04:00 — Параллельная обработка всех источников
  • 04:00-04:30 — Анализ изменений и генерация уведомлений
  • 04:30-05:00 — Обновление аналитических отчетов
  • 05:00+ — Данные доступны пользователям через веб-интерфейс

 Интеллектуальная система алертов

Система анализирует данные и автоматически определяет важные события:

  • 🔴 Критические изменения (>20%): Мгновенное уведомление
  • 🟡 Значительные изменения (10-20%): Уведомление в интерфейсе
  • 🟠 Недоступность источника 3+ дня: Техническое предупреждение
  • 🟢 Новые экстремумы: Статистические аномалии

Интерфейсы и возможности

 Аналитический дашборд

Веб-интерфейс предоставляет комплексную аналитику:

  • Real-time дашборд: текущее состояние мониторинга
  • Исторические тренды: графики изменений во времени
  • Статистика обработки: метрики работы парсеров
  • Интерактивные фильтры: настраиваемые представления данных

 Административная панель

Система предоставляет полный контроль над процессом мониторинга:

  •  Управление номенклатурой через веб-интерфейс
  •  Настройка источников для каждой позиции
  •  Категоризация и теги для группировки данных
  •  Экспорт отчетов в различных форматах

 Гибкая настройка парсинга

  • Расписание: ежедневно в 2:00 (настраивается)
  • Повторные попытки: до 3 попыток при ошибках
  • Таймауты: 30 секунд на запрос (настраивается)
  • User-Agent: ротация для избежания блокировок

Развертывание за 15 минут

Благодаря использованию Docker, развертывание PriceWatch занимает всего несколько команд:


# Клонирование проекта
git clone [repository-url]
cd pricewatch

# Настройка конфигурации
cp .env.example .env

# Запуск системы
docker compose up -d

# Применение миграций
docker compose exec backend alembic upgrade head

Готово! Система доступна по адресу http://localhost:18080

Масштабируемость и развитие

🚀 Планы развития системы

Версия 2.0 (планируется):

  •  Интеграция с 1С для автоматической синхронизации номенклатуры
  •  Мобильное приложение для мониторинга «на ходу»
  •  Машинное обучение для прогнозирования цен
  •  Расширенная аналитика с рекомендациями по ценообразованию

Версия 3.0 (перспектива):

  •  Мониторинг наличия товаров у конкурентов
  •  Парсинг характеристик для полного сравнения
  •  Интеграция с маркетплейсами (Wildberries, Ozon)
  •  Конкурентный анализ ассортимента

Технические преимущества архитектуры

 Микросервисная архитектура

PriceWatch построен по принципам современной разработки:

  • Разделение ответственности: API, парсинг, интерфейс — независимые сервисы
  • Горизонтальное масштабирование: можно добавлять новые парсеры без изменения кода
  • Отказоустойчивость: если один сервис недоступен, остальные работают
  • Простота обслуживания: каждый компонент обновляется независимо

 Безопасность и надежность

  • JWT-аутентификация для защиты API
  • Защита от блокировок при парсинге (ротация User-Agent, задержки)
  • Логирование всех операций для отладки и аудита
  • Автоматические backup’ы базы данных

Технические особенности реализации

 Архитектурные решения

  • Микросервисная архитектура: независимые модули для каждого типа задач
  • Асинхронная обработка: Celery workers для фонового выполнения
  • Кэширование: Redis для повышения производительности
  • Мониторинг: Логирование и метрики работы системы

 База данных и модели

  • ORM: SQLAlchemy для работы с базой данных
  • Миграции: Alembic для версионирования схемы
  • Связи: Many-to-many отношения между товарами и источниками
  • Индексы: Оптимизация запросов к историческим данным

Заключение

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

  •  Высокая производительность: обработка тысяч запросов
  •  Масштабируемость: легкое добавление новых источников
  •  Автоматизация: 95% сокращение ручного труда
  •  Modern tech stack: использование актуальных технологий

 Возможности развития

Архитектура системы позволяет легко расширять функционал:

  •  API интеграции с внешними системами
  •  Machine Learning для прогнозирования трендов
  •  Расширенная аналитика и бизнес-интеллект
  •  Интеграция с ERP/CRM системами

 Исходный код

Проект реализован как fullstack-приложение с полной контейнеризацией:

  • Backend: FastAPI + SQLAlchemy + Celery
  • Frontend: React + TypeScript + Ant Design
  • Infrastructure: Docker + PostgreSQL + Redis + Nginx
  • Monitoring: Comprehensive logging and metrics

Технологии: Python, JavaScript, TypeScript, FastAPI, React, PostgreSQL, Redis, Celery, Docker, Nginx