voteamerica / voteamerica.github.io

Front end for the Carpool Vote website. Support every American's right to vote!
http://www.carpoolaction.org/
MIT License
38 stars 50 forks source link

Back-end - Display when a driver has available seats after a trip is assigned (or is willing to make multiple trips) #389

Closed jkbits1 closed 5 years ago

jkbits1 commented 5 years ago

There is an existing issue about new functionality https://github.com/voteamerica/voteamerica.github.io/issues/359 but this feature is not specified there

EDIT: this original comment is more of a distraction, so has been struck out

jkbits1 commented 5 years ago

I've some ideas for this that aren't too difficult to implement and work with the system as it is now

EDIT: these ideas have been added, see comments below

jkbits1 commented 5 years ago

The following issues relate to this

265

354

335

265

NOTE: there are two situations here - 1) drivers have multiple seats and a rider does not use them all. 2) a driver is booked for all seats but is willing to make multiple journeys in their time slot

jkbits1 commented 5 years ago

Situation 1 - a driver with more than one seat available can be handled manually or by the system. Manual method - after a match is made, the operator can re-enter the driver details with the remaining seats (a hassle for the operator, true) System method - this could be done automatically or through an operator page notification in this way: the entry in the driver table could be updated after a match is accepted to adjust the seat count to be the amount needed by the rider. A new driver entry (with a new uuid) can be created with the seat count as the remaining seats.

This method also makes it possible for driver or operator to ignore or cancel the second or later rides without cancelling the first (although confusion is possible, perhaps)

jkbits1 commented 5 years ago

Situation 2 - somewhat thinking aloud on this one but it seems possible to do this by simply changing some text on the front-end (especially now the operator is directing the system) if the method for Situation 1 is adopted. If the text is changed to suggest that the Seat count field represents either the precise seat count or a willingness to make multiple trips, the system will behave in a sensible and predictable way in both situations.

There are two big benefits here. 1) there are mininum system changes - less dev time and less testing 2) the driver is put in clear control of the situation by their own choices. For me, the latter is especially important. I am aware that other volunteers on Carpool Vote are keen to encourage drivers to make multiple trips (c.f. the related issues reference in a comment above) and it is certainly true that many drivers want to help as many riders as possible. However, this may not be true of all drivers, and other drivers may be willing but confused by multiple proposed rides without a clear explanation.

stephenscapelliti commented 5 years ago

Could we allow the driver to accept the additional riders and/or trips between the Start time and End time on the signup page, and also allow the driver to remove him/her/themself from availability for additional riders, through two separate options?

Example: I am willing to consider multiple trips, with a :ballot_box_with_check: box.

If the option is not selected (i.e., box not checked), the driver will be matched to the first rider location available and then removed from availability. If the option is selected (i.e., box checked), the driver remains available for additional signups by others. If others sign up within the driver's availability window, notify the driver and provide the driver an option to manually accept those other rider locations, with an option to be removed from further availability (or just give the driver an option to select from all rider locations).

Example: Rider #1, 135 Main Street at 1pm Rider #2, 248 Main Street at 1:15pm Rider #3, 250 Main Street at 3pm Driver Unavailable with a :ballot_box_with_check: box next to each.

Scenario 1 - Two or more separate riders (or rider groups) sign up at the same time. This could result in the driver combining both riders in a single trip (assuming the rider locations are convenient for the driver), or in transporting one set of riders from their pickup location to their destination and then returning to retrieve other matched riders. If the driver has selected the option to accept multiple trips/locations, the driver now can decided for him/her/themself how to map out the trip(s) and which of the riders to accept.

Scenario 2 - Two or more separate riders (or rider groups) in the same area sign up for different times. If the driver has selected the option for multiple trips, both would appear on the driver's list, and the driver would have the option of accepting multiple trips. Really not much different from Scenario 1.

In either Scenario, this would give control to the driver to decide best how to volunteer.

jkbits1 commented 5 years ago

Fixed by #410 and https://github.com/voteamerica/backend/pull/234

@stephenscapelliti it seems the system continues to propose matches to a driver after a match is confirmed, so that handles that part of things.

I've updated the operator page to show details for a driver with multiple matches, available seats etc.

However, a useful discussion to keep in the gitBook, perhaps 📖