Skip to content

Vardges Academy — Telegram-бот для продажи онлайн-курсов по ИИ для предпринимателей (aiogram + ЮKassa + SQLite)

License

Notifications You must be signed in to change notification settings

Vardges13/course-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Vardges Academy Bot

Python aiogram ЮKassa License: MIT Docker

Vardges Academy — Telegram-бот для продажи онлайн-курсов по ИИ для предпринимателей.

Каталог курсов, корзина, оплата через ЮKassa, автоматическая выдача материалов, админ-панель — всё в одном боте.

🌐 Mini App: vardges13.github.io/course-bot — веб-приложение академии внутри Telegram


✨ Возможности

Функция Описание
📚 Каталог курсов Просмотр курсов с описанием и ценами
🛒 Корзина Добавление / удаление курсов, итоговая сумма
💳 Оплата ЮKassa Redirect-схема, автоматический webhook
📦 Мои курсы Просмотр купленных курсов + ссылки на материалы
🔧 Админ-панель Добавление/удаление курсов, статистика продаж
🎓 Mini App Telegram WebApp с каталогом и тарифами

📸 Скриншоты

Vardges Academy

🛠 Стек технологий

  • Python 3.12+
  • aiogram 3.x — асинхронный фреймворк для Telegram Bot API
  • SQLAlchemy + aiosqlite — ORM + асинхронный SQLite
  • ЮKassa SDK — приём платежей
  • aiohttp — webhook-сервер для уведомлений ЮKassa
  • Docker — контейнеризация

📁 Структура проекта

course-bot/
├── bot/
│   ├── __init__.py
│   ├── __main__.py          # Точка входа
│   ├── config.py             # Конфигурация из .env
│   ├── handlers/
│   │   ├── __init__.py       # Регистрация роутеров
│   │   ├── start.py          # /start, каталог, мои курсы
│   │   ├── cart.py           # Корзина и оформление заказа
│   │   ├── payment.py        # Webhook ЮKassa
│   │   └── admin.py          # Админ-панель
│   ├── keyboards/
│   │   ├── __init__.py
│   │   └── inline.py         # Инлайн-клавиатуры
│   ├── models/
│   │   ├── __init__.py
│   │   ├── base.py           # Базовый класс, движок БД
│   │   ├── user.py           # Модель User
│   │   ├── course.py         # Модель Course
│   │   └── order.py          # Модели Order, OrderItem, Payment
│   └── services/
│       ├── __init__.py
│       ├── db.py             # CRUD-операции с БД
│       └── payment.py        # Работа с API ЮKassa
├── docs/                     # GitHub Pages (Mini App)
│   └── index.html
├── webapp/                   # Исходники Mini App
│   └── index.html
├── .env.example              # Шаблон переменных окружения
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── LICENSE
└── README.md

🚀 Быстрый старт

Требования

  • Python 3.12+
  • Telegram-бот (токен от @BotFather)
  • Аккаунт ЮKassa (можно тестовый)

1. Клонирование и настройка

git clone https://github.com/Vardges13/course-bot.git
cd course-bot
cp .env.example .env

Отредактируйте .env — заполните все переменные:

Переменная Описание
BOT_TOKEN Токен бота от @BotFather
YOOKASSA_SHOP_ID ID магазина в ЮKassa
YOOKASSA_SECRET Секретный ключ ЮKassa
ADMIN_IDS Telegram ID админов через запятую
WEBHOOK_HOST Публичный URL сервера (для webhook ЮKassa)
WEBHOOK_PORT Порт webhook-сервера (по умолчанию 8080)
DATABASE_URL Строка подключения к БД (по умолчанию SQLite)

2. Запуск через Docker (рекомендуется)

docker compose up -d --build

Бот запустится и будет слушать:

  • Telegram polling — для сообщений пользователей
  • HTTP порт 8080 — для webhook ЮKassa

3. Запуск без Docker

python -m venv venv
source venv/bin/activate  # Linux/macOS
pip install -r requirements.txt
python -m bot

4. Настройка webhook в ЮKassa

В личном кабинете ЮKassa укажите URL для уведомлений:

https://yourdomain.com:8080/webhook/yookassa

События: payment.succeeded и payment.canceled.

🤖 Команды бота

Команда Описание
/start Приветствие + главное меню
/admin Админ-панель (только для ADMIN_IDS)

🔧 Админ-панель

Доступна только пользователям, чей Telegram ID указан в ADMIN_IDS.

  • ➕ Добавить курс — пошаговый ввод: название, описание, цена, ссылка на материалы
  • 🗑 Удалить курс — выбор из списка (мягкое удаление)
  • 📊 Статистика — кол-во пользователей, заказов, выручка

🗄 База данных

Таблица Описание
users Пользователи Telegram
courses Курсы (название, описание, цена, ссылка, статус)
orders Заказы (pending / paid / cancelled)
order_items Элементы заказа (связь заказ ↔ курс)
payments Платежи ЮKassa (pending / succeeded / canceled)

БД создаётся автоматически при первом запуске.

🌐 Mini App (Telegram WebApp)

Бот включает Telegram Mini App — полноценное веб-приложение внутри Telegram:

  • Каталог направлений с красивым UI
  • Информация об академии
  • Выбор тарифных планов
  • Интеграция с Telegram WebApp API

Mini App размещён на GitHub Pages из папки docs/.

📄 Лицензия

MIT © Vardges Harutyunyan

About

Vardges Academy — Telegram-бот для продажи онлайн-курсов по ИИ для предпринимателей (aiogram + ЮKassa + SQLite)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published