Challenge Overview
All things in this world are better with Maps and this challenge is no exception. This is our 4th challenge in our Drone Series and we are going to jump right in the middle and do some fun stuff with Maps. We are leaving the requirements fairly open so we get a wide variety of solutions. The main goal of this challenge is to show drones and their present location on a google map. To keep things simple, all drones will have one of only three states: in-motions, idle-ready, or idle-busy but you are free to embellish this list all you want.
Your goal is to display up to 10,000 drone on the map and color code the markers based on the status. The Map should be in React and you are free to choose any library you want. Please explain your choice and let us know what libraries you eliminated, and why. A drone should be able to make a REST call (in the future a message protocol) and update or insert the drones: ID, make, Operator name, GPS position, Altitude, Velocity, Heading, (maybe some meta data). The idea would be that a drone sends its position and status every 30 minute when it is not moving every 30 seconds when it is moving. An ideal solution will also store previous positions but only one position should ever be active (current position) per drone. The data should be persisted; Postgres, Kafka, Cassandra, and Mongo are all good choices but you are totally open to select outside of this list just explain why. The goal of this challenge select the map technology and display a drone moving without refreshing the page. Although the backend is needed to achieve this challenge, it is not about the backend stack (that will come later). That being said we still want to hear your opinion on the back end from both a short term and long term perspective. For example saying something like “... long term you should use Kafka and Cassandra and here is why … but I choose mongo because it was quicker” is totally acceptable statement. We want to see some submissions quickly and we understand we might be make some sacrifices on the backend to do that.
Thanks and good Luck
kbowerma
Final Submission Guidelines
1. All submissions should be in a single zip file.2. Please include very detailed documentation which includes how to make the REST calls.
3. You documentation should also include a discussion on your choices.
4. Please include a video(s) of your solution in action. If you are not comfortable with spoke english you may annotate your video.
5. Since this is a compressed timeline you may substitute most of your documentation for video.
6. A prefered solution would be deployed to Heroku but this is optional.