44 lines
3.1 KiB
Markdown
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
|
|
<!-- Финальная фаза -->
|