The goal of this task is to test your ability to test, refactor and implement new functionality on a given system. Note that this repository does not represent the actual code of CGTrader, but only acts as a testing ground.
Imagine the situation where management assigns you a task. Management wants that the system would automatically reward users or reduce their tax rate when they level up. Users are supposed to have a combination of rewards and privileges based on their user level. The only privilege in this case is tax reduction. However, management is not sure if that will always be the case, so you, as a developer, should make changes with the idea that requirements for this may change and the functionality should be flexible.
- Make sure test suite runs through all of the tests successfully. Hint: it won't at first.
- Refactor implementation code and tests where you see fit. You have as much freedom here as you wish.
- Implement new functionality.
- You can spend as much time as you want.
- You may refactor not only the application code, but the tests too. Keep in mind that test code is still code that needs to be maintained.
- Use git to track your changes. Fork or clone this repository and commit often.
- When finished, send us the link or the zip of the project via e-mail.
Good luck!