Demo project for learning different design patterns