Project Roadmap
Sprint 1 — Project Setup and Foundation
Deadline: 25 August 2026
Goals
-
Project Infrastructure
- Set up repositories, Git workflow, CI/CD, and documentation site.
- Select and document the full tech stack.
-
Core Data Model
- Design and implement the Turing Machine data structure (states, transitions, alphabets, start/accept states, tape).
- Design a database schema for storing machines and users.
-
Dual Editor Foundation
- Implement a visual editor using a diagramming library (e.g., React Flow, Mermaid, or D3).
- Implement a code editor (e.g., Monaco Editor or CodeMirror) for instructions.
- Keep both editors synced
-
Basic Machine Operations
- Create and save machines.
- Support start state, accepting states, and transitions via both UI and code.
- Implement tape alphabet and input alphabet management.
-
Computation Visualisation (Basic)
- For a given input, visualise the tape, head position, and current state.
- Allow step-by-step or run-to-completion modes.
-
Export Functionality
- Export state diagram as an image.
-
User Authentication
- Implement third party sign in.
Sprint 2 — Core Feature Development
Deadline: 15 September 2026
Goals
-
Test Case System
- Allow students to define test cases with input and expected output.
- Run machines against test suites and display pass/fail results.
- Store test cases alongside machines for reuse.
-
Interactive Debugger
- Implement pause and step-through functionality for computations.
- Show detailed configuration at each step (state, tape, head position).
- Display transition history and execution trace.
-
Performance Analytics
- Plot time and space complexity for each test case.
- Visualise resource usage across different input sizes.
- Provide comparative analysis between test runs.
-
Multi-Variant Turing Machine Support
- Support multi-tape Turing Machines with visualisation for each tape.
- Support multi-step (stay/left/right) transition capabilities.
- Ensure all existing features (editor, visualisation, testing) work for each variant.
-
Machine Sharing
- Implement sharing functionality with unique shareable links.
- Allow users to view and fork shared machines.
- Preserve machine metadata (author, creation date, description).
Sprint 3 — Advanced Feature Development and Refinement
Deadline: 29 September 2026
Goals
-
Collaborative Real-Time Editing
- Enable multiple users to edit the same Turing Machine simultaneously.
- Implement real-time synchronisation with conflict resolution.
- Show presence indicators for active collaborators.
-
Nondeterministic Turing Machines
- Support nondeterministic transitions (multiple possible moves from a configuration).
- Build computation tree visualisation showing all possible execution paths.
- Allow users to explore and traverse different branches.
-
Computation Tree Visualisation
- Display branching execution paths as an interactive tree.
- Highlight active branch and visited nodes.
- Provide controls for navigating between branches.
-
System Refinement
- Improve reliability, usability, and performance across all features.
- Conduct comprehensive user testing and incorporate feedback.
- Complete all documentation and prepare for final submission.
-
Puzzles
- Ability to play daily puzzles.
- will be ranked against other users based on how many attemts it took you to solve them
Finalisation and Submission
Submission: 11 October 2026
Final Outcome
A complete, deployed, tested, documented, and functional project ready for submission.
Timeline
| Milestone | Deadline | Primary Focus |
|---|---|---|
| Sprint 1 | 25 August 2026 | Setup, design, architecture, foundations |
| Sprint 2 | 15 September 2026 | Core features, API, integration, testing |
| Sprint 3 | 29 September 2026 | Completion, user testing, refinement |
| Final Submission | 11 October 2026 | Final testing, deployment, documentation |
Development Progression
Sprint 1
↓
Project foundation + design
↓
Sprint 2
↓
Core functionality + testing
↓
Sprint 3
↓
Feature completion + refinement
↓
Finalisation
↓
Testing + deployment + submission