Lesson-first quiz learning game for PC browsers.
npm install
npm run devnpm run test
npm run test:e2e
npm run test:rustnpm run buildThe production build runs wasm-pack for the Rust/WASM learning engine and then builds the Vite app. Local machines need Rust cargo and wasm-pack on PATH; without them, use npm run build:app to verify the TypeScript/Vite app against the checked-in public/wasm package and document the missing WASM toolchain blocker.
docker build -t cinamon-guide .
docker run --rm -p 8080:80 cinamon-guideThe container serves the static Vite output with Nginx, SPA fallback, and /healthz for basic runtime checks. Docker or another Docker-compatible runtime such as Podman is required for local image verification. Kubernetes manifests, Helm charts, Ingress definitions, and cluster deployment scripts are intentionally out of scope.
The teaching loop works with a TypeScript fallback engine while the Rust/WASM package remains a pure deterministic rules engine. Rust/WASM owns:
- seeded quiz ordering, answer judgment, scoring, unlock checks, and review target extraction
- learner diagnosis, concept mastery scoring, next-lesson recommendation, and review scheduling
- small deterministic network-flow, Git-graph, path, address-classification, and security-risk puzzle results
React/TypeScript still owns rendering, Korean copy, lesson content, diagrams, routing, Zustand state, localStorage, and asset loading.
npm run test
npm run test:rust
npm run build
npm run test:e2e
npm run validateIf cargo, wasm-pack, or a running Podman/Docker machine is unavailable, record that as an environment blocker. Podman smoke uses:
podman build -t cinamon-guide .
podman run --rm -p 8080:80 cinamon-guide