Files
Learn_System/plans/sim-builder/phase-7-classroom.md
T

44 lines
3.1 KiB
Markdown

# Phase 7: Доска онлайн-урока
**Status:** ⬜ Not Started
**Parent plan:** [PLAN.md](./PLAN.md)
**Domain:** fullstack
## Objective
Открывать custom-симуляцию на доске онлайн-урока через существующий конвейер встраивания
sim, с синхроном параметров классу и аннотациями поверх.
## Tasks
- [ ] Учитель в classroom выбирает sim для доски: добавить в список источников свои+published custom-sims (рядом со встроенными).
- [ ] Открытие на доске через существующий `simOpen` (controller `classroom/sim.js`, роут `/:id/sim`) —
для custom передаётся `custom:<id>`; рантайм `SimEngine` монтируется в sim-контейнер доски.
- [ ] Синхрон состояния: параметры/play-pause/время транслировать классу через `simState/simMode`
(как для встроенных) — ученики видят те же значения слайдеров и фазу анимации.
- [ ] Аннотации поверх — через существующий `simAnnotate` (без изменений конвейера).
- [ ] Закрытие/смена sim корректно размонтирует `SimEngine` (destroy).
- [ ] Тест/проверка: открыть custom-sim на доске, подвигать слайдер у учителя → у ученика синхрон.
## Files to Modify/Create
- `frontend/classroom.html` — выбор custom-sim в источниках доски, монтаж SimEngine, проброс состояния (modify)
- `backend/src/controllers/classroom/sim.js` — поддержать `custom:<id>` (валидация доступа к published/own) (modify)
- `js/api.js` — при необходимости (modify, опц.)
## Acceptance Criteria
- Учитель открывает custom-sim на доске; ученики видят её синхронно (параметры/анимация/режим).
- Аннотации поверх работают; закрытие чистит ресурсы.
- Существующее встраивание встроенных sim не регрессировало.
## Notes
- Reuse simOpen/simState/simMode/simAnnotate — НЕ строить новый канал синхрона.
- Доступ: на доску можно класть только свои или published (проверка на сервере).
- classroom.html большой (8240 строк) — править точечно.
## Review Checklist
- [ ] Все задачи выполнены
- [ ] Синхрон параметров учитель→ученики работает
- [ ] Доступ к custom-sim на доске проверяется
- [ ] Встроенные sim на доске не сломаны; SimEngine корректно размонтируется
## Handoff to Next Phase
<!-- Финальная фаза -->