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.
Contents
| Document | View | Description |
|---|---|---|
| Logical View | Logical | Class diagrams, data models, type system, and core abstractions |
| Process View | Process | Simulation, testing, document sharing, and collaborative editing |
| 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 | Entity relationships for auth, documents, versions, and contributors |
| API Reference | Interface | RESTful API endpoints for file management and authentication |
| 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.
Wireframes for the editor may be found here