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