
Работающий 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Схема решения
Архитектура
- 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.