Платформа видеохостинга с образовательными функциями

Учебная платформа для видеороликов, курсов и уроков, с ИИ-помощником и возможностью видео-занятий 1 на 1

Веб-разработка

Описание проекта

Комплексная веб-платформа для размещения и управления образовательным видеоконтентом с интегрированной системой онлайн-обучения. Проект представляет собой полнофункциональную LMS (Learning Management System) с поддержкой видеозвонков, AI-ассистента и системой управления пользователями.

Основные функции

Управление контентом

  • Организация контента по группам и курсам — иерархическая структура: группы → курсы → уроки → видео
  • Загрузка и хранение видео — поддержка форматов MP4, AVI, MOV, MKV, WEBM, FLV (до 2 ГБ)
  • Богатый текстовый редактор — CKEditor для создания уроков с поддержкой HTML, изображений и медиа
  • Управление медиа-файлами — загрузка изображений, обложек курсов и уроков
  • Поиск по контенту — полнотекстовый поиск по урокам и курсам

Система обучения

  • Интерактивные уроки — структурированные материалы с прикрепленными видео
  • Навигация по курсам — переход между уроками с сохранением прогресса
  • Статусы курсов — публичные, платные (требуют подписку) и черновики
  • Система подписок — контроль доступа к платному контенту

AI-ассистент

  • Контекстный помощник — интеллектуальный ассистент на базе LLM для ответов на вопросы по урокам
  • FAQ по Python — база знаний с поиском и AI-поддержкой
  • Задачи и примеры кода — библиотека сниппетов с возможностью получения объяснений от AI, проверкой решений пользователя, подсказками и советами
  • Множественные AI-провайдеры — поддержка различных LLM API с автоматическим переключением при сбоях
  • Фильтрация контента — система черных списков для предотвращения некорректных запросов

Видеозвонки и коммуникации

  • WebRTC видеозвонки 1-на-1 — полнофункциональные видеозвонки между пользователями
  • Система приглашений — создание и управление приглашениями на видеосеансы
  • Текстовый чат — встроенный чат в комнатах видеозвонков
  • Socket.IO сигналинг — надежная передача данных для WebRTC через WebSocket

Управление пользователями

  • Роли и права доступа — администратор, учитель, студент
  • Профили пользователей — управление личными данными
  • Система авторизации — регистрация, вход, управление сессиями
  • Управление подписками — назначение и контроль доступа к платному контенту

Административная панель

  • CRUD операции — полное управление группами, курсами, уроками, видео и пользователями
  • Управление AI-провайдерами — добавление, настройка и переключение между LLM сервисами
  • Управление FAQ и задачами — редактирование базы знаний
  • Статистика и аналитика — просмотр количества курсов, видео, пользователей

Дополнительные возможности

  • FTP сервер — альтернативный способ загрузки больших видеофайлов
  • Версионирование статики — автоматическое обновление кеша CSS/JS
  • Адаптивный дизайн — корректное отображение на различных устройствах
  • Безопасность — санитизация HTML, защита от XSS, контроль доступа

Технологии

Backend

  • Flask 3.0 — веб-фреймворк для Python
  • SQLite — база данных для хранения метаданных и пользователей
  • Flask-SocketIO 5.3 — WebSocket поддержка для real-time коммуникаций
  • Gunicorn + Gevent/Eventlet — production WSGI сервер с поддержкой асинхронности
  • Redis — message queue для синхронизации Socket.IO между воркерами

Frontend

  • HTML5/CSS3/JavaScript — клиентская часть
  • CKEditor — WYSIWYG редактор для контента
  • WebRTC API — для видеозвонков peer-to-peer
  • Socket.IO Client — для real-time коммуникаций

AI и интеграции

  • OpenAI API — интеграция с языковыми моделями (совместимо с DeepSeek, Anthropic и др.)
  • Markdown — обработка текстового контента
  • Bleach — санитизация HTML для безопасности

Инфраструктура

  • Docker & Docker Compose — контейнеризация приложения
  • Nginx — reverse proxy и отдача статики (в production)
  • vsftpd — FTP сервер для загрузки файлов
  • Redis — кеширование и message queue

Безопасность

  • Werkzeug — хеширование паролей, защита сессий
  • Bleach — санитизация пользовательского контента
  • Декораторы доступа — контроль прав на уровне маршрутов
  • Валидация файлов — проверка типов и размеров загружаемых файлов

Архитектурные особенности

Модульная структура

  • Разделение логики на модули (models.py, llm_utils.py, info_repository.py)
  • Шаблонизация с использованием Jinja2
  • Разделение статики (CSS/JS) и шаблонов

Масштабируемость

  • Поддержка множественных воркеров Gunicorn
  • Redis для синхронизации состояния между процессами
  • Кеширование провайдеров AI для оптимизации запросов

Надежность

  • Автоматическое переключение между AI-провайдерами при сбоях
  • Обработка ошибок и fallback механизмы
  • Валидация данных на всех уровнях

Производительность

  • Версионирование статики для обхода кеша
  • Оптимизация запросов к БД с использованием индексов
  • Асинхронная обработка WebSocket соединений

Особенности реализации

  1. Гибкая система ролей — учителя могут создавать и редактировать только свои курсы, администраторы имеют полный доступ
  2. Интеллектуальный AI-ассистент — использует контекст урока для генерации релевантных ответов
  3. Real-time коммуникации — WebRTC для видеозвонков с минимальной задержкой
  4. Мультипровайдерность AI — поддержка различных LLM API с автоматическим failover
  5. Система подписок — контроль доступа к платному контенту на уровне пользователя
  6. FTP интеграция — возможность загрузки больших файлов через FTP клиент
  7. Безопасность контента — санитизация HTML, фильтрация некорректных запросов к AI

Применение

Платформа подходит для:

  • Онлайн-школ и образовательных платформ
  • Корпоративного обучения
  • Видео-библиотек с образовательным контентом
  • Систем дистанционного обучения
  • Платформ с платным контентом

Демонстрация навыков

Проект демонстрирует:

  • Полноценную разработку full-stack приложений
  • Работу с базами данных и ORM
  • Интеграцию внешних API (LLM)
  • Real-time коммуникации (WebRTC, WebSocket)
  • Docker и контейнеризацию
  • Системы авторизации и контроля доступа
  • Оптимизацию производительности
  • Безопасность веб-приложений
Информация о проекте
Сайт проекта:
Открыть сайт
Дата создания:
21.12.2025
Языки программирования
Python
Высокоуровневый язык программирования общего назначения с простым и понятным синтаксисом. Идеален для веб-разработки, анализа данных, машинного обучения и автоматизации.
JavaScript
Язык программирования для веб-разработки, поддерживает как фронтенд, так и бэкенд
Используемые технологии
Flask
Микрофреймворк для веб-разработки на Python. Простой, гибкий и расширяемый.
Веб-фреймворк
OpenAI API
API для работы с языковыми моделями OpenAI, включая GPT-3, GPT-4 и другие модели.
ИИ и ML
SQLAlchemy
ORM для Python, обеспечивающий высокоуровневый интерфейс для работы с базами данных.
База данных
Docker
Платформа для разработки, доставки и запуска приложений в контейнерах.
DevOps
SQLite
Встраиваемая реляционная база данных
database
Заинтересовал проект?

Свяжитесь с нами для обсуждения деталей

Связаться
AI-Помощник