1. Developed alone for practice.
2. Used MVC architecture.
3. Used Factory pattern to refactor the controller.
4. Used the Currying function to handle the errors without using repeat try-catch.
5. Built API with RESTFul style in order to effectively develop and debug.