Техническое задание: Telegram-бот для продажи цифровых учебных материалов
Цель проекта
Создать автоматизированного Telegram-бота для продажи цифровых продуктов (PDF-файлы, ссылки, доступ к курсам) по подготовке к выпускным экзаменам. Ключевая особенность - проведение платежей непосредственно внутри Telegram без перенаправления пользователя во внешние сервисы.
Основной функционал для пользователей
- Каталог товаров: Иерархическая структура: Экзамен (ОГЭ/ЕГЭ) → Предмет → Конкретный продукт. Каждый товар имеет название, описание, цену, год выпуска и тип доступа (файл, ссылка, закрытый канал).
- Внутренняя оплата: Использование Telegram Payments (Invoice API). Пользователь совершает платеж, не покидая чат с ботом.
- Автоматическая выдача: После успешной оплаты бот мгновенно предоставляет доступ к купленному материалу (отправляет файл, ссылку или добавляет в приватный канал).
- Профиль и история покупок: Раздел «Мои покупки», где пользователь может повторно получить доступ ко всем приобретенным материалам.
- Поддержка: Встроенный FAQ и кнопка для связи со службой поддержки.
Функционал админ-панели
- Управление каталогом: добавление, редактирование и удаление товаров, категорий.
- Просмотр статистики: количество пользователей, история платежей, финансовые отчеты.
- Список всех заказов с возможностью ручной выдачи доступа.
- Система рассылок (PUSH): отправка сообщений всем пользователям или сегментам (все, только покупатели, подписчики определенного экзамена).
- Доступ к админ-панели по Telegram ID.
Технические требования
- Стек: Python 3.10+, предпочтительно фреймворк aiogram.
- База данных: На начальном этапе допустимо использование SQLite, но архитектура должна быть совместима с переходом на PostgreSQL.
- Конфигурация: Все чувствительные данные (токены, ключи) должны храниться в переменных окружения.
- Способ работы: На выбор исполнителя - webhook или long polling.
- Структура БД: Минимальный набор таблиц: users, products, orders, admins.
- Надежность: Обязательное логирование всех операций (ошибки, успешные платежи). Реализация механизма проверки статуса транзакций.
Требования к пользовательскому опыту (UX)
- Простой и понятный процесс покупки за минимальное количество шагов.
- Интуитивная навигация по меню с минимальной вложенностью.
- Четкие подтверждения действий, особенно после успешной оплаты.