Todo-list using common design patterns: Publish-subscribe, MVC, Strategy.
- Publish-subscribe - The model is a publisher and the view is a subscriber.
- Strategy - I used the Strategy design pattern to change compare behaviors of projects in run time. The todos in a project will be ordered according to the compare behavior of the containing project.
This was built before the implementation so there're some updates to make here but this is sufficient for understanding the general structure.