This was my projected timeline for the project, written in Week 2. I followed the timeline pretty well until about Week 8, when I reevaluated the project and compiled a new list of things that had to be finished.
- Weeks 1 and 2:
- Design internal track representation. (Track Designer and Simulator)
- Write basic interface. (Simulator)
- Research.
- Week 3:
- Write parser and validator for track XML. (Track Designer and Simulator)
- Rewrite track XML.
- Week 4:
- Load and draw tracks from XML file. (Track Designer and Simulator)
- Weeks 5-7:
- Finish loading/drawing tracks. (Track Designer and Simulator)
- Implement a bare-bones simulation. (Simulator)
- Export status to a log file. (Simulator)
- Write track-designing interface. (Track Designer)
- Save tracks to XML. (Track Designer)
- Week 8:
- Draw a train as it moves on the tracks. (Simulator)
- Make the drawing routine support track bends. (Simulator)
- Write train status window. (Simulator)
- Read hardware commands from other applications. (Communications)
- Week 9:
- Add functionality for multiple trains. (Simulator)
- Write railroad API. (Communications)
- Week 10:
- Finish railroad API. (Communications)
- Write a railroad program.
- Week 11:
- Finish railroad program.
- Provide railroad feedback. (Simulator, Communications)
- Enable disasters. (Simulator)
- Get the Railroad Operating System working on the Simulator.
- Week 12:
- Finish everything from Week 11.
- Do things I haven't thought of yet but surely will.