Files
soroban-abacus-flashcards/apps/web
Thomas Hallock ae276455fa feat(flowcharts): implement unified computation model (Phases 1-2)
Transform the flowchart system from "compute everything upfront" to
"walk IS the computation". This is the foundation for the new unified
computation model.

Phase 1 - Schema & Core Runtime:
- Add TransformExpression, StateSnapshot, DisplayTemplate, AnswerDefinition
- Add StructuredTestCase for primitive-based test validation
- Update FlowchartState with values, snapshots, hasError fields
- Mark variables as deprecated (optional) for transition period
- Add interpolateTemplate() for {{name}} and {{=expr}} syntax
- Add applyTransforms(), extractAnswer(), simulateWalk() to loader
- Add createContextFromValues() for transform execution

Phase 2 - Walker Integration:
- Apply transforms when entering each node during walk
- Initialize entry node transforms on state creation
- Snapshots now accumulate as nodes are visited

All existing flowcharts continue to work via backwards compatibility
with the legacy variables section.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 15:39:20 -06:00
..

Soroban Web Application

Interactive web application for learning soroban (Japanese abacus) calculation with tutorials, practice sessions, and multiplayer arcade games.

Features

  • Tutorials - Step-by-step lessons for learning soroban techniques
  • Practice Sessions - Adaptive practice with progressive help system
  • Arcade Games - Multiplayer educational games for reinforcement
  • Worksheet Generator - Create printable math worksheets

Getting Started

# Install dependencies
pnpm install

# Start development server
pnpm dev

# Run type checks
npm run type-check

# Run all quality checks
npm run pre-commit

Documentation

Components

Component Description
Decomposition Display Interactive mathematical decomposition visualization
Worksheet Generator Math worksheet creation with Typst PDF generation

Games

Game Description
Arcade System Modular multiplayer game architecture
Know Your World Geography quiz game

Developer Documentation

Located in .claude/ directory:

  • CLAUDE.md - Project conventions and guidelines
  • CODE_QUALITY_REGIME.md - Quality check procedures
  • GAME_SETTINGS_PERSISTENCE.md - Game config architecture
  • Z_INDEX_MANAGEMENT.md - Z-index layering system
  • DEPLOYMENT.md - Deployment and CI/CD

Project Structure

apps/web/
├── src/
│   ├── app/                 # Next.js App Router pages
│   ├── components/          # Shared React components
│   │   ├── decomposition/   # Math decomposition display
│   │   ├── practice/        # Practice session components
│   │   └── tutorial/        # Tutorial player components
│   ├── contexts/            # React context providers
│   ├── arcade-games/        # Multiplayer game implementations
│   ├── hooks/               # Custom React hooks
│   ├── lib/                 # Utilities and libraries
│   └── db/                  # Database schema and queries
├── .claude/                 # Developer documentation
├── public/                  # Static assets
└── styled-system/           # Generated Panda CSS

Technology Stack

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript
  • Styling: Panda CSS
  • Database: SQLite with Drizzle ORM
  • Abacus Visualization: @soroban/abacus-react

Parent: Main README - Complete project overview Abacus Component: packages/abacus-react - Abacus visualization library