This app is to be used by owners of the motorcycle when they ride the bike. Users will turn on the bike and then use the app to connect to the bike via Bluetooth. While the bike is on it will transfer data of the bikes present settings to the phone. The bike has internal storage that can store up to 12 hours of riding data that will be used if the phone is not connected to the bike and the bike is on. Next time the user connects to the phone the bike will transfer the data from the bike to the app via Bluetooth.
The app also includes turn by turn directions that are controlled via the app. The locations are inputted on the app and the mapping directions are calculated by Here maps service. The mapping service will handle route and calculate all the turns that are necessary. The users cell phone GPS will track the users location and will notify the bike when the next turn is and how to turn. This will be updated after each turn and the distance to the next turn.
The phone app will also backup the data to an online cloud that will track the state of the bike and upload it to an online server. The data will be uploaded when to the server when the user is connected to Wifi internet. The server will have a database that will store the data from each rider for the company to provide better service to the riders as well better understand how the bikes are being used.
The data store will be about 200bytes of data per second or 720 kilobytes per hour of riding. Our server will need to handle around 200 riders riding 1 hour each day for a year. The design of the database for the server as well as authentication will need to be handled by the programmer to select a suitable service.
Due to the need to have our products in multiple locations, we will need a cloud service provider that located in many countries such as Microsoft Azure or Amazon AWS.
Finally, along with the source code we will need code charts, flowcharts and diagrams for how the code works as well as documentation of the code. Test routines will need to be created by the programmer to show that they code works reliably.