Технічне завдання: бот для щотижневого моніторингу цін конкурентів у 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-ботами.
Чи можете підтримувати проєкт після запуску.