# ТЗ: Evrone LMS — корпоративное обучение

Демонстрационная версия документа · категория «Образование» · №07

> Это демонстрационное техническое задание: оно показывает структуру и глубину
> документа, который передаётся вместе с прототипом. Боевое ТЗ по этому солюшену
> готовится и заменит этот файл.

## 1. Суть решения

Конструктор курсов, назначения по ролям, тесты, дашборд HR, геймификация.

Продукт про то, как компания учит сотрудников. Конструктор курсов из блоков, назначение по ролям/отделам с дедлайнами, обязательные и добровольные треки, тестирование с банком вопросов, аттестации, сертификаты, дашборд HR (прохождение, срезы по подразделениям), геймификация (баллы, рейтинги). AI-опции: генерация черновика курса из корпоративных документов, автогенерация тестов по материалу.

## 2. Технологический стек

| Слой | Решение |
|---|---|
| Backend | Ruby on Rails 8, PostgreSQL |
| Frontend | Hotwire (Turbo + Stimulus), Tailwind CSS |
| Фоновые задачи | Solid Queue |
| Файлы | Active Storage, S3-совместимое хранилище |
| Деплой | Docker, Kamal, production + staging |

## 3. Роли

- Сотрудник
- Руководитель
- HR-администратор
- Автор курсов

## 4. Модель данных

### 4.1. Course

```
title: string
blocks: jsonb # конструктор из блоков
mandatory: boolean
deadline_days: integer
```

### 4.2. Assignment

```
course_id: references
assignee_type: enum # сотрудник, отдел, роль
due_at: datetime
state: enum
```

### 4.3. TestAttempt

```
test_id: references
employee_id: references
score: integer
passed: boolean
```

## 5. Ключевые сценарии

1. Автор собирает курс из блоков и прикладывает банк вопросов
2. HR назначает обучение отделу или роли с дедлайном
3. Сотрудник проходит курс и аттестацию, получает баллы и сертификат
4. HR смотрит дашборд прохождения со срезами по подразделениям

## 6. Интеграции

- SSO и кадровая система
- Генерация черновика курса из документов
- Экспорт отчётов

## 7. Нефункциональные требования

- Серверный рендеринг, работоспособность ключевых страниц без JavaScript
- Мобильная адаптивность обязательна
- Роли и права проверяются на уровне сервера, а не интерфейса
- Логирование действий пользователей по значимым операциям
- Покрытие тестами моделей и ключевых сценариев
- Развёртывание одной командой, окружения production и staging

## 8. Состав MVP

Конструктор + назначения + плеер + отчёты.

## 9. Критерии приёмки

1. Все сценарии из раздела 5 проходят end-to-end на тестовом стенде
2. Роли из раздела 3 видят только то, что им положено
3. Интеграции из раздела 6 работают через слой адаптеров и переключаются конфигурацией
4. Прототип разворачивается из репозитория одной командой
5. Документация по запуску и переменным окружения лежит в README
