# ТЗ: Evrone Classroom — школьная платформа K-12

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

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

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

Интерактивные задания с автопроверкой, классы и журнал, кабинеты трёх ролей.

Продукт про школу и учеников. Интерактивные задания с автопроверкой, классы и журнал, назначение заданий классу или ученику, прогресс ребёнка для учителя и родителя, олимпиады и соревнования как ивент-механика, кабинеты трёх ролей: учитель — ученик — родитель.

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

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

## 3. Роли

- Ученик
- Учитель
- Родитель
- Методист

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

### 4.1. Task

```
subject_id: references
grade: integer
interactive_payload: jsonb
auto_check: boolean
```

### 4.2. Classroom

```
teacher_id: references
students: has_many
grade: integer
journal: has_many
```

### 4.3. Assignment

```
task_id: references
target_type: enum # класс, ученик
due_at: datetime
results: has_many
```

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

1. Учитель назначает интерактивные задания классу или конкретному ученику
2. Ученик решает задания, проверка проходит автоматически
3. Родитель видит прогресс ребёнка в своём кабинете
4. Олимпиада проводится как ивент с рейтингом участников

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

- Журнал успеваемости
- Уведомления родителям
- Экспорт результатов

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

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

## 8. Состав MVP

Один предмет — банк интерактивных заданий, класс, назначение, прогресс.

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

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