Ежедневник (Telegram-бот)
Назначение
Персональный помощник в Telegram: пользователь ведёт список задач с датами и временем, смотрит календарь по дням и может включать напоминания.
Потоки работы
- Регистрация / старт — после
/startпользователь проходит короткий сценарий регистрации (имя, часовой пояс), чтобы напоминания приходили в нужное время. - Задачи — команды и кнопки «Мои задачи», «Новая задача»: создание задачи с выбором даты срока (инлайн-календарь), времени при необходимости, описания, отметка выполнения и удаление с подтверждением.
- Просмотр по дням — пользователь выбирает день в календаре и видит список задач на эту дату.
- Настройки — раздел «Напоминания»: включение/выключение уведомлений, смена часового пояса.
Демо-задачи при старте
Если в БД нет ни одного пользователя, при запуске бота один раз создаётся служебный пользователь с фиктивным telegram_id и несколько «живых» задач с идеями про фокус и быт (в Telegram они не видны — только в БД для пустого стенда). Как только появится первый реальный пользователь, повторный seed не выполняется.
Данные
- Хранение в SQLite (файл БД), путь задаётся переменной
DATABASE_URL. - В Docker том монтируется в
/app/data, чтобы данные переживали перезапуск контейнера.
Конфигурация
BOT_TOKEN— токен бота от BotFather (в корневом compose задаётся черезDIARY_BOT_TOKENи пробрасывается какBOT_TOKEN).
Технологии
- aiogram 3, асинхронный polling, FSM для многошаговых диалогов.