Aldo Avila aavila BikeQuest Requirements Document Description: A program that will give bikers routes to their destination according to their preferences. Also gives bikers looping routes (also according to the biker's preferences) in case the destination is also the starting point. Requirements: Basic Features- *programmable by students using C++ -This program should be able to be done in C++ by students with our experience in programming. *divisible into individual segments -This program should be divisible into individual segments so that it can be worked on by multiple people at a time. A group of 10 people should be able to work on individual tasks for the program. *Data of all possible bike roads -Data must be gathered for all the roads in the designated area. Such data must include length of roads, height of hills that might be part of the roads, whether it's legal to ride a bike on that road, whether their is a bike lane, type of terrain. *Ranking parameters for roads -All roads must have parameters that we can use for a ranking system. Parameters must include: Length, Difficulty, Scenic, Traffic, and more can be added if desired. *Determine routes for commuting -The program should be able to determine routes to the user's destination. The routes should be chosen according to the user's preferences; whether they want a scenic route, a hard route, or simply the shortest way there. *Determine routes for loops -The program should be able to determine looping routes for users who just want to go for a ride and back. Routes should be determined according to the user's preferences. *User input on roads -Users should be able to give inputs on the roads. This will allow the ranking system to work much smoother. Users can rate roads on how difficult they are, how much traffic is on them, or how scenic they are. *GUI -A very friendly GUI that allows users to use the software without getting lost *Printable Maps -Allow the user to print out clean and readable maps of the route they have chosen. Optional Features- *Emergency Notices -Users should be able to place emergency notices on roads that become temporarily unavailable. Notices can even be used to warn users of pot-holes that might have just been created, or any other obstacle that would harm or inconvenience the user. *Emergency routes -Emergency routes to the original starting point should be created when determining a loop. This will give the user a fast way back to the starting point in case of an emergency. *Weather -Weather details on the routes that the user has chosen. *Create-a-route -A create-a-route option that allows users to create their own routes using road data(length,scenery,difficulty,traffic) *Recommendation of routes -Suggest to users other routes that they might like according to the routes they have chosen in the past.("biker's who chose this route also liked the following routes...")