Техническое задание: бот для еженедельного мониторинга цен конкурентов в Telegram
1. Цель проекта
Необходимо разработать бота/скрипт, который 1 раз в неделю автоматически собирает цены на лабораторные исследования у конкурентов, сравнивает их с предыдущим сбором и отправляет короткий отчет в Telegram.
2. Конкуренты для мониторинга
Необходимо собирать цены с сайтов:
МЛ ДІЛА
Сінево
Медлаб
CSD
Nikolab
Базовый город: Киев.
3. Что именно нужно мониторить
На первом этапе нужно мониторить 580 лабораторных исследований/услуг. Список будет предоставлен в таблице
Список услуг : https://docs.google.com/spreadsheets/d/1ZY4bRvDpZdtMiJ6SPRhilYJIPnxTqzVe/edit?usp=sharing&ouid=100601517266070340154&rtpof=true&sd=true
4. Основной функционал
Система должна:
Раз в неделю запускать сбор цен.
Заходить на страницы конкурентов.
Извлекать:
Сохранять данные в базу или Google Sheets.
Сравнивать новый сбор с предыдущим.
Определять:
Формировать короткий отчет.
Отправлять отчет в Telegram-чат или Telegram-канал.
5. Формат Telegram-отчета
Пример:
Мониторинг цен конкурентов — 28.04.2026
Общая статистика
Изменено цен: 7
Подорожало: 5
Подешевело: 2
Без изменений:
Ошибки сбора: 3
ДІЛА
Сінево
Медлаб
CSD
Рекомендации / алерты
6. Админ-часть / настройки
Необходимо реализовать через Google Sheets
отдельная таблица со списком услуг;
отдельная таблица с историей сборов;
отдельная таблица с ошибками.
7. Требования к парсингу
Бот должен работать стабильно даже если одна из страниц недоступна.
Если цену не найдено — не падать, а записывать ошибку.
Необходимо логировать все ошибки.
Необходимо учитывать, что цены могут быть:
8. Telegram
Необходимо создать или подключить Telegram Bot API.
Бот должен:
отправлять еженедельный отчет;
отправлять сообщение об ошибке, если сбор не состоялся;
иметь возможность запуска вручную командой /run;
иметь команду /last_report;
желательно иметь команду /status.
9. Расписание запуска
Сбор должен запускаться автоматически 1 раз в неделю.
Желаемый день: понедельник.
Желаемое время: 09:00 по Киеву.
10. Ожидаемый результат
На выходе необходимо получить:
Рабочий бот/скрипт.
Настроенный еженедельный запуск.
Telegram-отчет.
Таблицу или базу с историей цен.
Инструкцию по использованию.
Инструкцию, как добавлять новые услуги.
Краткий README для поддержки проекта.
11. Критерии приемки работы
Работа считается выполненной, если:
бот успешно собирает цены минимум по 100 услугам;
покрыты все 5 компаний;
данные сохраняются в таблицу или базу;
второй запуск корректно сравнивает цены с первым;
Telegram-отчет приходит автоматически;
ручной запуск через /run работает;
ошибки логируются;
есть инструкция, как добавить новую услугу;
код передан в GitHub или архивом.
12. Что нужно от исполнителя в ответе
Прошу в ответе указать:
Ориентировочную стоимость.
Ориентировочный срок выполнения.
Какой стек предлагаете.
Где лучше хранить данные: Google Sheets, SQLite или PostgreSQL.
Есть ли опыт с парсингом сайтов и Telegram-ботами.
Можете ли поддерживать проект после запуска.