Use Cases - CMPUT301F16T18/Unter GitHub Wiki

Requests

UC 1.1

Item Description
Title RiderRequestsRide
Primary Actor Rider
Goal Request rides between two locations
Trigger The rider clicks the request ride button
Precondition The rider knows the pickup location and destination
Postcondition On success the rider sends a ride request
Basic Flow
  1. Rider enters pickup location and destination
  2. System suggest user the estimate fair
  3. Rider may accept the price or specify another price
  4. Rider sends out the request
  5. System sends request to drivers
Exceptions
  • Application lost connection to the server
  • System fails to send request
Related Use Cases UC 1.6, UC 10.1
Related User Stories US 01.01.01, US 01.06.01, US 10.01.01
Test Cases RM1 RM4 A1

UC 1.2

Item Description
Title RiderChecksRequests
Primary Actor Rider
Goal See current open requests
Trigger The user clicks the view current requests button
Precondition The user has open requests and would like to see them
Postcondition On success, the user sees a list of their open requests
Basic Flow
  1. User clicks the button
  2. System loads open request
  3. User sees current open request
Exceptions
  • Application lost connection to the server
  • System fails to load request
  • Rider has no open requests
Related Use Cases UC 2.1
Related User Stories US 01.02.01, US 02.01.01
Test Cases RM2 A2

UC 1.3

Item Description
Title NotifyRiderRequestAccepted
Primary Actor Rider
Goal Notify rider request is accepted
Trigger The driver accepts ride request
Precondition The rider already requests a ride
Postcondition On success the rider may see a message that indicates the request has been accepted by the driver
Basic Flow
  1. System prompts a dialog or notification bar indicates rider that the request has been accepted
Exceptions
  • Application lost connection to the server
Related Use Cases UC 5.1
Related User Stories US 01.03.01, US 05.01.01
Test Cases A1

UC 1.4

Item Description
Title RiderCancelRequest
Primary Actor Rider
Goal The rider can cancel a previously made request
Trigger The rider clicks the cancel request button of the corresponding request
Precondition The rider already send a request and would like to cancel it
Postcondition On success the request will be cancel
Basic Flow
  1. Rider clicks the view current requests button
  2. Rider clicks the request to cancel
  3. Rider click the confirm request button
  4. System cancels the ride request
Exceptions
  • Application lost connection to the server
  • System fails to cancel request
Related Use Cases UC 1.2
Related User Stories US 01.02.01, US 01.04.01
Test Cases RM3 RM1

UC 1.5

Item Description
Title RiderContactsDriver
Primary Actor Rider
Goal Call or email the driver who accepted a request
Trigger The rider clicks the contact driver button
Precondition The rider already request a drive and the request has been accepted, also the rider would like to contact the driver
Postcondition On success the rider may talk or send an email to the driver
Basic Flow
  1. Rider clicks the view current requests button
  2. Rider clicks the corresponding request
  3. System prompts rider whether he would like to email or call the driver
  4. Rider clicks the email or call button
  5. System would contacts the driver
Exceptions
  • Application lost connection to the server
  • System fails to load driver profile
Related Use Cases UC 1.2, UC 3.1, UC 3.3
Related User Stories US 01.02.01, US 01.05.01, US 03.01.01, US 03.03.01
Test Cases RM1 UM2 A2

UC 1.6

Item Description
Title RiderConfirmsComplete
Primary Actor Rider
Goal Confirm completion of request and pay
Trigger The rider clicks the complete request button
Precondition The rider arrives at the destination, and would like to complete the order
Postcondition On success the rider confirmed the request, and the driver gets the money
Basic Flow
  1. Rider clicks the view current requests button
  2. Rider clicks the corresponding request
  3. System prompts rider to complete the request
  4. Rider confirms completion
  5. System gives money to the driver
Exceptions
  • Application lost connection to the server
  • System fails to confirm request
Related Use Cases UC 1.2, UC 1.7
Related User Stories US 01.02.01, US 01.06.01, US 01.07.01
Test Cases RM1 RM5

UC 1.7

Item Description
Title RiderConfirmDriver
Primary Actor Rider
Goal Confirm driver's acceptance; rider can choose if there are more than one drivers accept the request
Trigger The rider selects one of those drivers
Precondition The rider already sent a request, and there are more than one driver accepts simultaneously
Postcondition On success the rider accepts the request
Basic Flow
  1. Rider clicks the view current requests button
  2. Rider clicks the corresponding request
  3. Rider may see a list of accepted driver
  4. Rider clicks one of them
  5. System prompts rider to confirm
  6. Rider confirms
  7. System updates it to the server
Exceptions
  • Application lost connection to the server
  • System fails to confirms the request
Related Use Cases UC 1.2
Related User Stories US 01.08.01
Test Cases RM6 RM1

UC 1.8

Item Description
Title RiderGetVehicleDescription
Primary Actor Rider
Goal The rider is provided with the description of their driver's vehicle
Trigger The rider chooses to display their driver's vehicle description
Precondition A driver accepts the rider's request and the rider makes confirmation
Postcondition On success, the rider is provided with the details of the driver's vehicle
Basic Flow
Exceptions
  • Application lost connection to the server
  • Rider has no confirmed requests
  • The driver did not upload a vehicle description
Related Use Cases UC 1.6, UC 2.3, UC 5.1
Related User Stories US 01.02.01, US 01.06.01, US 01.07.01, US 01.09.01, US 4.01.01, US 04.02.01, US 05.01.01
Test Cases A2

User Profile

UC 2.1

Item Description
Title ShowUserProfile
Primary Actor User
Goal User's profile is displayed
Trigger The user clicks the view profile button
Precondition The user would like to look at his profile
Postcondition On success the user may see his username and contact information
Basic Flow
  1. User click the user profile button
  2. System loads user profile from local or the server and display it
Exceptions
  • Application lost connection to the server
  • System fails to load user profile
Related User Stories US 03.01.01
Test Cases UM2

UC 2.2

Item Description
Title EditUserProfile
Primary Actor User
Goal The use would like to edit his profile
Trigger The user clicks the save button at the profile page
Precondition The user would like to edit his contact information, and he already opens the user profile page
Postcondition On success the user's contact information should be changed
Basic Flow
  1. User edits the profile
  2. User clicks the save button
  3. Systems save changes and upload it the server
Exceptions
  • Application lost connection to the server
  • System fails to load user profile
  • System fails to save changed user profile
Related Use Cases UC 2.1
Related User Stories US 03.01.01, US 03.02.01
Test Cases UM1 UM2

UC 2.3

Item Description
Title ProvideVehicleDetails
Primary Actor User
Goal The use would like to add the details of their vehicle
Trigger The user inputs their data and clicks the save button on the Vehicle Details page
Precondition The user would like to upload their vehicle details and already has a profile
Postcondition On success the user's vehicle details should be changed
Basic Flow
  1. User uploads vehicle data
  2. User clicks the save button
  3. Systems save changes and upload it the server
Exceptions
  • Application lost connection to the server
  • System fails to load user profile
  • System fails to save changed user profile
Related Use Cases UC 2.1, UC 2.2, UC 1.8
Related User Stories US 1.09.01, US 03.01.01, US 03.02.01
Test Cases A7

Searching

UC 4.1

Item Description
Title BrowseByLocation
Primary Actor Driver
Goal Browse and search for requests by location
Trigger The driver clicks the search by geo-location button
Precondition The driver would like to browse and search for open requests by geo-location, and there is open request exist.
Postcondition On success the driver may see a list of matching requests
Basic Flow
  1. Driver searches for available requests near their location
  2. System displays open requests based on the given location
Exceptions
  • Application lost connection to the server
  • No requests in their area
Related User Stories US 04.01.01
Test Cases A4 RM1

UC 4.2

Item Description
Title BrowseByKeyword
Primary Actor Driver
Goal Browse and search for requests by keyword
Trigger The driver clicks the search by keyword button
Precondition The driver would like browse and search for open requests by keywords
Postcondition On success the driver may see a list of matching requests
Basic Flow
  1. Driver chooses to search for open requests by keyword
  2. System prompts them to input their keyword(s)
  3. System displays available requests with the specified keyword
Exceptions
  • Application lost connection to the server
  • No requests with the matching keyword(s)
Related User Stories US 04.02.01
Test Cases A4 RM1

UC 4.3

Item Description
Title FilterByPrice
Primary Actor Driver
Goal Filter the request search result
Trigger The driver clicks the filter button
Precondition The driver would like browse and search for open requests by a specified price range, and already have search result
Postcondition On success the driver may see a list of matching requests
Basic Flow
  1. Driver clicks the filter button and set price range
  2. System prompts them to input their price range
  3. System displays available requests within the specified range
Exceptions
  • No requests within the specified price range
Related User Stories US 04.03.01
Test Cases A4

UC 4.4

Item Description
Title BrowseByAddress
Primary Actor Driver
Goal Browse and search for requests by a given address
Trigger The driver clicks the search by address button
Precondition The driver would like browse and search for open requests matching a specified address
Postcondition On success the driver may see a list of matching requests
Basic Flow
  1. Driver chooses to search for open requests by address
  2. System prompts them to input the address
  3. System displays available requests matching the address
Exceptions
  • Application lost connection to the server
  • No requests match the input address
Related User Stories US 04.04.01 US 04.05.01
Test Cases A4

Accepting

UC 5.1

Item Description
Title AcceptRequest
Primary Actor Driver
Goal As a driver, accept a request
Trigger The driver clicks the accept request button.
Precondition The driver would like to accept the request and agrees to the terms (ie. fare, distance, etc.)
Postcondition On success, the driver can see that they have accepted the request and a notification is sent to the rider: UC 1.3.
Basic Flow
  1. The driver browses for open ride requests
  2. The system displays open requests based on the driver's search
  3. The driver sees a request they agree with and choose to accept it
Exceptions
  • Application lost connection to the server
  • Rider cancels request
  • There are no open requests
Related Use Cases UC 4.1, UC 4.2
Related User Stories US 4.01.01, US 04.02.01, US 05.01.01
Test Cases RM7 RM1

UC 5.2

Item Description
Title ViewAccepted
Primary Actor Driver
Goal View list of accepted requests with descriptions and locations
Trigger The driver presses view accepted requests button
Precondition The driver wishes to view one (or all) of their accepted requests
Postcondition On success, the driver is provided a list of their accepted requests, with their details, as per UC2.1.1
Basic Flow
  1. Diver chooses to view their accepted requests
  2. System provides them with a clickable list of their accepted requests
Exceptions
  • Rider cancels request
  • No accepted requests
Related User Stories US 05.02.01
Test Cases RM1

UC 5.3

Item Description
Title ViewRiderAcceptance
Primary Actor Driver
Goal See if a rider accepted the driver's offer
Trigger The rider accepted the driver
Precondition The driver accepted a request
Postcondition On success, the driver gets a notification and must now fulfill their commitment
Basic Flow
  1. The driver accepts a request
  2. The rider is notified that their request has been accepted
  3. The rider approves of the driver
  4. The driver receives a notification saying they've been accepted by the rider
Exceptions
  • Application lost connection to the server
  • Rider rejects the driver
  • Rider cancels request
Related Use Cases UC 5.1, UC 5.4, UC 1.7, UC 1.3
Related User Stories US 01.03.01, US 01.08.01, US 05.01.01, US 05.03.01
Test Cases RM1

UC 5.4

Item Description
Title NotifyDriverAccepted
Primary Actor Driver
Goal Notify driver if ride offer was accepted
Trigger The rider accepted the driver's offer as per UC 1.8
Precondition The driver accepted a request and the rider agrees to their offer
Postcondition On success, the driver may see a message that indicates they have been selected
Basic Flow
  1. The driver accepts a request
  2. The rider accepts their offer
  3. System provides the driver with a notification saying they've been selected
Exceptions
  • Application lost connection to server
  • Driver was not selected
  • RIder cancels request
Related Use Cases UC 5.1, UC 5.3, UC1.3, UC 1.7
Related User Stories US 01.03.01, US 01.08.01, US 05.01.01, US 05.03.01
Test Cases A5

Offline Behaviour

UC 8.1

Item Description
Title ViewAcceptedOffline
Primary Actor Driver
Goal See previously accepted requests when offline
Trigger The driver clicks view accepted requests button
Precondition The driver is offline and wishes to view their accepted request(s)
Postcondition On success, the driver can view a request they have accepted (while previously online) as per UC2.1.1
Basic Flow
  1. The driver has previously accepted requests while online
  2. The driver chooses to view their accepted requests and is now offline
  3. The system displays the list of previously accepted requests
Exceptions
  • The driver has no previously accepted requests
Related Use Cases UC 5.2
Related User Stories US 05.02.01, US 08.01.01
Test Cases U1 A6

UC 8.2

Item Description
Title ViewRequestsOffline
Primary Actor Rider
Goal View previously made requests when offline
Trigger Rider presses view current requests button while offline
Precondition The rider is offline and wishes to view their requests made while previously online
Postcondition On success, the offline rider should see the requests they made while online
Basic Flow
  1. The rider has previously made requests while offline
  2. The rider is now offline and wishes to view their requests
  3. The system provides them with a list of their requests
Exceptions
  • The rider has no previously made requests
Related Use Cases UC 1.2
Related User Stories US 01.02.01, US 08.02.01
Test Cases U1 A2

UC 8.3

Item Description
Title RequestUponReconnect
Primary Actor Rider
Goal Make requests while offline that will be sent once reconnected
Trigger The rider sends a request while disconnected.
Precondition While offline, the rider generates and sends a request
Postcondition On success, the generated request should send automatically upon reconnecting
Basic Flow
  1. The rider is offline and wishes to request a ride
  2. The system caches the request and upon reconnecting, forwards it
Exceptions
  • The system fails to send the request
Related Use Cases UC 1.1
Related User Stories US 01.01.01, US 01.06.01, US 08.03.01, US 10.01.01
Test Cases U1

UC 8.4

Item Description
Title AcceptRequestUponReconnect
Primary Actor Driver
Goal Accept requests while offline that will be sent once reconnected
Trigger The driver presses the accept button while offline
Precondition The driver is offline and accepts a ride request
Postcondition On success, the acceptance will be sent automatically upon reconnecting
Basic Flow
  1. The driver is offline and views available requests
  2. The driver chooses to accept one of the requests
  3. Upon reconnecting to the server, the system forwards the accept
Exceptions
  • Rider cancels request before the driver reconnects
Related Use Cases UC 5.1
Related User Stories US 04.01.01, US 04.02.01, US 05.01.01, US 08.04.01
Test Cases U1

Location

UC 10.1

Item Description
Title SpecifyStartEnd
Primary Actor Rider
Goal Specify start and end locations on a map for a request
Trigger The rider clicks the select start/end buttons
Precondition The rider generates a request
Postcondition On success, the rider should be able to specify their desired start/end and should be able to review the locations before sending request
Basic Flow
  1. The rider generates a new request
  2. System prompts rider to input start/end locations
Exceptions
  • Application disconnected from server
  • Invalid location
  • Error with map API
Related Use Cases UC 1.1
Related User Stories US 01.01.01, US 01.06.01, US 10.01.01
Test Cases A1

UC 10.2

Item Description
Title ViewStartEnd
Primary Actor Driver
Goal View start and end locations on a map for a request
Trigger The driver opens the request to see its details
Precondition The driver searches for ride requests and selects one
Postcondition On success, the driver should see, on a map, the start and end locations of the request
Basic Flow
  1. The driver selects a request from their search results
  2. The system displays the request along with the start/end destinations
Exceptions
  • Application disconnected from server
  • Error with map API
Related Use Cases UC 4.1, UC 4.2
Related User Stories US 04.01.01, US 04.02.1, US 10.02.01
Test Cases A1
⚠️ **GitHub.com Fallback** ⚠️