Разработал веб-сервис PriceRadar с отдельным frontend, backend и системой фоновых задач.
Реализовано:
• личный кабинет и авторизация пользователей;
• организации и разграничение доступа к данным;
• проекты, товары и конкуренты;
• привязка URL товаров конкурентов;
• автоматическое получение и нормализация цен;
• сохранение истории цен;
• определение повышения и снижения стоимости;
• отображение разницы между собственной ценой и конкурентом;
• фоновые проверки через очередь задач;
• обработка ошибок и повторные попытки;
• импорт и экспорт XLSX;
• административная панель;
• demo-режим для демонстрации продукта.
Для получения данных используется несколько способов извлечения: structured data, microdata, meta-информация и HTML-разбор. Более тяжёлый браузерный режим применяется только там, где обычного HTTP-запроса недостаточно.
Отдельное внимание уделено безопасности: изоляции данных организаций, проверке внешних URL и защите от запросов к внутренним адресам.
Стек проекта: Next.js, TypeScript, FastAPI, Python, PostgreSQL, Redis, Celery, Docker.
Реализован полный цикл:
• создание проектов, товаров и конкурентов;
• привязка URL товаров конкурентов;
• автоматическое получение цен;
• сохранение истории изменений;
• сравнение собственной цены и цены конкурента;
• фиксация повышения и снижения стоимости;
• фоновые проверки;
• обработка ошибок и повторные попытки;
• импорт и экспорт XLSX;
• административная часть;
• demo-режим.