Профессиональный Telegram-бот для онлайн кейс-клуба с полным функционалом записи на занятия, оплаты и управления контентом.
- ✅ Запись на занятия (выбор темы и даты)
- 💳 Оплата занятий через Telegram Payments
- 📋 Просмотр своих записей
- ❌ Отмена записи
- 📁 Получение материалов до и после занятия
- 💬 Связь с поддержкой
- 🔔 Уведомления о новых занятиях (с возможностью отключить)
- 📚 Создание и редактирование занятий
- 👥 Управление количеством мест
- 📁 Загрузка материалов
- 📊 Просмотр записей и оплат
- 📢 Рассылка сообщений участникам
- 📈 Статистика
# Создайте виртуальное окружение
python -m venv venv
# Активируйте его (Windows)
venv\Scripts\activate
# Активируйте его (Linux/Mac)
source venv/bin/activate
# Установите зависимости
pip install -r requirements.txtСоздайте файл .env на основе .env.example:
cp .env.example .envОтредактируйте .env:
# Telegram Bot Token (получите у @BotFather)
BOT_TOKEN=your_bot_token_here
# ID администраторов (через запятую)
ADMIN_IDS=123456789,987654321
# База данных
DATABASE_URL=sqlite+aiosqlite:///./case_club.db
# Платежная система (опционально)
PAYMENT_PROVIDER_TOKEN=your_payment_token_here
# Настройки бота
BOT_USERNAME=your_bot_username
SUPPORT_USERNAME=support_username- Напишите @BotFather в Telegram
- Отправьте команду
/newbot - Следуйте инструкциям и получите токен
- Вставьте токен в
.env
Для приема платежей через Telegram:
- Напишите @BotFather
- Выберите вашего бота
- Перейдите в Payments
- Выберите провайдера (ЮKassa, Stripe и др.)
- Получите
PAYMENT_PROVIDER_TOKEN
Без платежного токена бот работает в демо-режиме — записи подтверждаются автоматически.
python bot.pyadvandcedbot/
├── bot.py # Главный файл запуска
├── config.py # Конфигурация
├── requirements.txt # Зависимости
├── .env.example # Пример переменных окружения
├── README.md # Документация
│
├── database/
│ ├── __init__.py
│ ├── base.py # Подключение к БД
│ ├── models.py # Модели данных
│ └── repositories.py # Репозитории для работы с БД
│
├── handlers/
│ ├── __init__.py
│ ├── user_handlers.py # Обработчики для учеников
│ ├── admin_handlers.py # Обработчики для админов
│ └── payment_handlers.py # Обработка платежей
│
├── keyboards/
│ ├── __init__.py
│ ├── user_keyboards.py # Клавиатуры для учеников
│ └── admin_keyboards.py # Клавиатуры для админов
│
└── services/
├── __init__.py
├── notifications.py # Сервис уведомлений
└── scheduler.py # Планировщик задач
/start— Начать работу с ботом
/admin— Открыть панель администратора
- 📚 Записаться на занятие — выбор темы и даты
- 📋 Мои записи — просмотр и управление записями
- 📁 Материалы — доступ к учебным материалам
- 💬 Поддержка — связь с администрацией
- ⚙️ Настройки — уведомления и контакты
- 📚 Управление занятиями — создание, редактирование, удаление
- 👥 Участники — список всех пользователей
- 📁 Материалы — загрузка файлов к занятиям
- 💰 Оплаты — просмотр платежей
- 📢 Рассылка — отправка сообщений
- 📊 Статистика — общая аналитика
- Зарегистрируйтесь на yookassa.ru
- Подключите магазин
- В BotFather выберите ЮKassa как провайдера
- Получите токен и добавьте в
.env
- Зарегистрируйтесь на stripe.com
- Получите API ключи
- В BotFather выберите Stripe
- Настройте интеграцию
Для перенаправления пользователей с лендинга на Tilda:
- Создайте кнопку/ссылку на Tilda
- Укажите URL:
https://t.me/ваш_бот_username - Или с параметром:
https://t.me/ваш_бот_username?start=from_tilda
Бот автоматически отправляет:
- ⏰ Напоминание за 24 часа до занятия
- ⏰ Напоминание за 1 час до занятия
- ✅ Подтверждение записи
- 📁 Уведомление о новых материалах
- 📢 Анонсы новых занятий
- Токены хранятся в
.env(не коммитьте в Git!) - Проверка прав администратора
- Валидация платежей
- Защита от дублирования записей
Для продакшн-среды рекомендуется:
-
PostgreSQL вместо SQLite:
DATABASE_URL=postgresql+asyncpg://user:pass@localhost/dbname
-
Redis для FSM storage:
from aiogram.fsm.storage.redis import RedisStorage storage = RedisStorage.from_url("redis://localhost:6379")
-
Webhook вместо polling для высокой нагрузки
Включите debug-логирование:
logging.basicConfig(level=logging.DEBUG)При возникновении проблем:
- Проверьте правильность токена бота
- Убедитесь, что ADMIN_IDS указан корректно
- Проверьте логи запуска
Разработано с ❤️ для кейс-клуба