Skip to content

Booking Flow

Matt Ginty edited this page Dec 13, 2015 · 26 revisions

Book WaiveCar and Commence Rental.

  1. user navigates to FIND WAIVECARS

  2. on FIND WAIVECARS:

  3. user selects a car:

1. `car` is available, goto 3
2. `car` is no longer available, show modal: `car is not available - OK`, goto 2.
  1. on BOOK WAIVECAR:

  2. user selects BOOK WAIVECAR, goto 4.

  3. user selects X, goto 2.

  4. Pre Booking:

  5. if user has not verified phone, include Verify Phone button and goto 5.

  6. if user has not verified email, include Verify Email button and goto 5.

  7. if user has not provided credit card, include Add Payment Method button and goto 5.

  8. if user has not provided license, include Add Driver's License button and goto 5.

  9. if user has not verified license, goto 6.

  10. if user has license + credit card + phone + email,

1. **`create booking with status : reserved`**,
2. start 15min timer (in API),
3. goto 8.
  1. on MISSING INFORMATION:

  2. user selects VERIFY PHONE, goto TBD.

  3. user selects VERIFY EMAIL, goto TBD.

  4. user selects ADD DRIVER'S LICENSE, goto TBD.

  5. user selects ADD PAYMENT METHOD, goto TBD.

  6. user selects CANCEL BOOKING, goto 2. (NB. not actually cancelling anything)

  7. on DRIVER'S LICENSE VALIDATION:

  8. user selects VALIDATE LICENSE, goto 7

  9. user selects CANCEL BOOKING, goto 2. (NB. not actually cancelling anything)

  10. License Validation:

  11. user receives SMS: 'You're License has been verified, continue with WaiveCar', goto 2.

  12. user receives SMS: 'You're License was not cleared for rental, please contact us on 555-5555 for more details.' end.

  13. on GET YOUR WAIVECAR:

  14. user selects GET DIRECTIONS, open default mapping app with address

  15. user selects CANCEL, go to CANCL-BOOKING-CONFIRMATION, update booking { status : cancelled }, goto 2.

  16. user arrives at car, goto 9.

  17. user takes more than 15 mins,

1.  **`API automatically updates booking { status : cancelled }`**,
2. show modal: 'Booking has been cancelled due to 15mins elapsing. please re-book. OK',
3. goto 2.
  1. on YOU'RE IN REACH:

  2. user selects UNLOCK, goto 10.

  3. user selects CANCEL BOOKING, update booking { status : cancelled }, goto 2.

  4. user selects REPORT PROBLEM, goto TBD

  5. Car Automation:

  6. API update booking { status : started }

  7. API remove 15min timer

  8. API can unlock car, goto 11.

  9. API cannot unlock car, goto 14 (or a copy of 14 since it is re-used).

  10. on VIDEO:

  11. user selects SKIP, goto 12.

  12. on ARE YOU READY:

  13. user selects CONTINUE, goto 13.

  14. user selects REPORT A PROBLEM, goto TBD

  15. Car Automation:

  16. if API confirms key is out, unlock immobilzer​, start timers, goto 15.

  17. if API confirms key is in, show modal: 'Key is still in the Key Holder, OK', goto 12.

  18. on CONNECTION FAILED:

update screen to show actual issue based on API response

  1. user selects CANCEL, goto TBD

  2. user selects RETRY, goto 13.

  3. on DASHBOARD:

  4. user selects LOCK CAR, show modal / call API to confirm key placement?

  5. user selects END RIDE, goto TBD

  6. user selects (!), goto TBD

  7. user selects location (station, valet, or homebase), show location sub-view.

1. `user` selects SEE DETAILS, expand content area.
2. `user` selects HIDE DETAILS, collapse content area.
3. `user` clicks outside of content area, close location sub-view.
Clone this wiki locally