Рабочий Telegram-бот на Python для русскоязычной образовательной воронки: бесплатный гайд, донат-главы, интенсив, предзапись и продажи курса. Репозиторий приведён к витринному виду: здесь оставлены только код, минимальная документация и артефакты, которые реально помогают понять устройство проекта.
- сценарий
/startс фазным меню и feature flags - сбор имени, телефона, email и согласия перед выдачей материалов
- выдача бесплатного гайда и платных материалов
- интенсив, предзапись на курс и ветка продаж курса
- demo mode с mock payment flow
- runtime-управление фазами и модулями через админ-команды
- follow-up и broadcast сценарии
- экспорт базы и Excel-выгрузка
- webhook-подготовка для подтверждения оплат
- Python 3.11+
python-telegram-bot- SQLite
openpyxlpytest,pytest-asyncioruff
.
├── bot.py
├── config/
├── database/
├── handlers/
├── payments/
├── tests/
├── docs/
├── env.example
├── Makefile
├── pyproject.toml
├── requirements.txt
├── ruff.toml
├── start_payment_phase1.sh
└── webhooks.py
- bot.py — точка входа и регистрация handler-ов
- config/environment.py — env-конфигурация
- config/messages.py — user-facing тексты
- database/db_manager.py — миграции, storage и runtime config
- handlers/lead_gen.py — основная логика пользовательского flow
- payments/ — payment abstraction и mock adapter
- webhooks.py — webhook verification и post-payment helper
python3.11 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
cp env.example .env
make migrate
python bot.pyМинимально нужны:
BOT_TOKENADMIN_ID
Остальные ссылки и payment URL задаются через .env.
pm2 start ./start_payment_phase1.sh --name bot1-payment-phase1
pm2 restart bot1-payment-phase1 --update-env
pm2 logs bot1-payment-phase1 --lines 100Скрипт start_payment_phase1.sh запускает бота из текущей директории, активирует .venv, подхватывает .env и стартует bot.py.
make test
make lintТесты покрывают миграции, concurrency, runtime config и payment/demo flow.
- docs/architecture.md — краткая схема модулей
- docs/runtime.md — что нужно для запуска и какие артефакты живут вне git
Код опубликован как витрина реализации. Разрешение на свободное использование, копирование и переработку этим репозиторием не предоставляется.
- Telegram: @fffflabs