User Cases - CMPUT301F16T01/Carrier GitHub Wiki
Request #1 | |
---|---|
Use Case Name | RiderRequest |
Description | As a rider, I want to request rides between two locations. |
Actors | Rider |
Goal | Rider is able to request a ride between two locations and are given visual indication that they have done so. |
Trigger | User initiates a ride request. |
Preconditions | Rider is logged in. |
Post conditions | The user is notified that their request has been made. |
Basic Flow |
|
Exceptions | 2.1 The rider specified a destination that is the same as the source location. Prompt user to enter valid destination and continue from step 2. 2.2 Either source or destination is blank. Prompt user and return to step 1 if the source is empty or return to step 2 if the destination is empty. 3.1 The rider does not choose a fare. Prompt user that they have not entered a fare and return to step 3. |
Constraints | |
Related | US 01.01.01, US 01.06.01 |
Request #2 | |
---|---|
Use Case Name | SeeOpenRequests |
Description | As a rider, I want to see current requests I have open. |
Actors | Rider |
Goal | Rider sees all current requests they have open. |
Trigger | Rider chooses to see their Requests from their profile |
Preconditions | The user has requests open |
Post conditions | The rider sees a list of zero to many of their open requests |
Basic Flow |
|
Exceptions | 1. If the user has no open requests 1.1. System displays message in place of list indicating no open requests |
Constraints | Requests are user specific |
Extends | |
Related | US 01.02.01 |
Request #3 | |
---|---|
Use Case Name | AcceptedRequestNotification |
Description | As a rider, I want to be notified if my request is accepted. |
Actors | Rider, Driver |
Goal | The rider is notified that their request was accepted by a driver by some visual indication. |
Trigger | A driver accepts the rider's request. |
Preconditions | The rider has submitted a request and the driver has accepted that request. |
Post conditions | The rider is notified that their request was taken. |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 01.03.01, US 01.01.01 |
Request #4 | |
---|---|
Use Case Name | RiderCancelRequests |
Description | As a rider, I want to cancel requests. |
Actors | Rider |
Goal | Rider cancels a request they have open. |
Trigger | Rider chooses to cancel a request in their request list |
Preconditions | Rider has an open request |
Post conditions | Rider cancels the request they specified |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 01.04.01 |
Request #5 | |
---|---|
Use Case Name | RiderContactDriver |
Description | As a rider, I want to be able to phone or email the driver who accepted a request. |
Actors | Rider, Driver |
Goal | To be able to access contact information of the driver who accepted the rider's request. |
Trigger | The rider navigates to a part of the app where the driver's contact information is contained. |
Preconditions | The driver has accepted the rider's request. |
Post conditions | The user contacts the driver via phone or email. |
Basic Flow |
|
Exceptions | 2.1. The system cannot find the contact information for either phone or email 2.2. The system greys out the option 2.3. User clicks a grayed out option 2.4. System displays message about lack of contact information |
Constraints | |
Related | US 01.05.01, US 01.01.01 |
Request #6 | |
---|---|
Use Case Name | GetFareEstimate |
Description | As a rider, I want an estimate of a fair fare to offer to drivers. |
Actors | Rider |
Goal | Rider sees a fair estimate for their request |
Trigger | Rider initializes a request between two locations |
Preconditions | The start and end location are different. |
Post conditions | On success, a fare estimate is displayed for the request |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 01.06.01 |
Request #7 | |
---|---|
Use Case Name | ConfirmCompletion&Pay |
Description | As a rider, I want to confirm the completion of a request and enable payment. |
Actors | Rider, Driver |
Goal | The rider is able to confirm the their ride is complete and can pay for their ride. |
Trigger | The driver confirms that the ride is completed. |
Preconditions | The driver has accepted the request that the rider has made and the driver completes the ride. The rider is able to pay for the ride. |
Post conditions | Payment is enabled for the rider. |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 01.07.01 |
Request #8 | |
---|---|
Use Case Name | RiderAcceptsDriver |
Description | 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. |
Actors | Rider, 1 or more drivers |
Goal | Rider accepts one driver's acceptance |
Trigger | Rider looks at a request of theirs with acceptance(s) |
Preconditions | Rider has a request with one or more acceptances from drivers |
Post conditions | Rider has a request with a driver they've chosen to fulfill the request |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 01.08.01 |
Request #9 | **added half way through project timeline |
---|---|
Use Case Name | RiderViewsCarDescription |
Description | As a rider, I should see a description of the driver's vehicle. |
Actors | Rider, 1 or more drivers |
Goal | Rider views driver's car details |
Trigger | Rider looks at a request of theirs with acceptance(s) |
Preconditions | Rider has a request with one or more acceptances from drivers |
Post conditions | Rider has seen driver's car details |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 01.09.01 |
Status #1 | |
---|---|
Use Case Name | seeStatus |
Description | As a rider or driver, I want to see the status of a request that I am involved in |
Actors | User |
Goal | See the status of a request |
Trigger | User chooses a request to look at |
Preconditions | User is logged in and has made a request to see the status of |
Post conditions | On success, status is displayed |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 02.01.01 |
User Profile #1 | |
---|---|
Use Case Name | uniqueRiderName, uniqueDriverName |
Description | As a user, I want a profile with a unique username and my contact information. |
Actors | User |
Goal | Test to see if a username is unique. An email and phone number will be attached to the unique username |
Trigger | Choosing to sign in |
Preconditions | |
Post conditions | On success, account is created |
Basic Flow |
|
Exceptions | 2.1 username is not unique. Prompt user that the username is not unique. Return to step 1. |
Constraints | |
Related | US 03.01.01 |
User Profile #2 | |
---|---|
Use Case Name | editProfileInfo |
Description | As a user, I want to edit the contact information in my profile. |
Actors | User |
Goal | Change profile information. |
Trigger | User clicks edit button. |
Preconditions | User is logged in. |
Post conditions | on success the information of the user is changed. |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 03.02.01 |
User Profile #3 | |
---|---|
Use Case Name | getProfile |
Description | As a user, I want to, when a username is presented for a thing, retrieve and show its contact information. |
Actors | User |
Goal | Show a users profile. Profile includes username and email. |
Trigger | User sees a user name of rider or driver that they want more information about |
Preconditions | User is logged in and is able to see usernames for any reason |
Post conditions | on success, the information will be seen |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 03.03.01 |
User Profile #4 | **added half way through project timeline |
---|---|
Use Case Name | setCarDetails |
Description | As a driver, in my profile I can provide details about the vehicle I drive. |
Actors | User |
Goal | Save information about a drivers vehicle and then show information about drivers vehicle. |
Trigger | User sees a user name of driver and want more information about their vehicle |
Preconditions | User is logged in and is able to see usernames for drivers for any reason |
Post conditions | on success, the information will be seen |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 03.04.01 |
Searching #1 | |
---|---|
Use Case Name | SearchRequestsByGeoLocation |
Description | As a driver, I want to browse and search for open requests by geo-location. |
Actors | Driver |
Goal | Driver sees search results, prioritized by proximity to the queried location. |
Trigger | Driver submits a search query based on their current location, or a different location of their choosing. |
Preconditions | Driver is logged in. |
Post conditions | The driver sees a list of zero to many search results, sorted in order of proximity to the location queried. |
Basic Flow |
|
Exceptions | 2 There are no open requests within range. 2.1 The system returns no search results. 2.3 The system continues normally. |
Constraints | Search results are limited by a range that is deemed "close enough" to the queried location. |
Related | US 04.01.01 |
Searching #2 | |
---|---|
Use Case Name | SearchRequestsByKeyword |
Description | As a driver, I want to browse and search for open requests by keyword. |
Actors | Driver |
Goal | Driver sees search results, prioritized by proximity to the driver's current location. |
Trigger | Driver submits a search query based on a keyword. |
Preconditions | Driver is logged in. |
Post conditions | The driver sees a list of zero to many search results matched to the queried keyword, sorted in order of proximity to the driver's current location. |
Basic Flow |
|
Exceptions | 2 There are no open requests within range and/or there are no open requests that match the queried keyword. 2.1 The system returns no search results. 2.2 The system continues normally. |
Constraints | Search results are limited by a range that is deemed "close enough" to the driver's current location. |
Extends | Searching #1 and Searching #2 |
Related | US 04.02.01 |
Searching #3 | **added half way through project timeline |
---|---|
Use Case Name | SearchRequestsByPrice |
Description | As a driver, I should be able filter request searches by price per KM and price. |
Actors | Driver |
Goal | Driver sees search results, filtered by price per KM and/or price. |
Trigger | Driver is in the search system |
Preconditions | Driver is logged in. |
Post conditions | The driver sees a list of zero to many search results filtered by their options |
Basic Flow |
|
Exceptions | 4 There are no open requests within range 4.1 The system returns no search results. 4.2 The system continues normally. |
Constraints | |
Related | US 04.03.01 |
Searching #4 | **added half way through project timeline |
---|---|
Use Case Name | SeeAddress |
Description | As a driver, I should be able to see the addresses of the requests. |
Actors | Driver |
Goal | Driver sees address |
Trigger | Driver Views Request |
Preconditions | Driver is logged in. |
Post conditions | Driver sees location |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 04.04.01 |
Searching #5 | **added half way through project timeline |
---|---|
Use Case Name | SearchRequestsByAddress |
Description | As a driver, I should be able to search by address or nearby an address. |
Actors | Driver |
Goal | Driver sees search results, prioritized by proximity to the driver's queried address. |
Trigger | Driver submits a search query based on an address. |
Preconditions | Driver is logged in. |
Post conditions | The driver sees a list of zero to many search results matched to the queried address, sorted in order of proximity to the driver's queried address. |
Basic Flow |
|
Exceptions | 2 There are no open requests within range and/or there are no open requests that match the queried address. 2.1 The system returns no search results. 2.2 The system continues normally. |
Constraints | Search results are limited by a range that is deemed "close enough" to the driver's queried address. |
Related | US 04.05.01 |
Accepting #1 | |
---|---|
Use Case Name | DriverOfferOnRequest |
Description | As a driver, I want to accept a request I agree with and accept that offered payment upon completion. |
Actors | Driver |
Goal | Provide the driver with a way to accept a request. |
Trigger | Driver looks at the list of open requests and wishes to accept one. |
Preconditions | |
Post conditions | The request has been marked accepted by one driver. |
Basic Flow |
|
Exceptions | 1.1. A user has already chosen a driver to fulfill a request 1.2. System notifies the driver this has occurred. 1.3 System returns to an updated request list |
Constraints | |
Related | US 05.01.01 |
Accepting #2 | |
---|---|
Use Case Name | DriverPendingAccepts |
Description | As a driver, I want to view a list of things I have accepted that are pending, each request with its description, and locations. |
Actors | Driver |
Goal | Provide a driver with a list of pending requests that they have accepted. |
Trigger | The driver requests to view their pending requests. |
Preconditions | The driver has pending requests to view. |
Post conditions | The driver is able to view the list of requests that they have a pending offer on. |
Basic Flow |
|
Exceptions | 2.1. The driver has no pending requests 2.2. The system displays a message informing the user they have no pending requests. |
Constraints | |
Related | US 05.02.01 |
Accepting #3 | |
---|---|
Use Case Name | DriverConfirmedRequests |
Description | As a driver, I want to see if my acceptance was accepted. |
Actors | Driver |
Goal | Provide a driver with a way to see if their acceptance has been accepted by the rider. |
Trigger | The driver attempts to view their confirmed requests |
Preconditions | |
Post conditions | The driver is displayed a list of their confirmed requests. |
Basic Flow |
|
Exceptions | 2.1. The driver has no confirmed requests 2.2. The system displays a message informing the user they have no confirmed requests. |
Constraints | |
Related | US 05.03.01 |
Accepting #4 | |
---|---|
Use Case Name | NotifyDriverOnConfirmation |
Description | As a driver, I want to be notified if my ride offer was accepted. |
Actors | Driver |
Goal | The goal is to provide a driver with a notification when their ride has been confirmed. |
Trigger | Will occur when a rider confirms the driver in their request. |
Preconditions | A driver has accepted the a request |
Post conditions | The driver is notified that they have been confirmed as the driver. |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 05.04.01 |
Offline Behavior #1 | |
---|---|
Use Case Name | OfflineSeeDriverOffers |
Description | As an driver, I want to see requests that I already accepted while offline. |
Actors | Driver |
Goal | A driver can see their ride offers offline. |
Trigger | The driver is offline and navigates to a part of the app where they can view their offers. |
Preconditions | The driver is logged on and has offered rides while they were online and then go offline. |
Post conditions | The driver can view their offers. |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 08.01.01 |
Offline Behavior #2 | |
---|---|
Use Case Name | OfflineSeeRiderRequests |
Description | As a rider, I want to see requests that I have made while offline. |
Actors | Rider |
Goal | See submitted requests while offline |
Trigger | Navigate to the part of the app where submitted requests are recorded |
Preconditions | The rider is logged on and has submitted requests while online and then goes offline. |
Post conditions | The rider can view their requests. |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 08.02.01 |
Offline Behavior #3 | |
---|---|
Use Case Name | OfflineMakeRequest |
Description | As a rider, I want to make requests that will be sent once I get connectivity again. |
Actors | Rider |
Goal | Make requests offline that will be sent once rider is back online. |
Trigger | The rider makes a request while offline, then goes back online. |
Preconditions | The rider is logged on and offline. |
Post conditions | The rider's request is posted. |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 08.03.01 |
Offline Behavior #4 | |
---|---|
Use Case Name | OfflineAcceptRequest |
Description | As a driver, I want to accept requests that will be sent once I get connectivity again. |
Actors | Driver |
Goal | Accept requests offline that will be sent once driver is back online. |
Trigger | The driver makes a request while offline, then goes back online. |
Preconditions | The rider is logged on and online. |
Post conditions | The request is marked as aeccepted by the driver. |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 08.04.01 |
Location #1 | |
---|---|
Use Case Name | RiderSetGeoLocationsForRequest |
Description | As a rider, I want to specify a start and end geo-locations on a map for a request. |
Actors | Rider |
Goal | A rider can select start and end geo-locations on a map when making a request. |
Trigger | The rider makes a request. |
Preconditions | The rider is logged in. |
Post conditions | A request is made. |
Basic Flow |
|
Exceptions | 3 The end geo-location is the same as the start geo-location 3.1 System throws an error. 3.2 System requires rider to choose a different end geo-location. |
Constraints | The start and end geo-locations for a request must be different. |
Related | US 10.01.01 |
Location #2 | |
---|---|
Use Case Name | DriverViewGeoLocationsForRequest |
Description | As a driver, I want to view start and end geo-locations on a map for a request. |
Actors | Driver |
Goal | A driver can view start and end geo-locations on a map when they open a request to view. |
Trigger | The driver views a request. |
Preconditions | The driver is logged in. |
Post conditions | |
Basic Flow |
|
Exceptions | |
Constraints | |
Related | US 10.02.01 |