# Phase 5: Курикулумная привязка **Status:** ⬜ Not Started **Parent plan:** [PLAN.md](./PLAN.md) **Domain:** fullstack ## Objective Связать симуляции с учебной программой: § учебника, узел knowledge-map, тема банка вопросов. Двусторонняя навигация. ## Tasks - [ ] Схема связей: использовать поля манифеста (subject/grade/topics) + таблицу связей `lab_sim_links` (sim_id, kind[textbook|topic|kmap|question], ref_id). - [ ] API: `GET /api/lab/sims/:id/related` — связанные § / темы / задачи. - [ ] Frontend учебник/теория: кнопка «Открыть в лаборатории» в § (deep-link openSim). - [ ] Frontend knowledge-map: узел темы → ссылка на симуляцию. - [ ] Страница симуляции: блок «Связанная теория и задачи». - [ ] Админка: редактирование связей симуляции. ## Files to Modify/Create - `backend/src/db/migrations/0XX_lab_sim_links.sql` - `backend/src/routes/lab.js` — related endpoint. - `frontend/textbooks.html` / theory / учебник-рендер — кнопки в §. - `frontend/knowledge-map.html` — ссылки с узлов. - `frontend/lab.html` — блок связей на странице sim. - `frontend/js/admin/sections/sims.js` — редактор связей. ## Acceptance Criteria - Из § учебника можно открыть нужную симуляцию. - На странице симуляции видны связанные теория/задачи. - Узлы knowledge-map ведут на симуляции. - `npm test` зелёный, роуты под auth. ## Notes - Привязки опциональны: отсутствие связей не ломает страницы. - Переиспользовать существующие topic_id банка вопросов и структуру учебников. ## Review Checklist - [ ] Навигация в обе стороны работает - [ ] Пустые связи не ломают UI - [ ] Роуты под auth, тесты проходят ## Handoff to Next Phase