Ride sharing mainly called Ride Pool, Allows Users to share their Ride with others. As sharing is there the price for individual is low comparing to a Normal Cab Ride.
You can create a separate Service Type for Ride share and enable to POOL option to have that service type for POOL.
There will be no new physical cars that will work in Pool, Instead the existing other service type can be used as pool.
You can select all other or service type to be used under this Pool type as well.
Perhaps, The Driver getting Normal Request for some service type, will get Pool request as well if that service type is coming user Pool Type.
From Application end, User can select Pool and request for the Ride along with number of Passenger. Though the maximum Number for passenger per request is defined from Admin panel. User cannot request more passenger in that.
At Driver End, the request for POOL will be notified from UI. Driver will be continuing to get request for pool until he has capacity to take user in the Car.
It will be real-time decided that what will be the next action for Driver. Based on the nearest Destination Driver will be dropping or picking up the User. Path for each user from source to destination may get changed based on the request coming while driver is on the ride.
Pricing for Pool request will be fixed as per the initial estimation. It is not decided in prior what path will be followed to drop user from source to destination. Also, pricing will be based on the number of users in the request. The initial price shown is for one user and it will get multiplied by number of users travelling at the end.