A developer went on vacation and several issues arose in the project that needed to be resolved.
The webAPI works, but it has many flaws in architecture, code quality, testing and etc.
We need you to refactor the code of this project.
Remember to treat it as a refactoring of a final code, which will go to production and has to be as good as possible.
In the result of the refactoring we would like to find:
-
Object-oriented programming.
-
An architectural model. The one that you consider most applicable or that you have more experience.
-
The Clean Code concepts that you consider important.
-
The best unit tests you can do and with the code coverage you consider important.
-
A polymorphic system or some design pattern. The one that fits the most or that you like the most.
-
Transversal/crosscutting concepts that you consider important to a webAPI in production such as logging, validation, exception handling...
-
REST concepts, SOLID principles and good practices applied.
-
And you want to take more time in the challenge you can change the type of persistence (currently TXT file), but consider that your new implementation should be working.
Do the best you can.
It is a small WebAPI and normally a good refactoring can be done in about 2 hours.
But we know that each one has its speed and in general we prefer to prioritize the quality of delivery, so there is no time limit.
For you to do the challenge you must create a branch or a fork from this one (main).
And once you have finished the refactoring you can send us:
- The link of your branch on Github
- The link of a PR from your branch to the original repo