Congrats! The web client is successfully running. Make sure the database and API work as well before starting the challenge.
Take a look through the codebase to find out how things currently work and submit your solution and your suggested improvements. Solve the main challenge first and then all of the bonus problems.
In order to have the greatest chance of success, please take note of the following:
You are working on an app used in an expensive robots shop. The existing functionality helps us keep track of all the robots we are currently trying to sell, and the staff members who are experts in each type of robot. You can only update the name and the price of a robot from the UI, but with some skills, you can do a whole lot more.
We are starting to get a lot of calls from clients interested in our robots, and it's hard to keep track of things. We need a new module that allows us to gather information about the client's interest, and allocate them to the staff members in a way that maximizes our chances of selling all the robots.
Some clients know exactly what they want, others are just testing the waters. Nevertheless, we want our staff members to engage with all of them.
You need to implement a new page where we can fill in the information gathered from the client.
Upon saving the form, you need to allocate the client to the staff member who has the highest chance of finding a robot for them. Use the following rules to find this match. Keep in mind that these rules might change quite often as we experiment with different approaches.