mirror of
https://github.com/tiennm99/ai-labs.git
synced 2026-09-04 07:09:03 +00:00
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.
1.7 KiB
1.7 KiB
Hình Học Sống
Interactive Vietnamese THCS (lớp 7–9) 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/', outputdist/ - 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 withfast-checkto 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()fromsrc/i18n/vi.js; English added by addingen.js
License
TBD.