I currently started on codeplex.com an open source project. It was inspired by my last project. In this project I was a lead developer and software architect and the domain was about a social assurance. I was responsible about several developers and also for a product of the assurance-suite. This product was about retirements benefits in case the insurant died, retired or become invalid. The project was an success (finished in time, all requested features were implemented) and it is now since two years in production.
One problem came us multiple time across: Building a timeline based on several sources which deliver time points or time periods. The timeline was needed to calculate the retirements benefits or to validate the users input.
During the last months I asked myself, if the problem of building a timeline in the business layer isn’t more or less a common problem. So I asked my boss if it is a problem if I start an open source project about this problem. He gave the OK, so I started my first open source project:
First I tried to migrate the ideas from the project into the new open source project, but after a few days I recognized, that the problem could be solved in a much more cleaner and sophisticated way. The current code base is now optimized to build timelines and I tried to follow the SOLID principles. Feel free to help me to improve the code base by using NTimeline or even by contributing.
Short overview over NTimeline
- Building the timeline slices by yourself by implementing an specialized builder for time periods
- Provide time sources which provide time points or time periods for the timeline
- Walk through the timeline with your own implementations
- Visual Studio 2010 and .Net 4.0
- NUnit, Moq frameworks for testing
- StyleCop and Resharper Plug-in
- Visitor pattern for walking through the timeline
- Builder pattern for creating time periods based on the provided data of the time sources
- Simple interface and base class to build time sources