design an application like OLA CAB
draw use case diagram of "a Cab Booking"
draw complete system class diagram, relationship
- diff payment methods
- diff cab types, and their rates
- user session/ login( user manager, cab manager, booking system, a booking Order)
- the relationship between payment methods and user.
- cab driver session/login - active or offline how to manage the list(manage cab driver states-active/offline/onBooking/idle/???)
- the cab driver is accepting travel request, or ignoring (how to find and maintain list)
- cab is active/ready for ride, how to keep this info in server - (each cab driver device sends some heartbeat signal to server in 1 min or some other way? - push / pull) - what info cab driver device send during heartbeat - time, driver active/passive state/ GPS location ?
- if a person hire a cab to go out of bangalore area(out of 30km radius), is it considered active(ready for service) or offline,
- once he drops the passenger after 10km out of bangalore(30km+10km), now he is ready to accept the booking, but do we consider him active or offline?
- what is the area range we can consider for active or offline -
- if cab driver travels to Delhi so can we consider him active or offline?
- what if GPS system is showing the wrong location of the driver, or it shows cab is moving, but actually it is not, how to find the error?
- if a driver using his own other 20 sims to complete the daily target of 20 rides, and making cash payment only, and getting the bonus for completing rides - how to track this error?
- if 20 rides each costing 50/- each(assume) and total earning = 1000(ola will deduct its own share rest is drivers), but ola is giving the additional bonus of 1000/- for completing the target, how to detect this fraud, (all payments are cash payment)
- if 4 cabs are available in your 3k radius, how booking happens, in which order, and how to find which can is nearest to you.
- find, out of total 50 cabs, 30 is ready for service, how to find the list of active cab drivers, location, polling to accept a ride, distance calculation, cab driver state.
- find cab nearest to you(assume the radius of 3 km, find km distance between you and all available cab in this area)
- while calculating distance, consider one-way road distance not the straight path between 2 points.