Техническая документация

VideoLab Editor -- облачное программное обеспечение для создания и редактирования презентаций в веб-браузере. Программа предназначена для визуального проектирования слайдов с помощью canvas-редактора, совместной работы нескольких пользователей в реальном времени, импорта из PPTX и PDF, а также AI-генерации контента (текст, структура презентации). Продукт предоставляется как облачный SaaS-сервис через веб-интерфейс, не требующий установки на стороне клиента.

Целевая аудитория -- образовательные учреждения, видеостудии, маркетинговые отделы, тренеры и преподаватели, которым необходим инструмент для создания визуальных материалов без установки десктопного ПО.

Область применения

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

Функции программного обеспечения

Canvas-редактор

  • визуальное редактирование слайдов на HTML5 Canvas (Fabric.js)
  • инструменты выделения: одиночное выделение, выделение областью
  • инструменты рисования: перо, ластик, линия, фигуры (прямоугольник, эллипс, треугольник)
  • интерактивные объекты: текст, изображение, видео
  • Shift-модификаторы: прямоугольник→квадрат, эллипс→окружность, линия→цепочка отрезков
  • трансформация объектов: перемещение, масштабирование, поворот, отражение
  • управление слоями (выше, ниже, на передний/задний план), выравнивание
  • копирование, вставка, удаление, отмена/повтор действий (undo/redo)

Управление презентациями и слайдами

  • создание, открытие, переименование и удаление презентаций
  • список презентаций пользователя с превью и датой изменения
  • привязка презентаций к организации (мультитенантность)
  • добавление, дублирование, удаление и переупорядочивание слайдов (drag-and-drop)
  • миниатюры слайдов в боковой панели, навигация между слайдами

Совместная работа

  • совместное редактирование в реальном времени через SignalR: присутствие участников (кто онлайн), курсоры и выделения
  • блокировка элементов (element-lock) при одновременном редактировании
  • источник истины документа -- PostgreSQL (через REST / EF Core)

AI-генерация

  • генерация структуры презентации по текстовому описанию
  • генерация контента отдельных слайдов и изображений по промпту
  • AI-чат-ассистент, выбор AI-модели из каталога доступных моделей
  • текстовые модели через OpenAI-совместимый API (Ollama)

Медиабиблиотека и экспорт

  • загрузка пользовательских изображений и медиафайлов, хранение в S3-совместимом хранилище (MinIO)
  • pre-signed URL для безопасного доступа к файлам
  • сток-изображения и видео из Wikimedia Commons (лицензионный whitelist -- только CC / Public Domain, без внешнего API-ключа)
  • серверный экспорт в PDF и PPTX (VideoLab.Converters/Export, со встраиванием и подбором шрифтов)
  • экспорт в формат презентации .vlsp (ZIP + JSON), совместимый с десктопным приложением VideoLab Studio

Авторизация

  • вход через протокол OpenID Connect (OIDC)
  • интеграция с сервером авторизации login.videolab.store
  • JWT-токены для авторизации API-запросов

Технические характеристики

Архитектура

Программа построена по архитектуре микросервисного облачного приложения с разделением на три контейнера:

  • VideoLab.Api -- HTTP API gateway (ASP.NET Core Minimal APIs), извлекает аутентификационные данные из JWT и отправляет команды через MassTransit RPC; бизнес-логики не содержит
  • VideoLab.Platform -- Worker Service, принимает сообщения из RabbitMQ, маппит их в MediatR-команды и вызывает обработчики
  • VideoLab.Client -- одностраничное приложение на Next.js 15 + React 19 (SSR)

Каждый HTTP-запрос проходит цепочку: API endpoint → MassTransit RPC → Platform consumer → MediatR → Core handler (DB). Выбор микросервисной архитектуры обоснован независимым масштабированием компонентов, изоляцией отказов и облачным развёртыванием через Docker Compose.

Внутренние модули: VideoLab.Core (бизнес-логика, MediatR + EF Core, паттерн Result), VideoLab.Domain (доменные сущности и перечисления), VideoLab.Persistence (EF Core DbContext, миграции), VideoLab.AI (интеграция с LLM), VideoLab.Storage (MinIO, pre-signed URL, bucket per organization), VideoLab.Converters (импорт PPTX и PDF).

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

КатегорияТехнологияВерсия
Язык (бэкенд)C#14
Платформа (бэкенд).NET10.0
APIASP.NET Core Minimal APIs10.0
ORMEntity Framework Core10.x
СообщенияMassTransit + RabbitMQ8.x
CQRSMediatR14.x
Язык (фронтенд)TypeScript5.7
Фреймворк (фронтенд)Next.js + React15.x / 19
Canvas-редакторFabric.js6.x
Совместная работаSignalR---
Состояние UIZustand5.x
СтилизацияTailwind CSS4.x
UI-компонентыshadcn/ui + Radix UI---
СУБДPostgreSQL17
КэшRedis7
Объектное хранилищеMinIO (S3-compatible)latest
Брокер сообщенийRabbitMQ4
АутентификацияOIDC-провайдер (login.videolab.store)---
КонтейнеризацияDocker + Docker Compose---

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

  • Аутентификация: OpenID Connect через сервер авторизации login.videolab.store
  • Авторизация: JWT Bearer tokens с проверкой claims
  • Шифрование: HTTPS (TLS 1.2+) для всех внешних коммуникаций
  • Мультитенантность: изоляция данных по организации через фильтры EF Core
  • CORS: ограниченный список допустимых origin

Установка и эксплуатация

VideoLab Editor -- облачный SaaS-сервис. Установка на стороне пользователя не требуется.

  1. Откройте editor.videolab.store в браузере
  2. Авторизуйтесь через login.videolab.store
  3. Создайте презентацию или импортируйте файл .vlsp
  4. Используйте canvas-редактор, AI-ассистент и инструменты совместной работы
  5. Экспортируйте результат в формат .vlsp или сохраните в облако

Локальное развёртывание (Docker Compose)

Для развёртывания на собственном сервере используется Docker Compose:

# Скачивание конфигурации
wget https://dl.videolab.store/editor/docker-compose.yml

# Базовый стек (без AI)
docker compose up -d

# Полный стек (с AI)
docker compose --profile ai up -d

При первом запуске автоматически создаётся база данных PostgreSQL, применяются миграции, создаётся бакет videolab-media в MinIO и настраиваются очереди RabbitMQ. Веб-интерфейс открывается по адресу http://localhost:3000.

Системные требования

Серверные

ПараметрМинимальныеРекомендуемые
Операционная системаLinux (amd64), Windows Server (amd64)Ubuntu 22.04 LTS, Astra Linux, РЕД ОС
Процессор2 ядра, 2 ГГц4 ядра, 2.5 ГГц
Оперативная память4 ГБ8 ГБ (16 ГБ с AI)
Свободное место на диске20 ГБ100 ГБ
Docker24.0+latest
Docker Compose2.20+latest

Клиентские (браузер)

ПараметрМинимальныеРекомендуемые
БраузерChrome 90+, Firefox 90+, Safari 15+, Edge 90+Chrome (последняя версия)
Разрешение экрана1280×7201920×1080
Оперативная память512 МБ2 ГБ
ИнтернетШирокополосное подключение10+ Мбит/с

Контактная информация поддержки

  • Электронная почта: support@videolab.store
  • Телефон: +7 (912) 248-16-22
  • Режим работы: Пн--Пт, 9:00--18:00 (МСК)
// Контакты

Свяжитесь с нами

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

Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности

Телефон

+7 (912) 248-16-22

Екатеринбург

ООО «Видеолаб»

Работаем по 44-ФЗ и 223-ФЗ. Для государственных учреждений — методические материалы и паспорта оснащения по запросу.