Перейти к основному содержимому

Ежедневник (Telegram-бот)

Назначение

Персональный помощник в Telegram: пользователь ведёт список задач с датами и временем, смотрит календарь по дням и может включать напоминания.

Потоки работы

  1. Регистрация / старт — после /start пользователь проходит короткий сценарий регистрации (имя, часовой пояс), чтобы напоминания приходили в нужное время.
  2. Задачи — команды и кнопки «Мои задачи», «Новая задача»: создание задачи с выбором даты срока (инлайн-календарь), времени при необходимости, описания, отметка выполнения и удаление с подтверждением.
  3. Просмотр по дням — пользователь выбирает день в календаре и видит список задач на эту дату.
  4. Настройки — раздел «Напоминания»: включение/выключение уведомлений, смена часового пояса.

Демо-задачи при старте

Если в БД нет ни одного пользователя, при запуске бота один раз создаётся служебный пользователь с фиктивным telegram_id и несколько «живых» задач с идеями про фокус и быт (в Telegram они не видны — только в БД для пустого стенда). Как только появится первый реальный пользователь, повторный seed не выполняется.

Данные

  • Хранение в SQLite (файл БД), путь задаётся переменной DATABASE_URL.
  • В Docker том монтируется в /app/data, чтобы данные переживали перезапуск контейнера.

Конфигурация

  • BOT_TOKEN — токен бота от BotFather (в корневом compose задаётся через DIARY_BOT_TOKEN и пробрасывается как BOT_TOKEN).

Технологии

  • aiogram 3, асинхронный polling, FSM для многошаговых диалогов.