I'd like to highlight an open source event-driven desktop application that we are working on with Kerry. It's part of BeingTheWorst podcast and is covered there.
We are writing this task manager as an exercise in software design and a few specific design patterns and approaches:
- event sourcing;
- command-query responsibility segregation;
- domain-driven design;
- reactive variation of Model-View-Controller;
- cross-platform reusable codebase (we want to swap UI elements for Xamarin iOS at some point);
- occasionally-connected systems.
This application is merely an ongoing exercise in design, an attempt to master aspects of development by practicing them in new territory.
The codebase is open-source. If you are interested in this development you can watch github repository and listen to Being The Worst podcast. We discuss development and address community questions there.
If there is interest, I might start short series of articles on some aspects of this project and design decisions made.