🎓

BruDgital: платформа онлайн-курсов с защищённым видео и живыми эфирами

онлайн-школа по маркетингу: свой сайт, вход через ботов, оплата и эфиры вместо Zoom

Собственная платформа онлайн-школы вместо связки чужих сервисов: курсы с доступом по покупке, вход через ботов Telegram и ВКонтакте, оплата через Продамус, защищённое видео и живой интенсив прямо на сайте. Три этапа из четырёх готовы и работают на закрытом тестовом стенде, запуск в конце октября 2026 года.

В разработке
3 из 4
этапов готовы и работают на тестовом стенде: вход, курсы, видео, оплата и эфир; запуск в конце октября
1 аккаунт
на вход через Telegram, ВКонтакте или пароль: человек один, сколько бы способов входа ни привязал
3 дня
живого интенсива прямо на сайте вместо Zoom, с записью, которая сама становится уроком

Задача

Автор курсов по маркетингу продаёт обучение через связку чужих сервисов: эфиры в Zoom, оплата отдельно, доступы вручную, ученики разбросаны по мессенджерам. Нужна собственная платформа, которую владелец школы ведёт сам, без разработчика:

  • собирает в админке курсы, блоки и уроки, загружает видео и тексты;
  • проводит бесплатный трёхдневный интенсив, который ведёт в платные курсы;
  • продаёт курсы, а доступ выдаётся автоматически после оплаты;
  • видит учеников, их оплаты и доступы.

Условия: запуск в конце октября 2026 года, сервер в России, оплата через Продамус, с которым школа уже работает.

Решение

Одно ядро и несколько входов в него: сайт, бот Telegram и бот ВКонтакте работают с общей базой людей, курсов, доступов и оплат. Ядро — серверная часть, где хранятся все данные и правила, а сайт и боты только показывают их по-разному.

Что входит в первую версию:

  • Вход через бота. Кнопки «Войти через Telegram» и «Войти через ВКонтакте» открывают бота с одноразовым кодом, сайт получает сессию за секунды. Каждый вошедший уже подписан на бота, это основа будущих рассылок. Пароль — запасной вариант, а его сброс проходит только с одобрения администратора, чтобы аккаунт нельзя было угнать или передать.
  • Доступ по покупке. Купил курс А — открыт А. Курс Б показан с замком и персональным предложением со скидкой до даты.
  • Курсы как конструктор. Курс, блок, урок; уроки открываются сразу, через N дней или с заданной даты. На этом держится интенсив.
  • Оплата через Продамус за общим интерфейсом платёжного шлюза: оплата → уведомление → доступ → «спасибо».
  • Защищённое видео. Обработка в фоне на несколько качеств, зашифрованные фрагменты, ключ только после проверки доступа, один просмотр одновременно, водяной знак с номером ученика.
  • Интенсив в эфире на сайте. Трансляция из OBS через медиасервер, как в нашей Переговорке: плеер, чат, счётчик зрителей, напоминания в бот. Запись эфира сама становится уроком.
  • Админка для обывателя по образцу магазина рубашек, где владелец сам ведёт каталог с телефона.
  • Бот как меню. «Мои курсы» с прогрессом, каталог с личной ценой и поддержка прямо в Telegram и ВКонтакте; ответ администратора приходит ученику в его мессенджер.
  • Личные цены, пакеты и промокоды. Скидка на следующий курс с обратным отсчётом, промокоды поверх неё, пакет курсов с зачётом уже купленного и одно напоминание о брошенной оплате.
  • Подтверждение получения доступа. После оплаты уроки открываются отметкой при первом входе: время, IP, браузер и редакция оферты сохраняются в карточке ученика. Условия возврата показываются до оплаты.

Как это устроено

Сайт на Nuxt 4 рендерится на сервере, API — FastAPI с PostgreSQL, фоновые задачи и сроки — в Redis. Каждое действие человека пишется в журнал событий: регистрация, оплата, сколько минут был на эфире. Из журнала потом строятся воронки и дожим.

Архитектура заложена под сервис, а не под одну школу: у данных есть привязка к школе, а платёжный сервис, хранилище видео и будущий ИИ-продажник подключаются через интерфейсы. Раздача видео отделена от ядра: ядро выдаёт только ключи, а фрагменты может отдавать отдельный видеосервер или CDN, когда зрителей станет больше. Это настройка адреса раздачи, а не переделка кода.

Уведомления бота идут через очередь с повторами: недоставленное перечитывается через минуту, а если Telegram недоступен, сообщение уходит ученику во ВКонтакте. Вход по ссылке из бота требует подтверждения — чужая ссылка не войдёт на сайт под вашим аккаунтом.

Пока идёт разработка, на домене стоит фирменная страница «ведутся работы»: кран держит ноль между двумя четвёрками, а если по нулю кликнуть, он падает. Сайт закрыт от индексации на всех уровнях, сборщики превью и роботы получают отказ. Работает он в отдельном контейнере с ограничением памяти и процессора на нашем сервере, рядом с сервисом трансляций, и не мешает ему.

Статус

В разработке, работы идут с опережением: три этапа из четырёх готовы. На закрытом тестовом стенде с выдуманными курсами и учениками заказчик уже проходит путь целиком — вход через бота, покупку, защищённое видео и эфир, — а заглушка на главном адресе остаётся до запуска.

Готово к 3 октября: вход через Telegram, ВКонтакте и пароль, курсы деревом с расписанием, личные цены, пакеты и промокоды, оплата через Продамус с проверкой подписи, загрузка видео до 8 ГБ с докачкой и нарезкой на три качества, защищённый плеер, эфирная комната с чатом и записью в урок, бот-меню с поддержкой, админка с хронологией каждого ученика, SEO-разметка. Перед показом заказчику логику денег, доступов и эфира отдельно перепроверили и исправили найденное.

Осталось — четвёртый этап: полировка, наполнение курсами, пробный эфир и запуск в конце октября 2026 года. Следом на той же основе: рассылки по тегам, ИИ-продажник, эфиры для учеников отдельных блоков курса и скрытые метки в видео.

Вопросы по проекту

Зачем онлайн-школе своя платформа вместо готовых сервисов курсов?
Готовый сервис берёт процент или абонентскую плату, ограничивает облик и механику продаж и держит у себя данные учеников. Своя платформа принадлежит школе: правила доступа, скидки, воронки и эфиры настраиваются под её формат, а данные о том, кто что смотрел и покупал, остаются у владельца.
Как сделать, чтобы купленный курс открывался автоматически?
Оплата приходит уведомлением от платёжного сервиса, сервер проверяет его подпись и сам выдаёт доступ к продукту. Ученик получает сообщение в бот и сразу видит курс в личном кабинете. Платёжный сервис подключается через общий интерфейс, поэтому его можно сменить без переделки сайта.
Можно ли проводить бесплатный интенсив на своём сайте, а не в Zoom?
Да. Эфир идёт из OBS на свой медиасервер и смотрится в браузере, только у зарегистрированных участников. Главный выигрыш — данные: видно, кто сколько минут был на эфире и писал ли в чат. Это самый тёплый сигнал для предложения курса, и он сразу попадает в карточку человека.
Как защитить видеоуроки от слива?
Видео нарезано на зашифрованные фрагменты, ключ выдаётся только после проверки входа и доступа к уроку, ссылки живут минуты. Одновременно смотреть можно с одного устройства, а поверх видео плавает водяной знак с номером ученика. Полностью запретить запись экрана в браузере нельзя, но слитую копию можно привязать к аккаунту.
Можно ли продать пакет курсов, если один курс из него уже куплен?
Да. В цену пакета засчитывается то, что человек фактически заплатил за свой курс, со всеми скидками, а курс, выданный вручную, — по обычной цене. Так человек не платит дважды за одно и то же, а школа не теряет продажу пакета.
Что делает бот, кроме входа на сайт?
Бот — полноценное меню в Telegram и ВКонтакте: «Мои курсы» с прогрессом и кнопкой «продолжить», каталог с личной ценой, поддержка и уведомления. Вопрос в поддержку уходит всем администраторам с кнопкой «Ответить», а ответ приходит ученику в его мессенджер. Если Telegram недоступен, сообщение сразу уходит во ВКонтакте.
Где работает сайт, пока он в разработке?
На сервере студии в Москве, в отдельном контейнере рядом с нашим сервисом трансляций. На домене стоит фирменная страница «ведутся работы», а заказчик смотрит платформу на закрытом тестовом стенде с выдуманными курсами и учениками. Всё закрыто от поисковиков и сборщиков превью.

Нужно похожее?

Расскажите о задаче — покажем, как решали такое, и прикинем объём работ.