Project schedule
The following is a modification made by my mentors to the original schedule found in here
Week #1:April 25 - 23 May
Gather current Dancer’s core, plugin and packaging documentation, and study this as an introduction. Arrange the working schedule with the mentors based on the observed goals, and schedule a better working process based on the timeline.
Week #1: 24 - 28 May
Review and select suggestions from users, developers, and mentors on the module. Study the possibilities of the upgrade module, and code a rough draft to be worked on.
Week #2: 29 May - 4 June
Finish successfully moving the old script intact to an object oriented module. Write tests for the current object oriented module.
Week #3: 5 - 11 June
Study Catalyst
scripts and Catalyst::ScriptRunner
, derive a code from both to merge to the project.
Week #4: 12 - 18 June
Write the upgrade methods and add tests for those.
Week #5: 19 - 25 June
Add the module to Dancer’s core and run it against several outdated setups. Review the results and calibrate the tests to the resulting patterns.
Week #6: 26 June - 2 July
Add an upgrade log file for the upgrade process for outdated Dancer setups.
Week #7: 3 - 8 July
Go over the tests and add any missing test to allow extensive coverage.
Week #8: 10 - 16 July
Prepare the Midterm report, describe the status of the project and further plans.
Week #9: 17 - 23 July
Document the module, and the config.yml
Week #10: 24 - 30 July
Write a code hand-out of the plugins implementation: How it must work, how will it work and for what functions. Add detailed tests to each plugin function.
Week #11: 31 July - 6 August
Calibrate and polish the plugin implementations, while tracing each test successful output to see what can be added. Write a rough draft of the documentation relating the plugin feature.
Week #12: 7 - 13 August
Review the documentation and make it more user-friendly.
Week #13: 14 - 22 August
Finish what was left undone, make sure the tests are well-written, the coverage is high and the documentation covers every aspect of the project.