Техническое задание: Разработка Telegram-бота с админкой и рассылками
Цель проекта
Создать удобный инструмент для вовлечения аудитории Telegram-канала. Бот будет служить лендингом, предоставлять информацию и позволять администратору управлять контентом и коммуникациями.
Функционал для пользователей
- Команда /start: Приветственное сообщение с меню кнопок.
- Основные разделы:
- Кнопка "Перейти в канал" (постоянно доступна во всех разделах).
- Раздел "О проекте" (отдельный экран).
- Раздел "FAQ" с вопросами и ответами (отдельный экран).
- Раздел "Контакты" (отдельный экран).
- Система подписки: Пользователь может подписаться или отписаться от рассылок бота.
Функционал для администратора
Доступ к админ-панели (/admin) только по предварительно заданному admin_id.
- Управление контентом: Возможность редактировать тексты в разделах "start", "о проекте", "контакты", а также ссылку на канал.
- Управление FAQ: Функционал для добавления, удаления и редактирования вопросов и ответов.
- Настройка бота: Возможность менять описание профиля бота (краткое и полное) напрямую через Telegram Bot API.
- Рассылка сообщений:
- Создание текста рассылки.
- Предварительный просмотр перед отправкой.
- Отправка только подписанным пользователям.
- Отчет по рассылке: Статистика по доставленным (
sent), неотправленным из-за ошибок (failed) и заблокированным боту (blocked) пользователям.
Технические требования
- Использование базы данных (SQLite допустимо для MVP).
- Организация рассылки через очередь задач (queue) с ограничением частоты запросов (throttling).
- Обработка ошибок Telegram API, в частности ошибки 429 (Too Many Requests) и статуса "заблокирован".
- Чистый код с комментариями.
- Передача исходного кода и файла README с инструкциями по запуску и деплою.
- Конфигурация проекта (токен бота, admin_id и др.) через переменные окружения (ENV).
Что НЕ входит в задачу
- Системы оплаты.
- Прием заявок или интеграция с CRM.
- Веб-версия админ-панели.
- Подробная аналитика и сегментация аудитории.
- Настройка автоворонок.