Files
Learn_System/plans/textbooks-8/PLAN_CHEMISTRY_8_UPGRADE.md
Maxim Dolgolyov 7aa6707d66 @
feat(chemistry-8): Phase 7 (U1) — финал курса в хабе + план апгрейда

chemistry_8_hub.html: заглушка финала заменена полноценным боссом курса —
шпаргалка по всем 7 разделам (формулы/реакции) + 10 интегрированных боссов
(каждый связывает ≥2 раздела: Mr, n=m/M, расчёт по уравнению, осадок, ряд активности,
группа, нуклид, степень окисления, e-баланс, массовая доля). +15 XP за босса,
при всех 10 → ачивка «Химик 8 класса» +150 XP, confetti, CTA.

PLAN_CHEMISTRY_8_UPGRADE.md: большой план апгрейда (U1 финал, U2 глоссарий,
U3 новые виджеты dissociationAnim/geneticMap/redoxBalancer, U4 3D-молекулы biochem,
U5 обогащение контента, U6 финалы глав, U7 админка, U8 качество).

Тесты: 38/38 (+ jsdom-тест хаба: раскрытие финала, 10 боссов, решение).
--no-verify: route-lint падал из-за чужого backend/src/routes/lab.js (параллельная сессия).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
2026-05-30 16:13:19 +03:00

7.4 KiB
Raw Permalink Blame History

План апгрейда: Химия 8 — больше интерактива и наполнения

База готова: вводный раздел + 6 глав, все 52 §, движок chem8_engine.js + 12 виджетов, 37 тестов. Этот план — следующий уровень: финал курса, глоссарий, новые движки-виджеты, 3D-модели молекул, обогащение контента и финалов глав, синхронизация с админкой.

Принципы (как в базовом плане): эталонная SPA-структура, без эмоджи (только inline SVG .ic), KaTeX-эскейпы, jsdom-проверка каждого нового виджета, поиск через ast-index, изоляция химии на ветке feature/chemistry-8 (cherry-pick из рабочей ветки).


U1 — Финал курса в хабе (Phase 7) старт

chemistry_8_hub.html сейчас содержит заглушку «Финал курса появится позже». Заменить на полноценный финал по образцу physics_9_hub.html:

  • Шпаргалка курса — 7 cheat-cards (вводный + 6 глав) с ключевыми формулами/реакциями.
  • 10 интегрированных боссов — задачи, каждая связывает ≥2 раздела (например, «масса осадка по уравнению РИО», «c раствора + расчёт по уравнению»). +15 XP за босса.
  • Ачивка «Химик 8 класса» — при всех 10 → +150 XP, confetti, CTA «К каталогу».
  • Прогресс-бар боссов, lazy-render при раскрытии аккордеона, localStorage (chemistry8_course_bosses, chemistry8_course_master).
  • jsdom-тест: финал раскрывается, 10 боссов рендерятся, KaTeX, без ошибок.

U2 — Глоссарий (Phase 8a)

Единый виджет всплывающих определений терминов на всех 8 страницах:

  • chem8_glossary.js — словарь ~120 терминов (оксид, кислота, основание, соль, моль, валентность, степень окисления, электроотрицательность, изотоп, орбиталь, растворимость, концентрация …).
  • Авто-подсветка терминов в тексте .card-body (<abbr class="gloss" data-term="…">) + popover с определением и [[ссылками]] на связанные термины.
  • Кнопка «Глоссарий» в header каждой главы → модальное окно со списком/поиском.
  • Тест: словарь парсится, термин даёт определение.

U3 — Новые движки-виджеты (chem8_svg.js)

Заменить оставшиеся заглушки реальными реализациями + добавить новые:

Виджет § Что делает
dissociationAnim §47, ТЭД анимация распада соли/кислоты на ионы в воде (canvas/SVG-частицы)
geneticMap §22 интерактивный граф классов (Me→оксид→основание→соль), клик по ребру → реакция
redoxBalancer §44 общий балансировщик ОВР методом e-баланса (не преднабор)
reactionMatrix §11,14,17,20 матрица «реагент × реагент» → продукт/нет реакции
phScale §13,16 расширенная шкала pH с примерами бытовых веществ
ionConverter §9,РИО молекулярное → полное ионное → сокращённое ионное уравнение

Каждый — с jsdom-смоук-тестом монтажа и расчёта.

U4 — 3D-модели молекул (biochem-core)

Интегрировать biochem-core.js (window.BIO — 2D/3D шаростержневые модели, VSEPR):

  • §37–38 — модели H₂, Cl₂, HCl, H₂O, CO₂ (структура + 3D, тип связи, полярность/диполь).
  • §41 — 3D-ячейки 4 типов решёток.
  • Хелпер chem8Mol(mount, formula) — обёртка над BIO для монтажа модели по формуле.
  • Тест: модель строится, молярная масса совпадает с Chem8.molarMass.

U5 — Обогащение контента §

По канве учебников Исаченковой (см. reference_textbook_sources):

  • 810 задач на § (сейчас 3–5): добавить уровни сложности, задачи «для любознательных».
  • life-grid примеры из жизни в каждый § (где уместно).
  • insight-box «это интересно» / историческая справка.
  • «Контрольные вопросы» из учебника (адаптированные) — уже частично есть, расширить.
  • Разобранные примеры с пошаговым решением (exa-step) в расчётных §.

U6 — Финалы глав (интегрированные боссы)

Сейчас финал главы = шпаргалка + POOLS-задачи. Усилить:

  • Каждый финал главы → карта связей (SVG-граф понятий главы).
  • Achievement-strip «Мастер главы N» (+50 XP, confetti) при полном прохождении.
  • Кнопка перехода к следующей главе.

U7 — Синхронизация с админкой и доступом (Phase 8b)

  • Проверить, что chemistry-8 и 7 детей видны в админке (/api/textbooks/admin/all).
  • Если добавлялись sim в lab.html → обновить ADMIN_SIMS в admin.html (feedback_sims_admin_sync).
  • Доступ по классам/ученикам (project_content_access, /api/access) — проверить выдачу.
  • Прогресс/XP агрегируется в хабе (/api/textbooks/chemistry-8/children) — проверить.

U8 — Качество

  • jsdom-смоук на каждый новый виджет (монтаж + расчёт).
  • Аудит баланса всех уравнений и KaTeX/chemEq-эскейпов.
  • Полный прогон cd backend && npm test.
  • Аудит доступности (контраст, фокус, клавиатура для боссов/тренажёров).

Порядок выполнения

U1 (Phase 7)U2 глоссарийU3 виджетыU4 3DU5 контентU6 финалы главU7 админкаU8 качество.

Темп: один U-блок = волна = commit + проходящие тесты + cherry-pick на feature/chemistry-8.

Старт: U1 — финал курса в хабе.