Чат бот - Умна нагадувалка для менеджерів
Виробничий Telegram-бот для щоденного управління завданнями. Власник пересилає контент (текст, фото, документ, відео), призначає виконавця, і бот перетворює повідомлення на завдання з повторюваними нагадуваннями. Виконавець закриває завдання однією кнопкою, власник отримує сповіщення.
Навіщо
— Швидка роздача завдань без зайвих чатів і ручних «пінгів».
— Нічого не втрачається: бот нагадує, поки завдання не закрито.
— Єдиний стандарт для регулярних завдань (щоденні, щотижневі, щомісячні тригери).
Можливості
— Диспетчеризація завдань: відправляєте контент → обираєте виконавця → виконавець отримує завдання з кнопкою «Готово».
— Автонагадування: повтор кожні 30 хвилин до натискання «Готово».
— Команда /rem для особистих нагадувань виконавців (формати HH:MM або DD.MM HH:MM; бот розуміє «сьогодні/завтра»).
— Готові пресети розкладу: Пн 10:00; Сб 19:00/19:30; 1/5/15/20 і останній день місяця.
— Збереження суті контенту: підтримуються текст, фото, документи та відео; завдання зберігає важливу витяжку з вихідного повідомлення.
— Сповіщення власнику при закритті завдання з коротким звітом.
— Зберігання завдань в SQLite; переживає перезапуски, активні завдання і дедлайни відновлюються при старті.
— Часовий пояс Europe/Kyiv: всі розклади працюють за місцевим часом.
Як працює
Власник відправляє повідомлення і обирає виконавця.
Бот створює завдання, відправляє його виконавцю і одразу ставить нагадування.
Кожні 30 хвилин приходить нагадування до натискання «Готово».
Виконавці можуть ставити особисті нагадування через /rem.
Регулярні завдання створюються за пресетами (дневні/місячні).
Користувацькі сценарії
— Власник: відправити контент → вибрати виконавця → виконавець отримує завдання → по завершенні приходить сповіщення.
— Виконавець: отримати завдання з кнопкою «Готово» → натиснути → завдання закрито, власник сповіщений.
— Особисті нагадування: «/rem Закрити звіт 18:30» або «/rem Рахунки 05.09 10:00».
Команди
— /start — показує список виконавців і коротку інструкцію, з підказками по пресетам розкладу.
— /rem — створити особисте нагадування (час/дата + опис).
Технічні деталі
— Стек: Python 3.12, aiogram 3.x (FSM, фільтри), APScheduler (cron/інтервал), SQLite.
— Стан: FSM на етапі вибору виконавця власником.
— Персистентність: завдання у файлі tasks.db; при запуску бот відновлює активні завдання і нагадування.
— Обробка контенту: текст/фото/документ/відео, підписи і коротка витяжка для сповіщень власника.
— Парсинг часу: формати HH:MM і DD.MM HH:MM з валідацією.
— Часовий пояс: Europe/Kyiv.
Надійність і логи
— Два канали логування: bot.log і stdout.
— Стійка обробка помилок: очищення застарілих повідомлень, захист від заблокованих/деактивованих чатів, коректна деактивація завдань.
— Ідемпотентний старт: активні завдання автоматично відновлюються і пересоздаються нагадування.
Схема даних (SQLite)
Таблиця tasks: task_id (PK), chat_id, type (text|photo|document|video), file_id, text_, caption, next_reminder_delta (minutes), deadline (ISO), status, message_id, source (owner|manager_rem|...), manager_num.
Обмеження
— Нагадування повторюються кожні 30 хвилин і вимагають натискання «Готово».
— Ідентифікатори власника і виконавців заздалегідь сконфігуровані (whitelist).
План розвитку
— Адмін-панель (web/бот) з стрічкою завдань і фільтрами.
— Гнучкі інтервали повторів (15/30/60 хвилин), «тихі години», SLA-цілі.
— Шаблони завдань за ролями і проектами.
— Експорт і звітність (CSV/Google Sheets).
— Сповіщення в канали/групи при порушенні SLA.
Теги: #TelegramBot #Python #aiogram #APScheduler #SQLite #TaskManager #ReminderBot #Automation #Cron #FSM #Notifications #KyivTime #CRM #БотДляБізнесу #Фріланс #сайт-портфоліо
Навіщо
— Швидка роздача завдань без зайвих чатів і ручних «пінгів».
— Нічого не втрачається: бот нагадує, поки завдання не закрито.
— Єдиний стандарт для регулярних завдань (щоденні, щотижневі, щомісячні тригери).
Можливості
— Диспетчеризація завдань: відправляєте контент → обираєте виконавця → виконавець отримує завдання з кнопкою «Готово».
— Автонагадування: повтор кожні 30 хвилин до натискання «Готово».
— Команда /rem для особистих нагадувань виконавців (формати HH:MM або DD.MM HH:MM; бот розуміє «сьогодні/завтра»).
— Готові пресети розкладу: Пн 10:00; Сб 19:00/19:30; 1/5/15/20 і останній день місяця.
— Збереження суті контенту: підтримуються текст, фото, документи та відео; завдання зберігає важливу витяжку з вихідного повідомлення.
— Сповіщення власнику при закритті завдання з коротким звітом.
— Зберігання завдань в SQLite; переживає перезапуски, активні завдання і дедлайни відновлюються при старті.
— Часовий пояс Europe/Kyiv: всі розклади працюють за місцевим часом.
Як працює
Власник відправляє повідомлення і обирає виконавця.
Бот створює завдання, відправляє його виконавцю і одразу ставить нагадування.
Кожні 30 хвилин приходить нагадування до натискання «Готово».
Виконавці можуть ставити особисті нагадування через /rem.
Регулярні завдання створюються за пресетами (дневні/місячні).
Користувацькі сценарії
— Власник: відправити контент → вибрати виконавця → виконавець отримує завдання → по завершенні приходить сповіщення.
— Виконавець: отримати завдання з кнопкою «Готово» → натиснути → завдання закрито, власник сповіщений.
— Особисті нагадування: «/rem Закрити звіт 18:30» або «/rem Рахунки 05.09 10:00».
Команди
— /start — показує список виконавців і коротку інструкцію, з підказками по пресетам розкладу.
— /rem — створити особисте нагадування (час/дата + опис).
Технічні деталі
— Стек: Python 3.12, aiogram 3.x (FSM, фільтри), APScheduler (cron/інтервал), SQLite.
— Стан: FSM на етапі вибору виконавця власником.
— Персистентність: завдання у файлі tasks.db; при запуску бот відновлює активні завдання і нагадування.
— Обробка контенту: текст/фото/документ/відео, підписи і коротка витяжка для сповіщень власника.
— Парсинг часу: формати HH:MM і DD.MM HH:MM з валідацією.
— Часовий пояс: Europe/Kyiv.
Надійність і логи
— Два канали логування: bot.log і stdout.
— Стійка обробка помилок: очищення застарілих повідомлень, захист від заблокованих/деактивованих чатів, коректна деактивація завдань.
— Ідемпотентний старт: активні завдання автоматично відновлюються і пересоздаються нагадування.
Схема даних (SQLite)
Таблиця tasks: task_id (PK), chat_id, type (text|photo|document|video), file_id, text_, caption, next_reminder_delta (minutes), deadline (ISO), status, message_id, source (owner|manager_rem|...), manager_num.
Обмеження
— Нагадування повторюються кожні 30 хвилин і вимагають натискання «Готово».
— Ідентифікатори власника і виконавців заздалегідь сконфігуровані (whitelist).
План розвитку
— Адмін-панель (web/бот) з стрічкою завдань і фільтрами.
— Гнучкі інтервали повторів (15/30/60 хвилин), «тихі години», SLA-цілі.
— Шаблони завдань за ролями і проектами.
— Експорт і звітність (CSV/Google Sheets).
— Сповіщення в канали/групи при порушенні SLA.
Теги: #TelegramBot #Python #aiogram #APScheduler #SQLite #TaskManager #ReminderBot #Automation #Cron #FSM #Notifications #KyivTime #CRM #БотДляБізнесу #Фріланс #сайт-портфоліо