Files
tiennm99 51a4b90163 refactor: migrate quiz-project, gstack, and superpowers to JS+JSDoc
Convert all 41 TypeScript source/config files in cc4e-course/quiz-project
(Next.js), gstack (Astro), and superpowers (Vite/React/Phaser) to plain
JavaScript with JSDoc type annotations, replacing tsconfig.json with
jsconfig.json (strict + checkJs) in each subproject. No behavior changes:
lint, typecheck, test, and build gates match their TypeScript baselines
exactly in all three subprojects. Update stack references in the affected
READMEs accordingly.
2026-08-18 09:49:42 +07:00

1.7 KiB
Raw Permalink Blame History

Hình Học Sống

Interactive Vietnamese THCS (lớp 79) geometry visualizer. Drag the points; watch the theorems hold. Aligned to the SGK curriculum.

Sandbox repo currently doubling as a gstack trial — see CLAUDE.md.

Status

Scaffold only (v0.0.1.0). Modules are placeholders — landing page lists three grades with "Sắp ra mắt" badges. See the design doc at ~/.gstack/projects/tiennm99-try-gstack/ for the full plan.

Develop

npm install
npm run dev          # http://localhost:4321/try-gstack/
npm test         # Vitest (geom-engine unit tests)
npm run typecheck    # Astro check + strict checkJs (JavaScript + JSDoc)
npm run build        # Static output to dist/

Deploy

Auto-deploys to GitHub Pages from main via actions/deploy-pages@v4. See RUNBOOK.md for rollback + domain-migration procedure.

Architecture (locked decisions, per autoplan review)

  • Static: Astro SSG, base: '/try-gstack/', output dist/
  • Typography: Be Vietnam Pro single family, weights 400/500/700, woff2 only, Vietnamese subset
  • Math engine: pure src/geom-engine/ module (no DOM imports), Vitest unit tests; property tests with fast-check to be added with first canvas module
  • Canvas: vanilla SVG + Pointer Events + setPointerCapture (no Konva) — to be added with first canvas module
  • Math rendering: KaTeX, bundled locally + SSR-rendered — to be added with first canvas module
  • Animation: Web Animations API + requestAnimationFrame (no GSAP / Motion One / Lottie)
  • Analytics: Cloudflare Web Analytics, deferred until 50+ daily sessions
  • i18n: every string via t() from src/i18n/vi.js; English added by adding en.js

License

TBD.