TaskFlow Bot — это телеграм-бот для управления задачами через Task Manager API.
Проект построен на Aiogram 3, использует Pydantic и Redis, полностью работает через Docker. Предоставляет удобный интерфейс с помощью комбинации inline и reply клавиатур, что позволяет управлять процессом практически без ручного ввода и использования /command.
Проект является частью планируемой комплексной экосистемы для управления задачами, которая будет включать:
- REST API — основной бэкенд для управления пользователями, задачами и категориями.
- Telegram-бот (этот репозиторий) — пользовательский интерфейс для взаимодействия с задачами через мессенджер.
- MCP - для взаимодействия LLM с сервисом.
- Главное меню и справка, которые позволяют управлять ботом без слеш-команд.
- Просмотр задач с группировкой по статусу и приоритетам, фильтры, поиск и пагинация.
- Создание и редактирование задач через инлайн-клавиатуру: приоритет, дедлайн, категория.
- Управление категориями (создание, переименования, быстрый переход к связанным задачам).
- Поддержка архивирования, восстановления и индикации активных фильтров.
- Python 3.11 + aiogram 3.7.0
- Redis (FSM storage)
- httpx для общения с Task Manager API
- Pydantic settings и типизированные сервисы
- Docker & Docker Compose для развёртывания
- Установите Python 3.11+, Redis 5+ и клонируйте репозиторий.
- Создайте виртуальное окружение и установите зависимости:
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt - Скопируйте
.env.exampleв.envи заполните переменные окружения (см. ниже). - Запустите бота:
python main.py
BOT_TOKEN— токен Telegram-бота от @BotFather (обязателен).API_BASE_URL— базовый URL Task Manager API, по умолчаниюhttp://localhost:8000.REDIS_URL— строка подключения к Redis, по умолчаниюredis://localhost:6379/0.LOG_LEVEL— уровень логирования (INFO,DEBUGи т.д.).
- Создайте общую сеть (нужно один раз):
docker network create task_manager_network
- Соберите и запустите контейнер:
docker compose up --build bot
- Остановить:
docker compose down
Бот будет доступен в Telegram, используя токен из .env.