Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Some considerations to keep in mind:
I took the liberty of modifying the API signature to comply with more common standards.
I would have liked to implement a different persistence mode, but due to lack of time, it was not possible.
Due to time constraints, I was unable to perform all the unit tests that I would have liked to do. It would be necessary to perform tests at least on the UserService class.
Regarding architectural decisions, the project structure was modified to follow the MVC pattern. However, it could have been possible to implement additional patterns such as layered development, DDD, or even consider this API as a microservice. But for that definition, it may be necessary to have more information about the requirements of the project itself.
For logging, I chose Serilog for its ease of implementation. It performs a general application log and custom logging. I configured it to generate log files in the root of the project.