Files
FamReynaBrain/projects/ckmath-interactive-pilot/docs/plans/2026-09-09-grade3-showcase.md
T
2026-09-14 22:38:47 -04:00

2.5 KiB
Raw Blame History

Grade 3 Curriculum Showcase Implementation Plan

For Hermes: Build the showable local demo task-by-task with test-first checks.

Goal: Turn the downloaded Grade 3 Core Knowledge collection into a private local library that exposes every available unit, its student resources, and its teacher-guide PDFs, while keeping the interactive equal-groups session as a concrete lesson example for Alicia.

Architecture: A local Python server serves the existing static interactive session and a generated Grade 3 catalog. The catalog is derived directly from the verified download manifest and ZIP contents; teacher/student PDFs stay inside their original ZIP archives and are streamed only on demand, avoiding copied curriculum files. The interface uses browser-only state and no accounts or learner-data storage.

Tech stack: Python stdlib (http.server, zipfile, json), PyMuPDF for PDF page metadata, vanilla HTML/CSS/JavaScript, Node’s built-in test runner.


Task 1: Derive a Grade 3 catalog from verified downloads

  • Add a failing test for grade filtering, subject classification, and teacher-guide detection.
  • Implement src/catalog.mjs pure helpers.
  • Implement scripts/build_grade3_catalog.py to inspect every Grade 3 archive from download-manifest.json, recording unit title, source archive, internal PDFs, material roles, and PDF page counts.
  • Generate data/grade3_catalog.json.

Task 2: Stream original PDFs without copying curriculum

  • Add a failing server test for a manifest-known PDF route and an unknown/traversal-style route.
  • Implement server.py with static-file serving, a catalog endpoint, and a constrained ZIP-PDF route based only on IDs present in data/grade3_catalog.json.

Task 3: Add a Grade 3 library and teacher-plan view

  • Add a failing browser-independent test for filtering by subject and selection state.
  • Extend the local UI with a Grade 3 library showing every catalogued unit, student resources, teacher guides, source/licensing notice, and one selected teacher-plan preview.
  • Link teacher guides to the constrained streaming route and retain the first interactive math session as an explicit classroom activity.

Task 4: Verify the demo

  • Run catalog generation, all tests, server route checks, browser learner flow, and accessibility audit.
  • Demonstrate responsive library browsing and a teacher guide opening in the browser.
  • Stop the temporary local server after the demonstration; do not bind to the LAN or store learner data.