Чат-бот — умная напоминалка для менеджеров
Производственный 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/interval), 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/interval), 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 #БотДляБизнеса #Фриланс #сайт-портфолио