Overview¶
You’ve validated your To-Do List app through rigorous testing—now it’s time to refine, polish, and present your final product.
This milestone is all about engineering excellence: completing any unfinished aspects of the project, refactoring code for clarity and maintainability, improving robustness through exception handling, enhancing documentation, and ensuring your repository is clean, readable, and professional.
You’ll also finalize your GitHub release, README, and documentation artifacts, ensuring everything reflects the quality of your software engineering journey. The result should be a product that not only works but also feels production-ready—organized, well-documented, and robust.
Learning Objectives¶
Upon successful completion of this milestone, you will be able to:
Complete unfinished project elements including code, features, and documentation to deliver a fully functional app.
Refactor and improve code structure, readability, and maintainability.
Identify and remove code smells, improving performance and clarity.
Add exception handling for robust runtime behavior.
Enhance documentation and comments for clarity and understanding.
Apply typing, docstrings, and modular organization for professional code quality.
Deliver a final, well-documented release with polished artifacts.
Tasks and Instructions¶
1. Complete Unfinished Project Elements¶
Review your project for any incomplete or pending items and finalize them.
Address any unfinished code, features, or bug fixes from previous milestones.
Update and complete all documentation, diagrams, and artifacts that were drafted but not finalized.
Ensure the entire app is fully functional, integrated, and meets the original requirements outlined in the SRS.
Verify that all aspects (e.g., UI, backend, testing) are cohesive and ready for final submission.
Document these completions in /task_manager_app/docs/final_completions.md:
List of unfinished items addressed.
Brief descriptions of changes made.
Links to relevant commits or updated files.
2. Code Refactoring and Quality Improvements¶
Perform a final cleanup pass on your project. Refactor any parts that feel complex, redundant, or inconsistent.
Identify 5+ code smells and fix them (duplication, long methods, inconsistent naming, etc.).
Apply PEP 8 styling, proper function/variable names, and consistent indentation.
Add docstrings (
""" """) to all public classes and functions.Include type hints throughout (
def add_task(task: Task) -> None:).Simplify and modularize any overly long code blocks.
Document these updates in /task_manager_app/docs/refactoring.md:
Before/After code snippets.
Description of the issue (smell) and the fix.
Justification of improvement.
3. Robustness and Exception Handling¶
Improve system reliability by handling edge cases and unexpected errors gracefully.
Add meaningful
try/exceptblocks where user or file interactions may fail.Log or print user-friendly error messages.
Document changes in
/task_manager_app/docs/robustness.mdwith:Description of changes.
Examples of handled exceptions.
4. Documentation and Repository Cleanup¶
Ensure your documentation and repo reflect your final, polished state.
README.md (top-level):
Clear project overview and installation instructions.
Screenshots or GIFs of the app (if available).
Section on testing and refactoring outcomes.
Contributor information and acknowledgments.
Include visual or presentation artifacts if applicable.
SRS (
/task_manager_app/docs/srs.md):Updated with final architecture diagrams or design refinements.
Notes on testing and robustness sections.
Docs Folder (
/task_manager_app/docs):Include all artifacts:
coverage.md,refactoring.md,robustness.md,final_completions.md,meeting_minutes/, etc.
5. GitHub Release¶
Create a final release (
v6.0, taggedfinal-submission), summarizing:Key improvements, completions, and refactoring efforts.
Robustness and code smell fixes.
Coverage and test outcomes.
Link all documentation (coverage, refactoring, SRS, etc.).
Add screenshots or visual assets for presentation polish.
6. Presentation Integration¶
Ensure your presentation materials reflect the technical improvements made.
Incorporate short before/after code examples into slides (if applicable).
Emphasize your refactoring process, testing results, and design choices.
Highlight professional polish (typing, docstrings, structured repo).
7. Individual Reflections¶
Submit a .md file via Canvas with links and reflection answers (see Submission Checklist).
Submission Checklist¶
Submit via Canvas¶
A .md file containing:
Final GitHub release link:
(e.g.,
https://github.com/user_name/project_name/releases/tag/v6.0)GitHub Project board link:
(e.g.,
https://github.com/user_name/project_name/projects/1)Reflection Answers:
Your contribution to final improvements (50–100 words):
What specific refactoring, documentation, or robustness improvements did you contribute?
How did refactoring improve your code quality? (50–100 words):
Discuss how your changes made the code clearer or more maintainable.
How did you improve robustness and readability? (50–100 words):
Mention specific exception handling or readability enhancements.
How did documentation improve your project? (50–100 words):
Explain how organized documentation helps the user and future developers.
Final reflection (50 words):
Reflect on your journey, team collaboration, and engineering growth.
Repository Documents¶
All documents must be up to date, committed, and linked in your final release.
Use checkboxes to confirm completion:
Final Completions Log (
/task_manager_app/docs/final_completions.md)Unfinished items addressed with descriptions.
Refactoring Log (
/task_manager_app/docs/refactoring.md)Smells identified, fixes, before/after examples.
Robustness Improvements (
/task_manager_app/docs/robustness.md)Error handling additions and justifications.
Updated SRS (
/task_manager_app/docs/srs.md)Final testing and robustness details.
Updated README.md (root)
Clear, professional overview, visuals, and setup guide.
Coverage Report (
/task_manager_app/docs/coverage.md)Linked and updated from Milestone 5.1.
Meeting Minutes (
/task_manager_app/docs/meeting_minutes/milestone_5/)Final team discussion notes.
GitHub Releases¶
Final Release (
v6.0)All documents linked in release notes
GitHub Project Board¶
All tasks marked completed with clear traceability
Evaluation Rubric (40 Points)¶
| Criteria | Points | Description |
| :-------------------------------- | :------: | :----------- |
| Project Completion and Finalization | 10 | All unfinished elements addressed; app fully functional |
| Refactoring and Code Quality | 10 | Code smells removed, clarity and maintainability improved |
| Robustness Improvements | 5 | Exception handling and resilience enhancements |
| Documentation and Readability | 10 | README, SRS, and supporting docs are professional and complete |
| Final Release and Organization| 5 | Clean release notes, repo structure, and polish |
Resources¶
You may extend or enhance functionality and fix bugs in this phase, provided changes are covered by tests and documented in the release notes.