Сервис отслеживания цен с Telegram-ботом и Mini App

Price Tracker объединяет Telegram-бота, backend API и фронтенд Mini App в единую систему. Пользователь добавляет ссылку на товар, система регулярно обновляет цену через фоновые задачи и отправляет уведомление, когда цена падает.

4 процесса при полном запуске
3+ источника данных: Bot, API, Mini App
24/7 фоновый контроль динамики цен
Пользовательский сценарий

Ключевой функционал

  • Добавление товара по ссылке прямо в Telegram-боте.
  • Хранение и история цен в PostgreSQL.
  • Автоматические обновления цен в фоне через Celery + Redis.
  • Уведомление, когда текущая цена стала ниже предыдущей.
  • Просмотр всех товаров в Telegram Mini App.
Результат

Пользователь получает простой путь: добавить ссылку, дождаться изменений и быстро открыть весь список товаров в Mini App.

Архитектура и процессы

Как работает система

  • Бот принимает команды: /start, /adding_by_link, /show_all_products и другие.
  • API валидирует initData и отдает товары только текущему пользователю.
  • Worker обрабатывает задачи парсинга и обновляет данные в БД.
  • Планировщик периодически ставит задания на проверку цен.
Результат

Компоненты разделены по ответственности, поэтому проект удобно поддерживать, тестировать и масштабировать.

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

Backend и инфраструктура

  • Python 3.10+, FastAPI, Uvicorn.
  • PostgreSQL + SQLAlchemy (async) для хранения данных о товарах и ценах.
  • Celery + Redis для фоновых задач мониторинга.
  • aiogram для Telegram-бота и командного сценария.
  • HTML/CSS/JS фронтенд для Telegram Mini App.
FastAPI PostgreSQL Celery Redis aiogram
Структура проекта

Разделение по модулям

  • app/ - backend API для Mini App.
  • database/ - модели и запросы к БД.
  • task_queue/ - Celery-приложение и фоновые задачи.
  • teregram_bot/ - обработчики и команды бота.
  • parser/wildberries и parser/ozon - источники данных.
Плюс для развития

Текущая структура позволяет добавить больше маркетплейсов и гибкие правила уведомлений без переработки ядра.