OOP Coursework: Developing an application using design patterns, 3-tier architecture model and WPF (C#, .NET)