Техническая документация
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 |
| Платформа (бэкенд) | .NET | 10.0 |
| API | ASP.NET Core Minimal APIs | 10.0 |
| ORM | Entity Framework Core | 10.x |
| Сообщения | MassTransit + RabbitMQ | 8.x |
| CQRS | MediatR | 14.x |
| Язык (фронтенд) | TypeScript | 5.7 |
| Фреймворк (фронтенд) | Next.js + React | 15.x / 19 |
| Canvas-редактор | Fabric.js | 6.x |
| Совместная работа | SignalR | --- |
| Состояние UI | Zustand | 5.x |
| Стилизация | Tailwind CSS | 4.x |
| UI-компоненты | shadcn/ui + Radix UI | --- |
| СУБД | PostgreSQL | 17 |
| Кэш | Redis | 7 |
| Объектное хранилище | MinIO (S3-compatible) | latest |
| Брокер сообщений | RabbitMQ | 4 |
| Аутентификация | 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-сервис. Установка на стороне пользователя не требуется.
- Откройте editor.videolab.store в браузере
- Авторизуйтесь через login.videolab.store
- Создайте презентацию или импортируйте файл
.vlsp - Используйте canvas-редактор, AI-ассистент и инструменты совместной работы
- Экспортируйте результат в формат
.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 ГБ |
| Docker | 24.0+ | latest |
| Docker Compose | 2.20+ | latest |
Клиентские (браузер)
| Параметр | Минимальные | Рекомендуемые |
|---|---|---|
| Браузер | Chrome 90+, Firefox 90+, Safari 15+, Edge 90+ | Chrome (последняя версия) |
| Разрешение экрана | 1280×720 | 1920×1080 |
| Оперативная память | 512 МБ | 2 ГБ |
| Интернет | Широкополосное подключение | 10+ Мбит/с |
Контактная информация поддержки
- Электронная почта: support@videolab.store
- Телефон: +7 (912) 248-16-22
- Режим работы: Пн--Пт, 9:00--18:00 (МСК)