diff --git a/plans/ct-math/BUILD_ON_QUESTIONS.md b/plans/ct-math/BUILD_ON_QUESTIONS.md new file mode 100644 index 0000000..1caa3ec --- /dev/null +++ b/plans/ct-math/BUILD_ON_QUESTIONS.md @@ -0,0 +1,174 @@ +# Сборка курса ЦЭ/ЦТ на СУЩЕСТВУЮЩЕМ банке `questions` (основной путь) + +> ⚠️ ПИВОТ (2026-06-14): контент ЦЭ/ЦТ по математике **уже в базе** — таблица `questions` +> (`subject_id=3`), **1753 задания** за 2011–2025 (включая ЦЭ-2024 = 117, набор 2025 = 1020), +> размечены по темам (`topics`) и годам (`year`), залиты скриптами `backend/scripts/seed_math_ct*.js`. +> Поэтому курс строим **поверх этого банка** через `tests`/`assignments`/`courses`, а НЕ через +> exam-prep (`exam_tasks`). Миграция 077 (пустой exam-prep-скелет `ctmath`) оставлена как опция, +> но это НЕ основной путь и в БД не применяется. +> +> Этот документ заменяет (по части «куда складывать») разделы маппинга в [PLAN.md](PLAN.md) §6 +> и спецификацию оцифровки [DIGITIZATION_SPEC.md](DIGITIZATION_SPEC.md). Карта экзамена (§1 PLAN), +> методика (§2), модульная программа (§3), уровни (§4), пилоты ([тригонометрия](PILOT_TRIGONOMETRY.md)/[стереометрия](PILOT_STEREOMETRY.md)) и инвентарь ([RESOURCES.md](RESOURCES.md)) — остаются в силе. + +--- + +## 1. Что уже есть (проверено чтением БД) + +| Таблица | Роль | Факт | +|---|---|---| +| `questions` | банк заданий | 1753 матем. (subject_id=3); `topic_id`, `year`, `difficulty` 1–3, `type`, `explanation`, `image`, `source_type` | +| `options` | варианты ответов | `question_id`, `text`, `is_correct`, `order_index`, `match_pair` | +| `topics` | темы (ПЛОСКИЕ) | 19 тем по математике (без иерархии): id+subject_id+name+order_index | +| `tests` / `test_questions` | фикс. наборы | тест = упорядоченный список вопросов | +| `test_sessions` / `user_answers` | прохождение + баллы | score = число верных | +| `assignments` | выдача | режимы `exam/practice/topic/repeat/`**`ct`** | +| `courses`/`course_sections`/`lessons`/`lesson_blocks` | теория | общий слой контента | +| `flashcard_*` | карточки + SR | для формул | + +**Типы заданий (`questions.type`)**: `single`, `multi`, `true_false`, `short_answer`, `matching`, `fill-blank`. +**Сложность**: `difficulty` 1–3 (CHECK), 1=базовый/2=средний/3=продвинутый. (В [PLAN.md](PLAN.md) шкала 1–5 — привести к 1–3: А-часть и лёгкая В = 1, средняя В = 2, сложная В14–В20 = 3.) +**Год**: `year` (2011…2025) — фильтр по году/варианту. + +### Текущая таксономия тем (math, `subject_id=3`) +`16 Арифметика и степени` · `17 Словесные задачи` · `18 Теория чисел` · `19 Тригонометрия` · `20 Квадратные уравнения` · `21 Прогрессии` · `22 Неравенства` · `23 Геометрия` · `24 Функции` · `25 Логарифмы` · `26 Показательные неравенства` · `27 Уравнения` · `28 Статистика и диаграммы` · `61 Стереометрия` · `62 Окружность и круг` · `63 Числовые промежутки` · `64 Подобные фигуры` · `67 Парабола` · `69 Тригонометрические уравнения` + +--- + +## 2. Ключевой механизм: режимы `assignments` (выбор вопросов) + +Логика `assignmentController.startAssignment` (подтверждено по коду): + +- **`mode='ct'`** — собирает ЦТ-вариант: ~половина из `type IN ('single','true_false')` (Часть A) + остаток из `type IN ('multi','short_answer')` (Часть B), добор при нехватке. **Это готовый «пробник» формата ЦТ.** Можно ограничить `topic_id`. +- **`mode='topic'`** — `SELECT id FROM questions WHERE subject_id=3 AND topic_id=? ORDER BY RANDOM() LIMIT count`. **Тренажёр по теме модуля.** +- **`mode='exam'|'practice'|'repeat'`** — случайные `count` по предмету (или теме). +- **`test_id` задан** — берутся ИМЕННО вопросы теста в его порядке (перекрывает режим). **Так делается фиксированная диагностика.** + +Выдача: `class_id` (классу) или `user_id` (ученику); `count` 1–200; `deadline`; `max_attempts` 0–10. + +--- + +## 3. Таксономия: довести темы под модульную карту + +Текущие 19 тем покрывают большинство модулей, но грубее карты §3 [PLAN.md](PLAN.md). Два варианта (рекомендуется А): + +**A. Принять текущую гранулярность + добавить недостающее (мин. усилий).** +Добавить новые `topics` (для будущей разметки и точечной практики), существующие вопросы НЕ перетегировать массово: +- `Преобразование выражений` (M3–M6) +- `Модуль` (M10) +- `Иррациональные уравнения` (M11) +- `Показательные уравнения` (M12; сейчас есть только «Показательные неравенства») +- `Производная` (M17) +- `Параметры` (M30) + +**B. Полная иерархия** — перетегировать 1753 вопроса под все 32 подтемы. Дорого; не оправдано на старте. + +### Маппинг модуль → тема банка (для практики `mode='topic'`) + +| Модуль(и) | topic | +|---|---| +| M1–M3 Числа | `18 Теория чисел`, `16 Арифметика и степени` | +| M4–M6 Преобразования | `16` (+ новый `Преобразование выражений`) | +| M7 Линейные/системы | `27 Уравнения`, `22 Неравенства`, `63 Числовые промежутки` | +| M8 Квадратные | `20 Квадратные уравнения` | +| M9 Рациональные | `27 Уравнения`, `22 Неравенства` | +| M10 Модуль | новый `Модуль` | +| M11 Иррациональные | новый `Иррациональные уравнения` | +| M12 Показательные | новый `Показательные уравнения`, `26 Показательные неравенства` | +| M13 Логарифмы | `25 Логарифмы` | +| M15–M16 Функции/графики | `24 Функции`, `67 Парабола` | +| M17 Производная | новый `Производная` | +| M18–M19 Тригонометрия | `19 Тригонометрия` | +| M20 Триг. уравнения | `69 Тригонометрические уравнения` | +| M21 Прогрессии | `21 Прогрессии` | +| M22 Текстовые | `17 Словесные задачи` | +| M23–M24 Планиметрия | `23 Геометрия`, `64 Подобные фигуры` | +| M25 Окружность | `62 Окружность и круг` | +| M26–M29 Стереометрия | `61 Стереометрия` | +| M30 Параметры | новый `Параметры` | +| (стат.) | `28 Статистика и диаграммы` | + +> Реализация добавления тем — обычным `INSERT INTO topics(subject_id,name)` (как делают seed-скрипты через `getTopic`). Можно отдельной миграцией или скриптом. Перетегировать существующие вопросы под новые темы — опционально и точечно (по тексту/году). + +--- + +## 4. Структура курса (теория) — `courses`/`sections`/`lessons` + +Создаётся через API (teacher/admin), наполняется по пилотам: +1. **`courses`**: `subject_slug='math'`, `title='ЦЭ/ЦТ — Математика'`, `is_published=1`, обложка. +2. **`course_sections`**: 9 секций = блоки I–IX из [PLAN.md](PLAN.md) §3. +3. **`lessons`** + **`lesson_blocks`** по шаблону пилотов (heading → теория/формулы → sim/диаграмма → callout «ошибки» → flashcards → quiz). Типы блоков: `text/formula/callout/quiz/sim/geogebra/flashcard/image/table/accordion/ordering/matching`. +4. В уроке кнопка «тренироваться» → assignment `mode='topic'` по теме модуля (или ссылка на практику банка). +5. Доступ ученикам/классам — `content_access`/`course_access` (миграция 052) + `class_courses`. + +> Связь урок↔§учебника — через ссылки в `lesson_blocks` (`text` с гиперссылкой на `/textbook/...`), т.к. в `questions`/`topics` нет поля textbook (в отличие от exam-prep). Учебники реальны (algebra-7..11, geometry-8..11) — см. [TOPICS_SEED.md](TOPICS_SEED.md). + +--- + +## 5. Практика и пробники (на банке) + +- **Тренажёр модуля** → assignment `mode='topic'`, `topic_id` = тема модуля, `count` 10–25, `max_attempts=0`. +- **Пробный вариант ЦТ** → assignment `mode='ct'`, `count=30` (без `topic_id` = по всем темам). Даёт Часть A + Часть B автоматически. Для «на время» — задать через связанный `test.time_limit` (или прохождение сессии; полноценный таймер-пробник как в exam-prep здесь проще через `test` с `time_limit`). +- **Фиксированный набор** (диагностика, тематический срез) → `test` + `test_questions`, затем assignment с `test_id`. +- Сложность регулируется выбором тем + `difficulty` (1–3) при ручной сборке `test`. + +--- + +## 6. Входная диагностика (из реальных вопросов банка, БЕЗ авторинга) + +Собрать `test` «Диагностика ЦЭ/ЦТ» из ~14 существующих вопросов — по одному на ключевую тему, желательно `year=2024`: + +| # | topic (bank) | критерий выбора | уровень-зонд | +|---|---|---|---| +| 1 | 18 Теория чисел | `single`, diff 1 | 🟢 | +| 2 | 20 Квадратные уравнения | `single`, diff 1 | 🟢 | +| 3 | 19 Тригонометрия | `single`, diff 1 | 🟢 | +| 4 | 16 Арифметика и степени | `single`, diff 1–2 | 🟢 | +| 5 | 17 Словесные задачи | `short_answer`, diff 2 | 🟡 | +| 6 | 21 Прогрессии | `short_answer`, diff 2 | 🟡 | +| 7 | 24 Функции | diff 2 | 🟡 | +| 8 | 19 Тригонометрия | `short_answer`, diff 2 (тождества) | 🟡 | +| 9 | 23 Геометрия | `short_answer`, diff 2 | 🟡 | +| 10 | 61 Стереометрия | diff 2 | 🟡 | +| 11 | 25 Логарифмы | `short_answer`, diff 3 | 🔴 | +| 12 | 69 Триг. уравнения | diff 3 | 🔴 | +| 13 | 24 Функции / Производная | diff 3 | 🔴 | +| 14 | 61 Стереометрия | diff 3 (углы/расстояния) | 🔴 | + +Реализация: выбрать конкретные `question.id` по критериям (`subject_id=3 AND topic_id=? AND difficulty=? [AND year=2024]`), создать `test` + `test_questions` в нужном порядке, выдать как assignment `test_id`. По результату — назначить трек (правила §4 [PLAN.md](PLAN.md)). **Никакого нового авторинга — берём готовые проверенные вопросы.** + +--- + +## 7. Прогресс и аналитика + +- Есть: `test_sessions.score/total`, `user_answers.is_correct`, `lesson_progress.completed`. +- **Нет** (в этой подсистеме): автодетектора слабых тем и per-topic mastery (это только в exam-prep). Варианты: + - считать точность по теме join'ом `user_answers`+`questions.topic_id` (есть `assignmentQuestionStats` по вопросам — расширить до тем); + - или (доработка) добавить агрегат «точность по теме» для рекомендаций «что подтянуть». +- Формулы — `flashcard_decks` по блокам + `flashcard_deck_access` классу (SR встроен). + +--- + +## 8. Порядок реализации (на банке `questions`) + +1. **Таксономия**: добавить недостающие темы (§3, вариант A) — миграция/скрипт `INSERT INTO topics`. +2. **Курс-каркас**: `courses` + 9 `course_sections`. +3. **Диагностика**: собрать `test` из 14 реальных вопросов (§6), выдать. +4. **Уроки по приоритету** (стерео, тригонометрия — §8 PLAN): теория в `lesson_blocks` по пилотам + кнопка практики `mode='topic'`. +5. **Пробники**: assignment `mode='ct'` (вариант 30 заданий) + тематические `mode='topic'`. +6. **Карточки формул**: `flashcard_decks` по блокам. +7. (Опц.) **Аналитика по темам**: агрегат точности для рекомендаций. +8. (Опц.) Точечно дотегировать вопросы под новые темы (Производная, Иррациональные, Модуль, Показательные ур., Параметры). + +--- + +## 9. Открытые вопросы + +| Вопрос | Заметка / дефолт | +|---|---| +| Что за набор `year=2025` (1020 вопросов)? | Уточнить происхождение (свежие ЦЭ/ЦТ-2025?); вероятно главный современный банк — проверить разметку по темам/типам | +| Перетегировать ли под тонкие темы | По умолчанию — нет (вариант A); добавить только новые темы, дотегировать точечно | +| Per-topic mastery / слабые темы | Пока считать join'ом; полноценный детектор — отдельная доработка | +| Нужен ли отдельный признак «ЦТ/ЦЭ» | Уже есть `year` и `source_type`; при необходимости фильтровать по ним | +| Таймер-пробник на 180 мин | Через `test.time_limit` (есть); полноценный mock как в exam-prep — опционально | +| Судьба миграции 077 (exam-prep ctmath) | Оставлена (по решению), в БД не применяется; основной путь — этот документ | diff --git a/plans/ct-math/DIGITIZATION_SPEC.md b/plans/ct-math/DIGITIZATION_SPEC.md index 563e3f6..fb070b6 100644 --- a/plans/ct-math/DIGITIZATION_SPEC.md +++ b/plans/ct-math/DIGITIZATION_SPEC.md @@ -1,5 +1,12 @@ # Спецификация оцифровки заданий РТ/ЦТ → `exam_tasks` + диагностика +> ⚠️ **БОЛЬШЕЙ ЧАСТЬЮ УЖЕ СДЕЛАНО / ВТОРИЧНО.** Оцифровка ЦЭ/ЦТ по математике **уже выполнена** — +> 1753 задания в банке `questions` (скрипты `backend/scripts/seed_math_ct*.js`, 2011–2025). Поэтому +> этот документ (перенос в `exam_tasks` exam-prep) **не основной**. Сборка курса и диагностики — на +> существующем банке: **[BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md)**. Текст ниже актуален лишь +> для (а) будущей добивки годов в формате `seed_math_ct*` (правило: 1 вариант из сборника, без +> повторов — см. память `project_ct_seeded`), либо (б) если перейдём на exam-prep. + > Как переносить задания из PDF (РТ 2006–2025, ЦТ/ЦЭ 2004–2024) в банк `exam_tasks` трека `ctmath`, > как их классифицировать (тема/сложность/тип) и как собрать входной диагностический тест. > Опирается на реальные конвейеры платформы: `backend/scripts/import-exam-tasks.js` (импорт), diff --git a/plans/ct-math/PILOT_STEREOMETRY.md b/plans/ct-math/PILOT_STEREOMETRY.md index 2b89d4d..aac6237 100644 --- a/plans/ct-math/PILOT_STEREOMETRY.md +++ b/plans/ct-math/PILOT_STEREOMETRY.md @@ -3,6 +3,10 @@ > Развёртка самого «дорогого» блока (раздел `stereometry`, модули M26–M29) в контент платформы. > Стереометрия встречается в тесте ~6 раз — А2, А9, В1, В13, В17, В20 — и содержит сложнейшие задания (В17 подобие, В20 угол в пространстве). > Структура совпадает с [PILOT_TRIGONOMETRY.md](PILOT_TRIGONOMETRY.md); специфика блока — sim `stereo`, **координатно-векторный метод** как универсальный «запасной» подход, и готовые «Кедр»-отработки слабых тем. +> +> ⚠️ После пивота (см. [BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md)): «тренажёр» — практика на банке +> `questions` через assignment `mode='topic'` (тема `61 Стереометрия`), а НЕ новые `exam_tasks`. +> Сложность в банке — 1–3. Уроки/карточки ниже — в силе. --- diff --git a/plans/ct-math/PILOT_TRIGONOMETRY.md b/plans/ct-math/PILOT_TRIGONOMETRY.md index 52ef335..7d751fe 100644 --- a/plans/ct-math/PILOT_TRIGONOMETRY.md +++ b/plans/ct-math/PILOT_TRIGONOMETRY.md @@ -6,6 +6,11 @@ > > Почему тригонометрия как пилот: охватывает все три уровня (А3 🟢 → А8/В4 🟡 → В15 🔴), задействует sim `trigcircle`, > карточки формул и философию «вывод вместо зубрёжки» — то есть прогоняет все возможности платформы. +> +> ⚠️ После пивота (см. [BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md)): уроки/`lesson_blocks`/карточки +> ниже остаются как есть; «тренажёр» — это НЕ новые `exam_tasks`, а практика на банке `questions` +> через assignment `mode='topic'` (темы `19 Тригонометрия`, `69 Тригонометрические уравнения`). +> Сложность в банке — 1–3. --- diff --git a/plans/ct-math/PLAN.md b/plans/ct-math/PLAN.md index 9f1dc74..f4b8924 100644 --- a/plans/ct-math/PLAN.md +++ b/plans/ct-math/PLAN.md @@ -10,6 +10,13 @@ > папка ЕГЭ для продвинутого уровня) + реальный сборник РИКЗ «ЦЭ ЦТ Математика 2024» (формат теста). > Инвентарь источников по модулям/уровням — в [RESOURCES.md](RESOURCES.md). +> ⚠️ **ПИВОТ (2026-06-14):** задания ЦЭ/ЦТ по математике **уже в БД** — таблица `questions` +> (`subject_id=3`, **1753 задания** 2011–2025). Поэтому курс строим на этом банке через +> `tests`/`assignments` (есть готовый `mode='ct'`) и `courses`, а НЕ через exam-prep (`exam_tasks`). +> Актуальный технический маппинг — в **[BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md)** (он заменяет +> §6 и §8 ниже в части «куда складывать» и «оцифровка»). Карта теста (§1), методика (§2), модули (§3), +> уровни (§4) и шаблон модуля (§5) — в силе. Сложность в банке — **1–3** (а не 1–5, как в §3). + --- ## 0. Как читать этот документ @@ -221,6 +228,11 @@ ## 6. Маппинг на платформу BQ-System +> ⚠️ Раздел ниже описывал маппинг на **exam-prep** (`exam_tasks`) — это оказалось НЕ тем местом: +> весь контент ЦЭ/ЦТ уже лежит в банке `questions`. **Актуальный маппинг — в +> [BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md).** Текст ниже сохранён как альтернатива (exam-prep, +> миграция 077 оставлена опцией), но основной путь — `questions`/`tests`/`assignments`/`courses`. + Платформа уже имеет почти всё необходимое (модуль exam-prep + курсы + флешкарты + sims + доступы). Наполнение = заполнение данных, не разработка движков. ### 6.1. Экзаменационный трек и банк заданий diff --git a/plans/ct-math/README.md b/plans/ct-math/README.md index 73763fb..d628485 100644 --- a/plans/ct-math/README.md +++ b/plans/ct-math/README.md @@ -4,42 +4,48 @@ Универсальная (диагностика + 3 уровня), без жёсткой привязки к датам. Построена на разборе папки `F:\!Рабочие\ЦТ\Математика\` и реального формата РИКЗ-2024. +> ⚠️ **ПИВОТ (2026-06-14).** Контент ЦЭ/ЦТ **уже в БД** — банк `questions` (`subject_id=3`, **1753 +> задания** 2011–2025). Поэтому курс строим на нём (`tests`/`assignments`/`courses`), а НЕ через +> exam-prep (`exam_tasks`). Актуальный технический документ — **[BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md)**. + ## Документы -| Файл | Что внутри | -|---|---| -| [PLAN.md](PLAN.md) | **Главный документ.** Карта экзамена, методические принципы, 9 блоков / ~32 модуля, уровневые траектории, маппинг на платформу, порядок наполнения, открытые вопросы. | -| [TOPICS_SEED.md](TOPICS_SEED.md) | Готовый seed: трек `exam_tracks('ctmath')` + дерево `exam_topics` (разделы→подтемы) с реальными slug-ами учебников. Переносится в SQL-миграцию почти 1:1. | -| [PILOT_TRIGONOMETRY.md](PILOT_TRIGONOMETRY.md) | Эталонная развёртка блока «Тригонометрия» до уровня уроков/блоков/карточек/тренажёра — шаблон для тиражирования. | -| [PILOT_STEREOMETRY.md](PILOT_STEREOMETRY.md) | Второй эталон — блок «Стереометрия» (самый «дорогой»): координатно-векторный метод для В20, sim `stereo`, «Кедр»-отработки. | -| [DIGITIZATION_SPEC.md](DIGITIZATION_SPEC.md) | Как оцифровывать задания РТ/ЦТ в `exam_tasks` (форматы полей, классификатор номер→тема, рубрика сложности) + состав входной диагностики. | -| [RESOURCES.md](RESOURCES.md) | Инвентарь всех материалов папки с привязкой к модулям и уровням; что оцифровывать первым. | +| Файл | Что внутри | Статус | +|---|---|---| +| [PLAN.md](PLAN.md) | **Программа.** Карта экзамена, методика, 9 блоков / ~32 модуля, уровни, шаблон модуля. | актуально (кроме §6/§8 — см. пивот) | +| [BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md) | **Главный тех-документ.** Сборка курса на существующем банке `questions`: режимы `mode='ct'`/`'topic'`, таксономия тем, курс/уроки, диагностика, пробники, прогресс, порядок работ. | актуально | +| [PILOT_TRIGONOMETRY.md](PILOT_TRIGONOMETRY.md) | Эталон блока «Тригонометрия» до уроков/блоков/карточек — шаблон тиражирования. | актуально (тренажёр = `mode='topic'`) | +| [PILOT_STEREOMETRY.md](PILOT_STEREOMETRY.md) | Второй эталон — «Стереометрия» (координатный метод В20, sim `stereo`). | актуально | +| [RESOURCES.md](RESOURCES.md) | Инвентарь материалов папки по модулям/уровням (для добивки/гэпов). | актуально | +| [TOPICS_SEED.md](TOPICS_SEED.md) | Seed exam-prep (`exam_tracks/exam_topics`, миграция 077). | вторично (опция exam-prep) | +| [DIGITIZATION_SPEC.md](DIGITIZATION_SPEC.md) | Оцифровка РТ/ЦТ в `exam_tasks`. | вторично (оцифровка уже сделана) | -**Код (готов, но НЕ применён):** [`backend/src/db/migrations/077_ctmath_track_topics.sql`](../../backend/src/db/migrations/077_ctmath_track_topics.sql) — миграция трека `ctmath` + дерева тем (валидирована in-memory: 1 трек, 9 разделов, 32 подтемы). На живую БД не запускалась. +**Код:** [`backend/src/db/migrations/077_ctmath_track_topics.sql`](../../backend/src/db/migrations/077_ctmath_track_topics.sql) — миграция трека `ctmath` + дерева тем для exam-prep (валидирована in-memory). **Оставлена как опция, в БД НЕ применена.** Основной путь — банк `questions`. ## Ключевые факты - **Формат экзамена**: часть А — А1–А10 (выбор из 5), часть В — В1–В20 (открытый ответ), всего **30 заданий**, ~180 мин, до 100 тестовых баллов; часть В весит больше. -- **Платформа уже готова**: модуль exam-prep (`exam_tracks/exam_tasks/exam_topics/exam_mock_sessions` + детектор слабых тем), курсы (`courses→sections→lessons→blocks`), флешкарты со spaced-repetition, sims (`trigcircle/graph/stereo/…`), `content_access`/assignments. Наполнение = данные, не разработка движков. -- **Самый «дорогой» блок** — стереометрия (~6 заданий, включая сложнейшие В17/В20); усиленный модуль + готовые «Кедр»-отработки. +- **Контент уже есть**: банк `questions` (`subject_id=3`) — **1753 задания** 2011–2025 (ЦЭ-2024 = 117, набор 2025 = 1020), размечены по темам (`topics`, 19 шт.) и годам. Залиты `backend/scripts/seed_math_ct*.js`. +- **Готовый механизм ЦТ**: `assignments` с `mode='ct'` собирает вариант (Часть A из `single/true_false` + Часть B из `multi/short_answer`); `mode='topic'` — тренажёр по теме. Сложность в банке — 1–3. +- **Самый «дорогой» блок** — стереометрия (~6 заданий, включая сложнейшие В17/В20). -## Порядок реализации (предлагаемый) +## Порядок реализации (на банке `questions`, см. BUILD_ON_QUESTIONS §8) -1. Миграция трека + дерева тем ([TOPICS_SEED.md](TOPICS_SEED.md)). -2. Оцифровка части А и В1–В10 из ЦЭ-2024 + РТ-2022…2025 ([DIGITIZATION_SPEC.md](DIGITIZATION_SPEC.md)). -3. Теория блоков по образцу пилота ([PILOT_TRIGONOMETRY.md](PILOT_TRIGONOMETRY.md)), начиная со стереометрии и тригонометрии. -4. Колоды карточек формул, sims в уроки геометрии. -5. Полные варианты-пробники + диагностика. -6. Выдача классам/ученикам через `content_access`/assignments. +1. Таксономия: добавить недостающие темы (Производная, Иррациональные, Модуль, Показательные ур., Параметры). +2. Каркас курса: `courses('math','ЦЭ/ЦТ — Математика')` + 9 `course_sections`. +3. Диагностика: `test` из ~14 реальных вопросов банка (по 1 на тему) → выдать. +4. Уроки по приоритету (стерео, тригонометрия) — теория по пилотам + кнопка практики `mode='topic'`. +5. Пробники: assignment `mode='ct'` (30 заданий) + тематические `mode='topic'`. +6. Карточки формул; выдача классам через `content_access`/`class_courses`. ## Статус -ПЛАН + готовая миграция дерева тем (077, валидирована, **НЕ применена** на живой БД). -Файлы пока не закоммичены. Сделано: PLAN, TOPICS_SEED, два пилота (тригонометрия + стереометрия), -DIGITIZATION_SPEC, RESOURCES, миграция 077. +ПЛАН переориентирован на банк `questions` (пивот). Закоммичено в master (`7eb6cb2`): PLAN, TOPICS_SEED, +два пилота, DIGITIZATION_SPEC, RESOURCES, миграция 077. Добавлен BUILD_ON_QUESTIONS.md + примечания-пивот +(этот коммит). Миграция 077 в БД **не применялась**; ничего в живой БД не менялось. Следующий конкретный шаг на выбор: -- применить миграцию 077 (`npm run migrate`) — по согласованию (живая БД, параллельные сессии); -- начать оцифровку диагностического набора / части А в `exam_tasks`; -- детализировать ещё блок (напр. уравнения/неравенства или функции+производная); -- закоммитить `plans/ct-math/` + миграцию. +- добавить недостающие `topics` (миграция/скрипт) и собрать каркас курса; +- собрать диагностический `test` из реальных вопросов банка; +- детализировать ещё блок теории (уравнения/неравенства или функции+производная); +- закоммитить изменения этого захода. diff --git a/plans/ct-math/TOPICS_SEED.md b/plans/ct-math/TOPICS_SEED.md index 1f29ad3..a4964aa 100644 --- a/plans/ct-math/TOPICS_SEED.md +++ b/plans/ct-math/TOPICS_SEED.md @@ -1,5 +1,10 @@ # Seed: трек `ctmath` и дерево тем `exam_topics` +> ⚠️ **ВТОРИЧНО (опция exam-prep).** Это seed для подсистемы exam-prep (миграция 077, оставлена как +> опция). **Основной путь** — банк `questions`, см. **[BUILD_ON_QUESTIONS.md](BUILD_ON_QUESTIONS.md)**. +> Этот документ полезен, если в будущем решим использовать exam-prep (варианты/пробники/детектор +> слабых тем). Реальные slug-и учебников отсюда переиспользуются и для ссылок из уроков. + > Готовый к переносу в SQL-миграцию seed дерева тем для курса ЦЭ/ЦТ по математике. > Соответствует реальной схеме платформы (см. `022_exam_prep.sql`, `024_exam_topics_seed.sql`, `028_exam_topic_textbook_links.sql`). > Двухуровневая иерархия: **раздел** (`parent_slug=NULL`) → **подтема** (`parent_slug` = slug раздела). Slug — kebab-case.