Solid design principle - A repository that will help one understand SOLID design principles ranging from SRP, OCP, LSP, ICP, DIP