Architecture
This directory contains the architectural documentation for the fla-- Turing Machine Simulator, presented using the 4+1 architectural view model.
Documentation is versioned by sprint. Use the version dropdown in the navigation bar to switch between sprint releases.
Current Sprint 4 technical descriptions were checked against application
dev at 01c423c on 11 October 2026.
Contents
| Document | View | Description |
|---|---|---|
| Logical View | Logical | Class diagrams, data models, type system, and core abstractions |
| Process View | Process | Editing, saves, accepted invitations, persistent collaboration, grading, daily budgets, and Groq |
| Development View | Development | Component structure, collaboration modules, dependencies, and runtime layers |
| Physical View | Physical | Vercel and Docker deployment, infrastructure, storage, and WebSocket runtime |
| Database View | Data | Auth, documents, invitations, problems, daily progress, and Yjs update history |
| API Reference | Interface | Document, problem, daily/admin and Groq contracts with endpoint-specific access |
| Scenarios | Scenarios | Use case diagrams and sequence diagrams for key workflows |
Sprint History
- Sprint 1 -- Initial architecture: single-tape TM engine, bidirectional sync, OAuth authentication, Vercel deployment.
- Sprint 2 -- Multi-variant support (single-tape, multi-tape, multi-step), test execution engine (Marker), complexity analysis, file management with versioned storage, dashboard with document gallery, testing infrastructure (Vitest).
- Sprint 3 -- Computational and nondeterministic machines, compiler diagnostics, contributor-based sharing, and real-time collaborative editing with Yjs.
- Sprint 4 -- Current source baseline: problem publishing/server grading, black-box and build dailies, admin scheduling, Groq assistance, accepted invitations, shared documents, and PostgreSQL-backed Yjs rooms.
User interface wireframes include the original live-checked screens and additional source-derived learning, admin, and AI layouts.