feat(text7): Wave 0 — каркас Алгебры 7 и Геометрии 7 (hubs + миграции + стабы)

- docs/PLAN_ALGEBRA_7_GEOMETRY_7.md: полный план реализации (содержание, архитектура, волны)
- 018_algebra_7_hub.sql: hub algebra-7 (sort=6) + 4 ch (§1-§3, §4-§14, §15-§20, §21-§25)
- 019_geometry_7_hub.sql: hub geometry-7 (sort=7) + 5 ch (§1-§7, §8-§14, §15-§18, §19-§26, §27-§31)
- algebra_7_hub.html: 4-карточный hub в pink-теме (Арефьева/Пирютко 2022)
- geometry_7_hub.html: 5-карточный hub в blue-теме (Казаков 2022)
- 9 стаб-страниц глав со ссылкой назад в свой hub (заглушки до реализации волн 1-9)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-05-28 21:13:56 +03:00
parent 5df801daf8
commit e8767ed30d
15 changed files with 1905 additions and 0 deletions
+346
View File
@@ -0,0 +1,346 @@
# План реализации учебников: Алгебра 7 + Геометрия 7
> **Источники** (строго по программе РБ, 2-е изд. 2022):
> - `algebra_7kl_arefieva_rus_2022.pdf` — И. Г. Арефьева, О. Н. Пирютко. Алгебра. 7 класс. — Мн.: Народная асвета, 2022 (312 с., 25 §, 4 главы)
> - `geometriya_7kl_kazakov_rus_2022.pdf` — В. В. Казаков. Геометрия. 7 класс. — Мн.: Народная асвета, 2022 (189 с., 31 §, 5 глав)
>
> **Архитектура** — реплика паттерна `algebra-8` / `geometry-8`:
> - 1 hub-страница + N chapter-страниц на учебник
> - `textbooks` + `parent_slug` группирует главы под hub
> - SPA-чаптер: `PARAS[]` + `BUILDERS{}` + lazy build + boss-fight в финале
> - XP/прогресс через `/js/xp.js` и `/js/api.js` (`window.LS.*`)
> - Стек: vanilla JS, inline SVG (`.ic`), KaTeX CDN, без бандлера
---
## ЧАСТЬ 1. АЛГЕБРА 7 — содержание (Арефьева/Пирютко 2022)
### Глава 1. Степень с натуральным и целым показателями (3 §, с. 4-43)
| § | Тема | Стр. |
|---|------|------|
| §1 | Степень с натуральным показателем и её свойства | 4 |
| §2 | Степень с целым показателем и её свойства | 22 |
| §3 | Стандартный вид числа | 34 |
| ★ | Практическая математика · Итоговая самооценка · Увлекательная математика | 40-43 |
### Глава 2. Выражения и их преобразования (11 §, с. 44-145)
| § | Тема | Стр. |
|---|------|------|
| §4 | Числовые выражения и выражения с переменными | 44 |
| §5 | Тождество | 53 |
| §6 | Одночлен | 60 |
| §7 | Действия с одночленами | 67 |
| §8 | Многочлен | 78 |
| §9 | Сложение и вычитание многочленов | 84 |
| §10 | Умножение и деление многочлена на одночлен | 91 |
| §11 | Умножение многочленов | 98 |
| §12 | ФСУ: квадрат суммы и квадрат разности | 105 |
| §13 | ФСУ: произведение суммы и разности (a²-b²) | 116 |
| §14 | Разложение многочлена на множители | 125 |
| ★ | Итог главы | 141-145 |
### Глава 3. Линейные уравнения. Линейные неравенства. Линейная функция (6 §, с. 146-253)
| § | Тема | Стр. |
|---|------|------|
| §15 | Линейные уравнения с одной переменной | 146 |
| §16 | Решение текстовых задач с помощью линейных уравнений | 160 |
| §17 | Числовые неравенства | 175 |
| §18 | Линейные неравенства с одной переменной | 191 |
| §19 | Функция | 205 |
| §20 | Линейная функция и её свойства | 226 |
| ★ | Итог главы | 250-253 |
### Глава 4. Системы двух линейных уравнений с двумя переменными (5 §, с. 254-302)
| § | Тема | Стр. |
|---|------|------|
| §21 | Линейное уравнение с двумя переменными | 254 |
| §22 | График линейного уравнения ax + by = c | 262 |
| §23 | Система линейных уравнений с двумя переменными | 268 |
| §24 | Способы решения системы линейных уравнений | 277 |
| §25 | Решение текстовых задач с помощью системы | 289 |
| ★ | Итог главы | 299-302 |
**ИТОГО Алгебра 7: 4 главы, 25 §, ~120 интерактивов (5/§), 4 босса-финала.**
---
## ЧАСТЬ 2. ГЕОМЕТРИЯ 7 — содержание (Казаков 2022)
### Глава I. Начальные понятия геометрии (7 §, с. 8-55)
| § | Тема | Стр. |
|---|------|------|
| §1 | Повторение геометрического материала 5-6 классов | 8 |
| §2 | Предмет геометрии | 13 |
| §3 | Прямая. Луч. Отрезок. Ломаная | 19 |
| §4 | Окружность и круг | 30 |
| §5 | Угол. Виды углов | 35 |
| §6 | Смежные углы. Вертикальные углы | 41 |
| §7 | Перпендикулярные прямые | 47 |
### Глава II. Признаки равенства треугольников (7 §, с. 56-91)
| § | Тема | Стр. |
|---|------|------|
| §8 | Треугольники | 56 |
| §9 | Первый и второй признаки равенства треугольников | 60 |
| §10 | Высота, медиана и биссектриса треугольника | 66 |
| §11 | Равнобедренный треугольник | 70 |
| §12 | Признаки равнобедренного треугольника | 76 |
| §13 | Третий признак равенства треугольников | 80 |
| §14 | Серединный перпендикуляр к отрезку | 84 |
### Глава III. Параллельность прямых на плоскости (4 §, с. 92-117)
| § | Тема | Стр. |
|---|------|------|
| §15 | Признаки параллельности прямых | 92 |
| §16 | Аксиома параллельных прямых | 100 |
| §17 | Свойства параллельных прямых | 105 |
| §18* | Углы с соответственно параллельными/перпендикулярными сторонами | 112 |
### Глава IV. Сумма углов треугольника (8 §, с. 118-157)
| § | Тема | Стр. |
|---|------|------|
| §19 | Сумма углов треугольника | 118 |
| §20 | Внешний угол треугольника | 124 |
| §21 | Соотношения между сторонами и углами треугольника | 128 |
| §22 | Неравенство треугольника | 133 |
| §23 | Признаки равенства прямоугольных треугольников | 137 |
| §24 | Свойство точек биссектрисы угла | 142 |
| §25 | Свойство катета, лежащего против угла в 30° | 145 |
| §26 | Расстояние между параллельными прямыми | 149 |
### Глава V. Задачи на построение (5 §, с. 158-175)
| § | Тема | Стр. |
|---|------|------|
| §27 | О задачах на построение | 158 |
| §28 | Построение треугольника по 3 сторонам. Построение угла, равного данному | 162 |
| §29 | Построение биссектрисы угла. Построение середины отрезка | 165 |
| §30 | Построение прямой, перпендикулярной данной | 167 |
| §31 | Геометрическое место точек | 171 |
**ИТОГО Геометрия 7: 5 глав, 31 §, ~150 интерактивов (5/§), 5 боссов.**
---
## ЧАСТЬ 3. АРХИТЕКТУРА (повторяем алгебру 8 / геометрию 8)
### 3.1. Таблица `textbooks` — новые строки
```
Алгебра 7 (hub)
├─ algebra-7 (hub, parent_slug=NULL, html=algebra_7_hub.html)
├─ algebra-7-ch1 (3 §, parent_slug=algebra-7, color=amber)
├─ algebra-7-ch2 (11 §, parent_slug=algebra-7, color=emerald)
├─ algebra-7-ch3 (6 §, parent_slug=algebra-7, color=violet)
└─ algebra-7-ch4 (5 §, parent_slug=algebra-7, color=cyan)
Геометрия 7 (hub)
├─ geometry-7 (hub, parent_slug=NULL, html=geometry_7_hub.html)
├─ geometry-7-ch1 (7 §, parent_slug=geometry-7, color=amber)
├─ geometry-7-ch2 (7 §, parent_slug=geometry-7, color=emerald)
├─ geometry-7-ch3 (4 §, parent_slug=geometry-7, color=purple)
├─ geometry-7-ch4 (8 §, parent_slug=geometry-7, color=cyan)
└─ geometry-7-ch5 (5 §, parent_slug=geometry-7, color=pink)
```
### 3.2. Файлы под `frontend/textbooks/`
```
algebra_7_hub.html ~12 КБ (карточки 4 глав + общий прогресс)
algebra_7_ch1.html ~250 КБ (3 § + final + builders)
algebra_7_ch2.html ~600 КБ (11 § — самая большая глава)
algebra_7_ch3.html ~400 КБ (6 § + функции + графики)
algebra_7_ch4.html ~350 КБ (5 § + системы + графики 2D)
geometry_7_hub.html ~12 КБ
geometry_7_ch1.html ~350 КБ (7 §, базовая геометрия)
geometry_7_ch2.html ~400 КБ (7 §, треугольники)
geometry_7_ch3.html ~230 КБ (4 §, параллельность)
geometry_7_ch4.html ~450 КБ (8 §, углы)
geometry_7_ch5.html ~280 КБ (5 §, задачи на построение)
```
### 3.3. Миграции БД (порядок номеров: после 017)
```
018_algebra_7_hub.sql — hub + 4 chapter rows + индекс по grade
019_geometry_7_hub.sql — hub + 5 chapter rows
```
### 3.4. Цветовая палитра (HSL ≈ как в геометрии 8)
| Глава | Алгебра 7 | Геометрия 7 |
|-------|-----------|-------------|
| Ch1 | `#d97706` amber (степени → "огонь") | `#d97706` amber (начала) |
| Ch2 | `#059669` emerald (выражения → "рост") | `#059669` emerald (треугольники) |
| Ch3 | `#7c3aed` violet (уравнения/функции) | `#7c3aed` violet (параллели) |
| Ch4 | `#0891b2` cyan (системы) | `#0891b2` cyan (углы) |
| Ch5 | — | `#db2777` pink (построения) |
---
## ЧАСТЬ 4. ИНТЕРАКТИВНЫЕ ЭЛЕМЕНТЫ — каталог типов
Каждый § содержит 4-6 интерактивов. Типы и где применять:
### Универсальные (оба учебника)
- **Тренажёр-калькулятор** — поле ввода + проверка ответа (КаТеХ для формул)
- **Перетаскивание (DnD)** — сопоставить термин ↔ определение
- **Множественный выбор** — 4 варианта, 1 правильный, объяснение
- **Заполни пропуск** — формула с _____ полями
- **Шаг-за-шагом** — раскрытие решения с проверками после каждого шага
- **Викторина** — серия мелких вопросов, итоговый счёт
### Алгебра 7 — специфические
- **Степень-конструктор** (§1-§2) — кликом изменяешь основание/показатель, видишь результат
- **Стандартный вид число-машина** (§3) — слайдер мантисса+порядок
- **Полиномиальный набор** (§6-§11) — drag тайлы (одночлены) → сумма/произведение
- **ФСУ-визуализатор** (§12-§13) — квадрат суммы как геометрическая площадь (4 цветных прямоугольника)
- **Разложение-пазл** (§14) — найди общий множитель / группировка / ФСУ
- **Уравнение-весы** (§15-§16) — двусторонняя чаша весов, перенос членов
- **Координатная плоскость** (§19-§22) — клик задаёт точку, рисуем линию
- **Слайдеры k/b** (§20) — `y = kx + b` с интерактивными ползунками
- **Метод подстановки/сложения** (§24) — пошаговая анимация решения системы
### Геометрия 7 — специфические
- **SVG-конструктор фигур** (вся книга) — drag вершин треугольника/угла + измерения углов
- **Проверка коллинеарности** (§3) — три точки → проверяем равенство сумм отрезков
- **Транспортир** (§5-§6) — интерактивный круговой транспортир, движение луча
- **Признаки равенства Δ** (§9, §13) — сопоставить два Δ, перетащить совпадающие элементы
- **Биссектриса/медиана/высота-симулятор** (§10) — перетягивай вершины, наблюдай поведение
- **Серединный перпендикуляр** (§14) — точка-проверка равноудалённости
- **Углы при пересечении** (§15-§17) — две параллельные + секущая, цветовая разметка 8 углов
- **Сумма углов** (§19) — разрежь треугольник на 3 части → сложи в развёрнутый угол
- **Неравенство треугольника** (§22) — слайдеры длин сторон, "невозможно/возможно"
- **Построения циркулем** (§27-§31) — пошаговая анимация с командами «возьми циркуль», «проведи дугу»
---
## ЧАСТЬ 5. БОССЫ (финальные проверки)
В конце каждой главы — `final<N>` параграф с **5-7 боссами**:
- Босс = большая задача (5 этапов в случайном порядке) с ХП-баром
- За полное прохождение: +50 XP + звезда главы
- Цвета боссов = palette главы
- Структура из `geometry_8_ch1.html`: `BOSSES = [{n,title,color,steps:[...]}]`
### Конкретно
| Учебник | Боссы (по главам) | Всего |
|---------|-------------------|-------|
| Алгебра 7 | 5+6+5+5 | 21 |
| Геометрия 7 | 5+6+4+6+4 | 25 |
---
## ЧАСТЬ 6. ПОРЯДОК РЕАЛИЗАЦИИ — ВОЛНЫ
> Каждая волна = 1 коммит + push. Тестируется в браузере перед мержем.
### ВОЛНА 0. Каркас (1 коммит)
- [ ] Миграции `018_algebra_7_hub.sql`, `019_geometry_7_hub.sql`
- [ ] Hub-страницы: `algebra_7_hub.html`, `geometry_7_hub.html` (по шаблону `geometry_8_hub.html`)
- [ ] Регистрация в `admin-textbooks.html` (если нужны UI-настройки)
- [ ] Регистрация в `library.html` / `dashboard.html` (если там показывается список)
- [ ] Проверка: hub-карточки открываются (заглушки 4/5 глав)
### ВОЛНЫ 1-4. АЛГЕБРА 7 — по главам
| Волна | Файл | § | Время-оценка | Главные риски |
|-------|------|---|--------------|---------------|
| 1 | `algebra_7_ch1.html` | §1-§3 + final | M | Степени с целым показателем — много граничных случаев |
| 2 | `algebra_7_ch2.html` | §4-§14 + final | XL | 11 § — самая большая глава; ФСУ-визуализаторы |
| 3 | `algebra_7_ch3.html` | §15-§20 + final | L | Линейная функция — нужен SVG-график с осями |
| 4 | `algebra_7_ch4.html` | §21-§25 + final | L | Системы — пошаговая анимация метода |
### ВОЛНЫ 5-9. ГЕОМЕТРИЯ 7 — по главам
| Волна | Файл | § | Время-оценка | Главные риски |
|-------|------|---|--------------|---------------|
| 5 | `geometry_7_ch1.html` | §1-§7 + final | L | Базовые SVG-примитивы (отрезок/луч/угол) — задел на всю книгу |
| 6 | `geometry_7_ch2.html` | §8-§14 + final | L | Признаки равенства Δ — DnD сопоставление сторон/углов |
| 7 | `geometry_7_ch3.html` | §15-§18 + final | M | Параллельные + секущая = 8 углов |
| 8 | `geometry_7_ch4.html` | §19-§26 + final | L | Внешний угол + неравенство Δ + 30° свойство |
| 9 | `geometry_7_ch5.html` | §27-§31 + final | M | Анимации построений циркулем (SVG-`<animateTransform>`) |
### ВОЛНА 10. Полировка
- [ ] Аудит SVG-геометрии (вся точность чисел — по уроку Геометрии 8 ch4)
- [ ] Мобильная адаптация (≤768px): свернуть navi, увеличить хитбоксы DnD
- [ ] Dark mode — проверка по всем боссам
- [ ] Кэш-инвалидация (Cache-Control no-cache в `<head>`)
- [ ] Регрессия других учебников (не сломали)
---
## ЧАСТЬ 7. КОНКРЕТНЫЕ ТЕХНИЧЕСКИЕ НОТЫ
### 7.1. SVG-builder helpers (вынести в `frontend/js/geom7_svg.js`)
Геометрия 7 много раз использует одни и те же сценки. Прежде чем писать главу 1, сделать:
```js
LS.geom7 = {
segment(x1,y1,x2,y2,opts), point(x,y,label),
triangle(p1,p2,p3,opts), angleArc(vx,vy, r, a1,a2),
parallel(line1,line2, secant), perpendicular(p, line),
draggable(svgEl, onMove), measure(x1,y1,x2,y2)
}
```
### 7.2. Координатные оси (для алгебры §19-§22 и §22-§24)
Аналогично — `frontend/js/algebra7_axes.js`: координатная сетка, точка, прямая по двум точкам, прямая `y=kx+b`, прямая `ax+by=c`.
### 7.3. KaTeX rendering
Уже подключено через CDN. Делимитеры `$...$` для inline, `$$...$$` для блока. Учить с примеров `geometry_8_ch1.html` строки 12-13.
### 7.4. Прогресс / XP
- `LS.markParaRead(textbook_slug, para_id)` — после каждого прочитанного §
- `LS.giveXP(amount, reason)` — после каждого пройденного интерактива (+5 XP)
- Босс = +50 XP, +1 звезда главы
### 7.5. Регистрация в `admin.html` (ADMIN_SIMS)
Если учебники прокидываются в админку (как симуляции в lab.html) — **немедленно** обновить ADMIN_SIMS массив. См. memory `feedback_sims_admin_sync.md`.
---
## ЧАСТЬ 8. КРИТЕРИИ ПРИЁМКИ
Каждая глава считается готовой когда:
1. Все § открываются по клику из навигатора без ошибок в консоли
2. KaTeX рендерит все формулы (нет `$...$` в plain text)
3. Все интерактивы дают обратную связь (✓/✗) и +XP
4. Финальный босс проходим (5 этапов → +50 XP, +звезда)
5. Прогресс сохраняется через `LS.markParaRead`
6. На мобильном (375×667) — нет горизонтального скролла
7. Dark mode не ломает контрастность
---
## ЧАСТЬ 9. ОЦЕНКА ОБЪЁМА
| Метрика | Алгебра 7 | Геометрия 7 | Всего |
|---------|-----------|-------------|-------|
| HTML-файлов | 5 | 6 | 11 |
| Объём кода (~) | 1.6 МБ | 1.7 МБ | 3.3 МБ |
| Параграфов (§) | 25 | 31 | 56 |
| Интерактивов | ~120 | ~150 | ~270 |
| Боссов | 21 | 25 | 46 |
| SQL-миграций | 1 | 1 | 2 |
| JS-хелперов | 1 (`algebra7_axes.js`) | 1 (`geom7_svg.js`) | 2 |
| Коммитов | 4 | 5 | 9 + 1 (Wave 0) + 1 (Wave 10) = **11** |
---
## ЧАСТЬ 10. РИСКИ И МИТИГАЦИИ
| Риск | Митигация |
|------|-----------|
| Геометрия 7 § ОЧЕНЬ много SVG → копипаста | Сначала Глава 1 = задел библиотеки `geom7_svg.js`. Дальше реюз. |
| ФСУ §12-§13 — визуализатор квадрата суммы трудоёмкий | Готовый SVG-шаблон из MathJS / Manim ↔ ручной inline-SVG |
| Чаптер-файл > 600 КБ (Алгебра ch2) → IDE тормозит | Можно разбить ch2 на 2 файла (как было сделано для физики). Решение принять перед стартом волны 2. |
| Конфликт sort_order в `textbooks` | После hub-вставки — обновить sort_order у physics-8/geometry-8, чтобы 7-класс шёл первым. |
| Регрессия — сломать существующие учебники | Каждая волна = свой коммит, не трогаем чужие файлы. |
---
## ИТОГО
- **Старт**: Волна 0 (миграции + 2 hub'a) — 1 коммит, ~2 ч.
- **Алгебра 7**: 4 волны, ~16-20 ч работы.
- **Геометрия 7**: 5 волн, ~22-28 ч работы.
- **Полировка**: 1 волна, ~4 ч.
- **Всего**: ~45-55 ч работы, 11 коммитов, 11 HTML + 2 SQL + 2 JS-хелпера.
> После утверждения плана: запустить Волну 0 (миграции + hub'ы) одним коммитом — `feat(text7): caркас алгебры 7 и геометрии 7 (hubs + миграции)`.