К содержимому
К личным проектам
Логотип planerBot

Работающий Telegram-бот · развитие продукта

planerBot

Продуктовые сценарии · AI-assisted разработка

Контекст и результат

Единый календарь Telegram-чатов с проверкой доступа и ответами участников

Telegram-бот и Mini App для общего календаря событий из нескольких чатов с темами и без. Пользователь видит встречи только тех подключённых чатов, в которых состоит. Администраторы создают, редактируют и отменяют события, публикуют карточки в чат или тему; сообщения с настроенным тегом также распознаются как события. Реализованы ответы «Приду»/«Не приду», личные рассылки группам ответов, отметки изменений и техподдержка через бота.

AI-assisted процесс

Проект развивается в AI-assisted процессе: требования, сценарии и приёмка задаются владельцем; изменения проходят PR, автоматические проверки и отдельный релиз.

Моя зона ответственности

Продуктовые сценарии

Требования к календарю нескольких чатов, доступам, публикации событий, ответам участников и личным рассылкам; обратная связь и приёмка сценариев.

AI-assisted реализация

Frontend, backend, интеграция Telegram и инфраструктура развиваются с поддержкой AI-инструментов; изменения оформляются через PR.

Проверка и эксплуатация

Демонстрационные browser-сценарии, unit- и интеграционные тесты, проверки CI, отдельные релизы и диагностика работы бота на VPS.

Экраны проекта

Каждый кадр можно открыть в полном размере; также работают клавиши ← и →.

Календарь и повестка нескольких чатов · демонстрационные данные

01 / 05

Схема решения

Архитектура

Telegram Mini App
FastAPI / aiogram
PostgreSQL
Worker / Telegram API
  • React + TypeScript Mini App организован по FSD; Tailwind CSS и общие компоненты обеспечивают адаптивный календарь, формы, модальные окна и две темы.
  • FastAPI проверяет Telegram initData, членство и права на уровне каждого чата. aiogram обрабатывает команды, подключение чатов, импорт событий из сообщений с тегами и обращения в поддержку.
  • PostgreSQL хранит чаты, события, версии, ответы и задания доставки. SQLAlchemy и Alembic управляют persistence и миграциями; намерение публикации создаётся транзакционно, а сетевой вызов выполняется отдельно worker-процессом.
  • Worker проверяет актуальные права, согласие на личные сообщения и ответы участников; различает отправленные, пропущенные, ошибочные и неизвестные исходы. Неизвестная доставка не повторяется автоматически.
  • Docker Compose разделяет API, polling-бота, worker, PostgreSQL и Nginx gateway; Telegram-доступ идёт через закрытый прокси. GitHub Actions проверяет PR, выпуск выполняется по неизменяемому версионному тегу из main.

Технологии

ReactTypeScriptTailwind CSSPythonFastAPIaiogramPostgreSQLSQLAlchemyAlembicDocker ComposeNginxTelegram Bot APIGitHub ActionsCypressVitest
Ко всем личным проектам