-
Notifications
You must be signed in to change notification settings - Fork 5
Requirements Specifications
Use Case: 1
ID: US 01.01.01
Story: One
Description:
A casual rider's car will not start and is in a rush to arrive. He uses a2b by selecting the start and end locations for the trip, and then requesting a ride between those two locations.
Primary Actor: The casual rider
Supporting Actor(s): Any drivers considering the request
Goal: To submit a request for a ride between the two locations to the a2b system.
Pre-conditions:
- App has access to the internet.
Post-conditions:
- A request between the two locations is submitted to a2b servers.
Basic Flow:
- 1 The (logged in) rider selects a starting location
- 2 The rider selects an end location
- 3 The rider submits the request (with a fare offer?)
Exceptions:
- 1 - If there is no internet connection, system displays an error, loops to step 1 (eventually will use use case 21 instead - v2.0?)
Use Case: 2
ID: US 01.02.01
Story: Two
Description:
A casual rider is unsure of what/how many current requests they have. She would like to use a2b to view a list of these current requests.
Primary Actor: The casual rider
Supporting Actor(s): N/A
Goal: To view all current ride requests.
Pre-conditions:
- App has access to the internet.
Post-conditions:
- All ride requests, if any, are displayed in a clear fashion.
Basic Flow:
- The (logged in) rider selects a button to view current requests
- A list of current requests (if any) is populated and displayed to the rider
Exceptions:
- N/A
Use Case: 3
ID: US 01.03.01
Story: Three
Description:
A casual rider should be notified of whether or not his request has been accepted in real time.
Primary Actor: The casual rider
Supporting Actor(s): Driver(s) who have accepted the request
Goal: To immediately notify the rider of an accepted request when a driver chooses to do so
Pre-conditions:
- Rider has submitted at least one request
- At least one driver has accepted said request
Post-conditions:
- The rider has been notified of the acceptance over the standard android notification system
Basic Flow:
- 1 A notification appears on the rider's device
Exceptions:
- If the rider is not connected to the internet
- The data should be stored and sent as soon as the device connects
Use Case: 4
Story: Four
ID: US 01.04.01
Description:
A casual rider had submitted a request, but no longer wishes to employ the services of an a2b driver.
Primary Actor: The casual rider
Supporting Actor(s): N/A
Goal: To cancel a current ride request
Pre-conditions:
- At least one ride request exists
Post-conditions:
- The ride request in question is cancelled
Basic Flow:
- 1 The (logged in) rider selects a button to view current requests
- 2 A list of current requests (if any) is populated and displayed to the rider
- 3 The rider selects one of the current requests and views its details
- 4 The rider selects a delete button and a dialog confirms the rider would like to delete the request
- 5 The request is deleted
- 6 The app returns to main activity
Exceptions:
- If the system cannot access the internet or cannot cancel the request for any reason
- The rider is notified and given the opportunity to try again
Use Case: 5
ID: US 01.05.01
Story: Five
Description:
A casual rider would like to get in contact with a driver who has accepted one of their requests, either by phone number or by email.
Primary Actor: The casual rider
Supporting Actor(s): The driver who has accepted the rider's request
Goal: To provide the contact information of a driver who has accepted a rider's request to said rider
Pre-conditions:
- App has access to the internet
- At least one request has been made by the rider
- The driver has accepted at least one request made by the rider
Post-conditions:
- The driver's contact information is presented to the rider in a clear, readable fashion
Basic Flow:
- 1 The (logged in) rider selects a button to view current accepted requests
- 2 The rider selects an accepted request
- 3 The rider selects a button to view details about the driver who accepted the request
- 4 The contact information of the driver is presented to the rider
Exceptions:
- Contact information not found
- In this case the system should make an immediate note as all users should have signed up with contact information
- Internet connection not working
- The rider should be notified that their connection is not working and given the opportunity to attempt the operation again
Use Case: 6
ID: US 01.06.01
Story: Six
Description:
A casual rider would like to use the app to provide an reasonable estimation of a fair fare to offer for a trip between two locations.
Primary Actor: The casual rider
Supporting Actor(s): N/A
Goal: To provide a reasonable estimation of a fair fare to offer for a trip between two locations.
Pre-conditions:
- App has access to the internet
- Rider has selected a start and end location
Post-conditions:
- A fare estimate based on distance between the two locations and time of day/availability of drivers.
Basic Flow:
- 1 The (logged in) rider selects the start and end locations
- 2 The rider selects a button that provides a fair suggestion
- 3 A fair suggestion is presented to the rider
Exceptions:
- N/A
Use Case: 7
ID: US 01.07.01
Story: Seven
Description:
A rider confirms that a request has been completed and officially transfer payment.
Primary Actor: The casual rider
Supporting Actor(s): The driver who has completed the rider's request
Goal: For the rider to close a request as completed and complete payment to the driver
Pre-conditions:
- Driver has accepted and completed the rider's request
- The rider had confirmed the acceptance
Post-conditions:
- The request is closed as completed, and the rider's payment information is processed.
Basic Flow:
- 1 The (logged in) rider selects a confirm that they have arrived at the destination
- 2 The rider selects the payment option
Exceptions:
- 2 Valid Payment information not found -> input payment information
Use Case: 8
ID: US 01.08.01
Story: Eight
Description:
A casual rider would like to confirm an acceptance of their request.
Primary Actor: The casual rider
Supporting Actor(s): The driver who has accepted the rider's request
Goal: To confirm the acceptance of a request.
Trigger: The rider hits the "confirm" button for the request
Pre-conditions:
- At least one request has been made by the rider
- At least one request has been accepted by the driver
Post-conditions:
- The driver will provide the rider with a ride
- The rider will provide the driver with the agreed upon payment
Basic Flow:
- 1 The (logged in) rider selects a button to view current accepted requests
- 2 The rider selects an accepted request
- 3 The rider confirms this acceptance by touching a button
- 4 A dialog confirms to the rider that the confirmation has been completed
Exceptions:
- N/A
Use Case: 9
ID: US 02.01.01
Story: Nine and Ten
Description:
A user (rider or driver) would like to view the status of a request that they have either made, accepted or confirmed.
Primary Actor: The user (rider or driver)
Supporting Actor(s): N/A
Goal: To view the status of a request
Trigger: The user selects the detail view of a request
Pre-conditions:
- At least one request has been made or accepted by the user
Post-conditions:
- The status of the request is not effected by this action
Basic Flow:
- 1 The (logged in) user selects a button to view current requests involving them
- 2 The user selects the request in question
- 3 A detail view (activity) is loaded
Exceptions:
- 2 Request not found -> return to 1
Use Case: 10
ID: US 03.01.01
Story: Eleven
Description:
A user creates a profile with a unique username and their contact information
Primary Actor: The user
Supporting Actor(s): N/A
Goal: To create a profile for the user with a unique username and contact information
Trigger: The user hits the "sign up" button
Pre-conditions:
- Connection to the internet
Post-conditions:
- The account and account information is update
- The user is automatically signed into the service
Basic Flow:
- 1 The user views the welcome page
- 2 The user selects "sign up"
- 3 The user is prompted to enter a unique username
- 4 The user is prompted to enter contact info (phone number, email)
- 5 The user's account is recorded
- 6 The user is automatically signed in
Exceptions:
- 3 The username chosen is not unique -> loop to 3 until unique
- 4 Invalid phone number, email -> loop to 4 until valid
- 5 Cannot record account -> notify the user and reset to step 1
- 5 sign in failed -> notify the user and reset to step 1
Use Case: 11
ID: US 03.02.01
Story: Twelve
Description:
A user would like to edit the contact information in their profile
Primary Actor: The user (rider or driver)
Supporting Actor(s): N/A
Goal: To edit the profile for the user
Trigger: The user hits the "edit" button in "myprofile"
Pre-conditions:
- Connection to the internet
- The user is logged in
- The user is in the "myprofile" view
Post-conditions:
- The account information is updated
Basic Flow:
- 1 The user views the main page
- 2 The user selects my profile button
- 3 The user selects the edit button
- 4 The user is prompted to edit contact info (phone number, email)
- 5 The user's changes are recorded upon hitting "save"
- 6 Return to main screen
Exceptions:
- 4 Invalid contact info -> Return to 2 after notifying the user
- 5 Changes could not be saved -> Notify the user and return to 2
Use Case: 12
ID: US 03.03.01
Story: Thirteen
Description:
A user would like to find out more information about another user
Primary Actor: The user
Supporting Actor(s): The other user (who primary actor is finding info about)
Goal: To view the contact information for another user
Trigger: The user hits the "clickable" username in any view
Pre-conditions:
- Connection to the internet
- Logged in
- Access to the username (ie there is no "search for users" functionality)
Post-conditions:
- N/A
Basic Flow:
- 1 The user views any page with another username on it
- 2 The user selects the username
- 3 The user is presented with the contact information associated with that username
Exceptions:
- 3 User not found -> back to 1
Use Case: 13
ID: US 04.01.01
Story: Fourteen
Description:
A driver browses through nearby (or to any geo-location) requests
Primary Actor: The driver
Supporting Actor(s): Riders placing requests
Goal: To view nearby requests (what should this radius be?)
Trigger: The driver requests to view requests near a specific geolocation
Pre-conditions:
- Connection to the internet
Post-conditions:
- Should not have any effect on requests, status, etc
Basic Flow:
- 1 The driver views the main page
- 2 The driver selects a geolocation, either their current location or manually
- 3 The driver touches the search for requests nearby button
Exceptions:
- 2 Cannot find location -> reset to 1
Use Case: 14
ID: US 04.02.01
Story: Fifteen
Description:
A driver searches open requests using a keyword
Primary Actor: The driver
Supporting Actor(s): riders sending requests with relevant keyword
Goal: To display all requests containing the keyword in their description
Trigger: The driver chooses search by keyword
Pre-conditions:
- Connection to the internet
Post-conditions:
- Should not change any requests or statuses
Basic Flow:
- 1 The driver views the main page
- 2 The driver selects the search button
- 3 The driver chooses to search by keyword
- 4 The driver enters the keyword
- 5 A clickable list of corresponding open requests is displayed to the driver
Exceptions:
- 5 No corresponding requests found -> Loop back to 1 after notifying the driver
Use Case: 15
ID: US 05.01.01
Story: Sixteen
Description:
A driver wants to accept an open request as well as payment upon completion
Primary Actor: The driver
Supporting Actor(s): the rider
Goal: To accept an open request and payment
Trigger: The driver accepts an open request, and then completes said request
Pre-conditions:
- Connection to the internet
- An open request exists for the driver to accept
Post-conditions:
- The request is completed
- Payment has been made
- The driver has completed the request
Basic Flow:
- 1 The driver views open requests
- 2 The drives accepts a request
- 3 The rider confirms the acceptance
- 4 The driver drives the rider and marks the request as complete
- 5 The rider processes payment and marks the request as complete
Exceptions:
- 3 Rider does not confirm acceptance -> Timeout??
- 4 Driver does not drive the rider -> Give rider option to protest?
- 5 rider does not correctly process payment -> notify the rider
Use Case: 16
ID: US 05.02.01
Story: Seventeen
Description:
A driver views all pending accepted requests
Primary Actor: The driver
Supporting Actor(s): Riders who submitted the accepted requests
Goal: To display all pending accepted requests for the driving, including location, description and confirmation status
Trigger: The driver hits the "pending requests" button
Pre-conditions:
- Connection to the internet
- Logged in
Post-conditions:
- No change in status or requests
Basic Flow:
- 1 The driver selects the pending requests button
- 2 The driver is shown a list of pending requests (if any) that he/she has accepted
- 3 Touching a specific requests brings up a detailed view including location, confirmation status, time, etc
Exceptions:
- 2 No requests found -> Notify user and return to main screen
Use Case: 17
ID: US 05.03.01
Story: Eighteen
Description:
A driver wants to see if an accepted request is confirmed
Primary Actor: The driver
Supporting Actor(s): The rider confirming the acceptance
Goal: To display confirmation status of an accepted request
Trigger: The driver selects a specific accepted request from the pending requests list
Pre-conditions:
- Connection to the internet
- pending requests list is up
- At least one pending/accepted request exists
Post-conditions:
- Should not change requests or status
Basic Flow:
- 1 The driver selects a specific pending request from pending requests list (see case 16)
- 2 The confirmation status of the request is displayed
Exceptions:
- 1 There are no pending requests -> See use case 16 exceptions
Use Case: 18
ID: US 05.04.01
Story: Nineteen
Description:
A driver is notified when an acceptance (an open request marked as accepted) has been confirmed by a rider
Primary Actor: The driver
Supporting Actor(s): the rider
Goal: To notify the driver of a confirmed acceptance
Trigger: The rider confirms the acceptance
Pre-conditions:
- Connection to the internet
- Logged in
- Driver has accepted at least one request
Post-conditions:
- An android system notification has appeared notifying the driver of the confirmation
Basic Flow:
- 1 The rider confirms the acceptance
- 2 A notification appears on the driver's device, informing of this development
Exceptions:
Use Case: 19
ID: US 08.01.01
Story: Twenty
Description:
Offline storage of accepted requests (by driver)
Primary Actor: the driver
Supporting Actor(s): riders submitting requests
Goal: To allow the driver to view accepted requests even while offline
Trigger: The driver loads the "pending requests" view
Pre-conditions:
- No connection to internet
- the driver has accepted at least one request
Post-conditions:
- No change in requests or status
Basic Flow:
- 1 The driver views the main page
- 2 The driver selects pending requests
- 3 The driver is notified that he/she is offline and cached data will be used
- 4 The driver selects the "accepted" option from the dropdown
- 5 The accepted requests are presented to the driver in a clickable listview
Exceptions:
- 3 No pending requests found in cache -> Notify user and reset to 1
Use Case: 20
ID: US 08.02.01
Story: Twenty-one
Description:
A rider views requests they have submitted despite not being connected to the internet
Primary Actor: The rider
Supporting Actor(s): N/A
Goal: To allow the rider to view submitted requests even without internet connection (ie cached submitted requests)
Trigger: The rider selects the "my requests" option from the dropdown menu in the
Pre-conditions:
- No connection to internet
- The rider has submitted at least one request
Post-conditions:
- No change in status or requests
Basic Flow:
- 1 The rider views the main page
- 2 The rider selects "pending requests"
- 3 The rider is warned that they are offline and cached data will be used
- 4 The rider is selects "my requests" from the dropdown filter menu
- 5 A clickable listview of the pending requests from this rider is displayed
Exceptions:
- 3 No pending requests found in cache -> reset to 1 after notifying the rider
Use Case: 21
ID: US 08.03.01
Story: Twenty-two
Description:
A rider makes a request while offline, to be immediately sent once connectivity is restored.
Primary Actor: The rider
Supporting Actor(s): N/A
Goal: To store a request offline until connectivity is restored, at which point to submit said request
Trigger: The user creates a new request while offline
Pre-conditions:
- No internet connection
Post-conditions:
- Request is submitted upon re-connection
Basic Flow:
- 1 The rider views the main page
- 2 The rider selects the new request button
- 3 The rider fills out the details and submits the request as normal
- 4 The rider is notified that they are offline and the request will be saved and sent once connectivity is restored
Exceptions:
- See exceptions in case 1, these apply here as well (except for no internet connection)
Use Case: 22
ID: US 08.04.01
Story: Twenty-three
Description:
A driver accepts a request while offline to be sent once connectivity is restored
Primary Actor: The driver
Supporting Actor(s): the rider who sent the request
Goal: To store the acceptance until connectivity is restored, and then submit the acceptance
Trigger: The driver accepts a request in the usual manner while offline
Pre-conditions:
- No connection to the internet
- At least one request exists
Post-conditions:
- The request is accepted once connectivity is restored
Basic Flow:
- 1 The driver views the main page
- 2 The driver views (cached) pending requests
- 3 The driver is warned that he/she is offline and cached data will be used
- 4 The driver selects "not accepted" from the dropdown filter menu
- 5 The driver selects a specific request
- 6 The driver selects "accept" while in the detailed view
- 7 When connectivity is restored, the acceptance is sent
Exceptions:
- 3 There are no cached requests -> notify the driver and reset to 1
Use Case: 23
ID: US 10.01.01
Story: Twenty-four
Description:
Specifiy start and end locations on a map for a request
Primary Actor: The rider
Supporting Actor(s): N/A
Goal: To set location data on requests by geolocation on visual map.
Trigger: The rider selects the first geolocation on the map
Pre-conditions:
- Connected to the internet
- Location services??? - Do we actually need this?
Post-conditions:
- The rider is in a position where they can complete their request (with other details) involving these two geolocations
Basic Flow:
- 1 The rider selects a location on the map
- 2 The rider selects the second location on the map
- 3 The rider chooses to make a new request
Exceptions:
- N/A
Use Case: 24
ID: US 10.02.01
Story: Twenty-five
Description:
A driver views start and end locations associated with a request directly on a map
Primary Actor: The driver
Supporting Actor(s): the rider who sent the request
Goal: To display the start and end geo locations of the request on the map
Trigger: The driver selects "view" in the request detail page
Pre-conditions:
- At least one request exists
Post-conditions:
- The locations are shown on the map
- Should not effect status or requests
Basic Flow:
- 1 The driver views the main page
- 2 The driver views pending requests
- 3 The driver enters the detail view for a specific request
- 4 The driver selects "view"
- 5 The driver is shown the locations on a map
Exceptions:
- N/A
Use Case: 25
ID: US 1.09.01 (added 2016-11-14)
Story: 26
Description:
A user using A2B has requested a ride to a destination. A driver nearby has accepted his request and is on his way. The user in need of a ride would like to read a description of the driver’s car so he he/she knows what to look for.
Primary Actor: The casual rider
Supporting Actor(s): Any drivers that have accepted the riders request
Goal: to provide the rider a description of the driver’s vehicle
Pre-conditions:
- User has at least one of his ride requests accepted by a driver
Post-conditions:
- The rider will see a description of the driver’s vehicle on the app when looking at the driver’s profile or request detail
Basic Flow:
- 1 The (logged in) rider selects a starting location
- 2 The rider selects an end location
- 3 The rider submits the request (with a fare offer?)
- 4 A nearby driver accepts the riders request
- 5 the rider is sent a notification that his request has been accepted by a driver
- 6 the rider clicks on his accepted and request and clicks on the driver’s profile
- 7 profile should load for the driver and the user can see a description of the driver’s vehicle
Exceptions:
- 1 - If there is no internet connection, system goes to offline mode
Use Case: 26
ID: US 1.10.01 (added 2016-11-14)
Story: 27
Description:
A user has made a ride request and several drivers in the area has accepted his/her request. The user now with a couple choices of drivers wants to view these driver’s profiles and view their driver rating so that he can make an informed decision
Primary Actor: The rider
Supporting Actor(s): The drivers
Goal: To display the driver’s driver rating on his profile view
Trigger: The rider clicks on a driver’s profile
Pre-conditions:
-
None Post-conditions:
-
Profile view is loaded to the screen
-
User can see a rating for the selected driver
Basic Flow:
- 1 The rider makes a request for a ride between two locations
- 2 Three nearby drivers accept this request
- 3 The rider is given a notification that his ride has been accepted
- 4 The rider now sees a list of drivers willing to drive him and their respective ratings
Exceptions:
- No internet connection the user cannot see the driver
Use Case: 27
ID: US 1.11.01(added 2016-11-14)
Story: 28
Description:
A rider has received his ride to his/her location and is prompted to give the driver a rating for his overall A2B experience
Primary Actor: The rider
Supporting Actor(s): the driver who gave the ride
Goal: To give the driver of the ride a rating out of 5 for the rider’s overall experience
Trigger: The driver sends confirmation that he has given the ride and the rider sends payment, rider is then prompted to give a rating for the driver
Pre-conditions:
- Rider has received his ride
- Rider has sent payment
- Rider has been prompted for rating
-
Internet connection is available
Post-conditions:
- The drivers rating on his profile is now updated as the new average including the riders recent rating
Basic Flow:
- 1 The rider receives his ride
- 2 The rider sends payment for the ride
- 3 The rider is prompted to provide a rating for the ride
- 4 Rating is provided, drivers rating is queried from the elastic search server
- 5 new rating is now added to the sum of the other ratings to calculate a new average rating for the driver
- 6 Rating is now sent back to server for the driver
Exceptions:
- Rider can refuse to provide a rating in which case driver’s rating is unaffected
Use Case: 28
ID: US 03.04.01 (added 2016-11-14)
Story: 29
Description:
A driver wants to add a description of his vehicle for riders to view in his profile
Primary Actor: The driver
Supporting Actor(s): none
Goal: To add a description of the driver’s vehicle to his profile
Trigger: The driver clicks edit in the profile activity
Pre-conditions:
- Driver’s profile must already exist
-
Internet connection is available
Post-conditions:
- The vehicle description is now shown on the driver’s profile
Basic Flow:
- 1 The driver clicks to view his profile
- 2 The driver clicks edit
- 3 The driver types his vehicle description in the edit text view provided for his vehicle description
- 4 The driver clicks save
- 5 The driver data is sent to the server
Exceptions:
- Vehicle description is too long? Or too short?
Use Case: 29
ID: US 04.03.01 (added 2016-11-14)
Story: 30
Description: A driver wants to filter requests by price per KM or price
Primary Actor: The driver
Supporting Actor(s): none
Goal:
To display requests with a max value for price per KM or price
Trigger: The driver selects requests for price per KM or price
Pre-conditions:
- At least one request exists
-
Internet connection is available
Post-conditions:
- The requests that have been filtered are displayed to the driver
Basic Flow:
- 1 The driver clicks on the request page
- 2 The driver clicks the spinner and selects price per KM or price
- 3 dialog opens to ask the driver for a max price he wants to pay per KM or total price in general
- 4 Driver enters the wanted value
- 5 elasticsearch controller queries based on given information. Results are either requests with the total price given or price per km.
- 6 requests are printed and shown to the driver
Exceptions:
- Driver gives an invalid price(negative number)
Use Case: 30
ID: US 04.04.01 (added 2016-11-14)
Story: 31
Description:
A driver wants to view the addresses of the start and finish locations of a riders request
Primary Actor: The driver
Supporting Actor(s): the rider who sent the request
Goal: To display the start and end addresses of a request
Trigger: The driver selects "view" in the request detail page
Pre-conditions:
- At least one request exists
-
Internet connection is available
Post-conditions:
- The addresses of the start and end locations are shown to the driver
Basic Flow:
- 1 The driver clicks to see a list of requests
- 2 The driver clicks on one specific request
- 3 The driver is now presented a view of all the request details including the addresses of the start and end locations of the request
Exceptions:
Use Case: 31
ID: US 04.05.01 (added 2016-11-14)
Story: 32
Description:
A driver wants to search requests by address or nearby address
Primary Actor: The driver
Supporting Actor(s): none
Goal: To display requests based on a given address, it can be done either by direct match or nearby address
Trigger: The driver selects address or nearby address under the spinner selections when in the requests view
Pre-conditions:
- At least one request exists
- Connected to the internet
-
Internet connection is available
Post-conditions:
- The requests with the specific location included or nearby the location are displayed
Basic Flow:
- 1 The driver selects requests in the main menu
- 2 The driver either selects ‘nearby address’ or ‘address’ under the spinner menu for request filters
- 3 Dialog will pop up asking driver for the address to filter by
- 4 If driver selected nearby address then elastic search controllers will query server for requests that are within 5 km of the given address. If address was selected then only requests with locations with that specific address will be searched for
- 5 requests are displayed to the screen
Exceptions:
- non existent address is given
Taken From Project Description
Requests
US 01.01.01
As a rider, I want to request rides between two locations.
US 01.02.01
As a rider, I want to see current requests I have open.
US 01.03.01
As a rider, I want to be notified if my request is accepted.
US 01.04.01
As a rider, I want to cancel requests.
US 01.05.01
As a rider, I want to be able to phone or email the driver who accepted a request.
US 01.06.01
As a rider, I want an estimate of a fair fare to offer to drivers.
US 01.07.01
As a rider, I want to confirm the completion of a request and enable payment.
US 01.08.01
As a rider, I want to confirm a driver's acceptance. This allows us to choose from a list of acceptances if more than 1 driver accepts simultaneously.
US 1.10.01 (added 2016-11-14) As a rider, I want to see some summary rating of the drivers who accepted my offers.
US 04.03.01 (added 2016-11-14) As a driver, I should be able filter request searches by price per KM and price.
US 04.04.01 (added 2016-11-14) As a driver, I should be able to see the addresses of the requests.
Status
US 02.01.01
As a rider or driver, I want to see the status of a request that I am involved in
User profile
US 03.01.01
As a user, I want a profile with a unique username and my contact information.
US 03.02.01
As a user, I want to edit the contact information in my profile.
US 03.03.01
As a user, I want to, when a username is presented for a thing, retrieve and show its contact information.
US 1.09.01 (added 2016-11-14) As a rider, I should see a description of the driver's vehicle.
US 1.11.01 (added 2016-11-14) As a rider, I want to rate a driver for his/her service (1-5).
US 03.04.01 (added 2016-11-14) As a driver, in my profile I can provide details about the vehicle I drive.
Searching
US 04.01.01
As a driver, I want to browse and search for open requests by geo-location.
US 04.02.01
As a driver, I want to browse and search for open requests by keyword.
Accepting
US 05.01.01
As a driver, I want to accept a request I agree with and accept that offered payment upon completion.
US 05.02.01
As a driver, I want to view a list of things I have accepted that are pending, each request with its description, and locations.
US 05.03.01 As a driver, I want to see if my acceptance was accepted.
US 05.04.01
As a driver, I want to be notified if my ride offer was accepted.
US 04.05.01 (added 2016-11-14) As a driver, I should be able to search by address or nearby an address.
Offline Behaviour
US 08.01.01
As an driver, I want to see requests that I already accepted while offline.
US 08.02.01
As a rider, I want to see requests that I have made while offline.
US 08.03.01
As a rider, I want to make requests that will be sent once I get connectivity again.
US 08.04.01
As a driver, I want to accept requests that will be sent once I get connectivity again.
Location
US 10.01.01
As a rider, I want to specify a start and end geo locations on a map for a request.
US 10.02.01
As a driver, I want to view start and end geo locations on a map for a request.