-
Notifications
You must be signed in to change notification settings - Fork 3
Requirements Specification
TannerShmoog edited this page Apr 9, 2018
·
21 revisions
| Use Case Description | As a GeoTask User I want to access my information by providing an authenticating factor. |
| Primary Actor | User |
| Preconditions | The user has an account |
| Postconditions | User is accessing the Main page from his/her profile |
| Trigger | User opens the app |
| Basic Flow | 1. User Opens the app 2. User enters Login information with username 3. Data is authenticated with the server 4. If User login is valid proceeds to access the app |
| Alternate Flows | [case invalid input] 4. User login is invalid 5. Proper error prompt is shown 6. Return to step 3 |
| Use Case Description | A requester wants to request a task, giving it a description, and optionally a location and photographs. It’s status is initially “requested” |
| Primary Actor | Task Requester |
| Preconditions | Task requester has task details to post and the Main page is displayed |
| Postconditions | The task that the requester inputs is now in the list of tasks that everyone can see in their all menu |
| Trigger | Task requester selects the “Request New” option |
| Basic Flow | 1. User opens the drawer menu and change to requester mode |
| Alternate Flows | [case doesn't confirm] 3. User does not confirm task entry 4. Return to step 2 [case cancel entry] 3. User cancels their entry. [case add photo] 3. User selects add photo. 4. User selects the photo from their system. 5. User selects save. 6. User confirms task entry. |
| Use Case Description | As a requester, I want to view a list of my Tasks, to see the Title, Status, Bid, Description, and Photographs |
| Primary Actor | Task Requester |
| Preconditions | User must be logged in and the Main screen is displayed |
| Postconditions | User is viewing List of Assigned Tasks |
| Trigger | User selects on Task Requester view |
| Basic Flow | 1. User opens the drawer menu and selects from the list of options 2. User then selects on the Task Requester option. 3. The users requested Task are then shown to the User. |
| Alternate Flows | [case filter results] 2. User then selects on the filter option. 3. User then selects on the Task Requester option. 4. The users filtered requested Task are then shown to the User. |
| Use Case Description | As a requester, I would like to delete a task that I have requested. |
| Primary Actor | Task Requester |
| Preconditions | A requester must be selecting a task that they have previously requested, and wish to delete it. The user is currently viewing the Task page for a task |
| Postconditions | The selected task must be removed from the list of tasks |
| Trigger | The delete option was selected by the requester |
| Basic Flow | 1. The requester selects a task they own 2. The requester selects the delete option in the menu bar 3. The task is deleted |
| Alternate Flows | [case no deletion] 2. The user clicks outside of the confirmation 3. the task remains as it was before the trigger |
| Use Case Description | As a User, I would like to logout. |
| Primary Actor | End User |
| Preconditions | User is Logged in and viewing the Main page |
| Postconditions | User is on the Login Page |
| Trigger | User accesses the main menu then user uses on the logout button |
| Basic Flow | 1. From the drawer menu, the user selects the logout option 2. User is logged out then directed to the login option |
| Alternate Flows | N/A |
| Use Case Description | A User wishes to view all of the tasks (requested, bidded, accepted by him/her, or completed for him/her). |
| Primary Actor | User |
| Preconditions | The user is logged in and viewing any page |
| Postconditions | The user is viewing a list of all tasks. |
| Trigger | The user navigates to the Main page and selects the “all tasks” option. |
| Basic Flow | 1. The user logs in and is presented with all tasks on the Main page. |
| Alternate Flows | [case from filter] 1. The user is viewing some other activity and navigates to the Main page 2. The user selects the “all tasks” option from the main menu 3. The user is presented with the list |
| Use Case Description | As a user, I want to view all tasks based on geolocation. |
| Primary Actor | End User |
| Preconditions | User is viewing the Main page menu |
| Postconditions | User is viewing all tasks within a specified range on the Main page |
| Trigger | User selects the “filters” option from the Main menu |
| Basic Flow | 1. User is in the list of options 2. User then selects the “filters” option 3. User enters a range to limit tasks shown to 4. The main page is now displayed with the tasks based on location |
| Alternate Flows | [case from search filter] 2. User selects “map” option 3. User then selects the “filter” option 4. User applies filters 5. The map with tasks based on location is displayed |
| Use Case Description | As a user, I want to view details of a task: title, description, status, lowest bid, location, photographs, requester, … |
| Primary Actor | User |
| Preconditions | A user must be logged in and viewing Main page |
| Postconditions | User is viewing details of a task on the Task page |
| Trigger | User selects a task from the task list |
| Basic Flow | 1. User selects a task from the task list 2. User is then brought to the Task page for the selected task |
| Alternate Flows | [case view bids] 3. User selects "View Bids" and user is brought to the view bids page |
| Use Case Description | As a task requester, I want to edit the details for any one of my tasks. |
| Primary Actor | Task Requester |
| Preconditions | A user must be logged in and viewing the Task page of the task they want to edit |
| Postconditions | Edits are applied and the user is viewing the Task page |
| Trigger | User selects selects “edit” on a task they own |
| Basic Flow | 1. User selects edit option on a task 2. User is brought to the Edit Task screen 3. user makes modifications 4. Modifications are validated 5. User is returned to the Task page with modified information |
| Alternate Flows | [case invalid input] 4. Modifications are not valid 5. A prompt is shown to the user 6. Return to step 3 |
| Use Case Description | As a user, I would like to create an account to use GeoTask. I would like to provide a unique email, and my contact information. I would like to have my account protected by an authenticating factor. |
| Primary Actor | End User |
| Preconditions | Login screen is displayed |
| Postconditions | Login screen is displayed |
| Trigger | User selects register |
| Basic Flow | 1. User selects Register option in the Login screen 2. User then enters a unique email, and provides contact information and username 4. The user information is then verified 5. If the user input is valid, the account is created 6. Login screen is displayed |
| Alternate Flows | [case invalid input] 5. User input is not valid 6. Return to step 2. [case cancel creation] 6. User decides to hit cancel button, Login screen is displayed |
| Use Case Description | As a user, I want to view and edit details on my profile |
| Primary Actor | User |
| Preconditions | A user is logged in, Main screen is displayed |
| Postconditions | Profile screen is displayed, changes made to profile should be saved to the server |
| Trigger | User selects ‘Profile’ from the menu |
| Basic Flow | 1. User opens the drawer 2. User selects profile from the menu, Edit Profile screen is displayed 3. The user makes edits then selects save to save data to the server 4. The user is returned to the Main screen |
| Alternate Flows | [case user retracts changes] 3. User selects cancel and the changes are then not saved to the server 4. The user is returned to the Profile screen and the old data persists |
| Use Case Description | A User wants to view another person’s profile. |
| Primary Actor | User |
| Preconditions | Task screen is displayed. |
| Postconditions | Profile screen is displayed. |
| Trigger | The user clicks on the name of another user. |
| Basic Flow | 1. Task screen is displayed 2. selects the requester name or selects a bidder’s name from a list of bids 3. Profile screen is displayed for the selected user |
| Alternate Flows | N/A |
| Use Case Description | A User wants to add filters to the list of tasks to view tasks more specifically |
| Primary Actor | User |
| Preconditions | Main screen is displayed. |
| Postconditions | Main screen is displayed, the user is viewing the list of tasks where the tasks contain all the keywords and have matching status to the one provided by the user. |
| Trigger | The user selects the “filters” option. |
| Basic Flow | 1. The user is viewing the task list 2. The user opens the drawer 3. The user selects the filters option 4. Filter screen is displayed, the user enters they keywords they wish to filter the list for 5. The user then selects a status to filter for 6. The user selects a range to filter for 7. The user applies the filter 8. Main screen is displayed, The user is given a view of the list displayed with the correct filter |
| Alternate Flows | [case cancel filters] 7. The user decides to cancel 8. Main screen is displayed, the user returns to view the list which has not changed |
| Use Case Description | A User wants to filter the list of tasks by distance from them. |
| Primary Actor | User |
| Preconditions | Main screen is displayed. |
| Postconditions | Main screen is displayed, the user is viewing the list of tasks where the tasks have less or equal distance to the range entered. |
| Trigger | The user selects the “filters” option. |
| Basic Flow | 1. Main screen is displayed, the user is viewing the task list 2. The user opens the drawer 3. The user selects the filters option 4. Filter screen is displayed, the user enters the range they wish to filter for 5. The user applies the filter 6. Main screen is now displayed with the correct filter to the user |
| Alternate Flows | [case cancel filter] 5. The user decides to cancel 6. Main screen is displayed, the user returns to view the list which has not changed |
| Use Case Description | As a task provider, I want to make a bid on a given task with status: requested or bidded using a monetary amount |
| Primary Actor | Task Provider |
| Preconditions | Task detail screen is displayed |
| Postconditions | Task detail screen is displayed, a notification is sent to the requester, the task appears in the providers list |
| Trigger | The user chooses to add bid |
| Basic Flow | 1. The user chooses to view the bid list 2. The user chooses to add bid 3. The user is given a prompt to enter amount 4. User enters information 5. Information is validated 6. Internal information is updated 7. Task detail is displayed |
| Alternate Flows | [case invalid input] 5. Information is invalid 6. A prompt is shown 7. Return to step 3 |
| Use Case Description | As a task provider, I want to delete a bid of mine on a given task with status: requested or bidded |
| Primary Actor | Task Provider |
| Preconditions | BidList screen is displayed |
| Postconditions | Task screen is displayed, the task no longer appears in the providers list, the bid no longer appears in the bids list |
| Trigger | The user chooses to delete bid |
| Basic Flow | 1. The user clicks on the bid they own to be deleted 2. The user click on delete in the popup |
| Alternate Flows | N/A |
| Use Case Description | A Provider wants to view tasks that they have bidded on. |
| Primary Actor | Provider |
| Preconditions | Main screen is displayed. |
| Postconditions | Main screen is displayed, he provider is viewing the list of tasks which they have previously bidded on. |
| Trigger | The user selects the “provider view” option. |
| Basic Flow | 1. The provider is viewing the Main screen and selects the provider view option 2. The list now displays only the tasks which have been bidded on by the provider |
| Alternate Flows | N/A |
| Use Case Description | A Requester wants to view tasks that they have bidded on. |
| Primary Actor | Requester |
| Preconditions | Main screen is displayed |
| Postconditions | Main screen is displayed, the requester is viewing the list of tasks which they have requested and have been bidded on. |
| Trigger | The user selects the “requester view” option and applies the filter for status = bidded. |
| Basic Flow | 1. The requester is viewing the Main screen and selects the requester view option 2. The list now displays only the tasks which have been requested by the requester 3. The user then selects “filters” 4. Filter screen is displayed, the user applies the filter for status = bidded 5. The list now displays only the requesters tasks which have been bidded on |
| Alternate Flows | [case cancel filters] 4. The requester decides to cancel the search after going into requester view. They do not apply any filter or cancel a filter. 5. The list remains a list of only requests made by the requester (not necessarily bidded on). |
| Use Case Description | As a task requester, I want to view the bids on one of my tasks |
| Primary Actor | Task Requester |
| Preconditions | User has tasks, Task screen is displayed for a task owned by the user |
| Postconditions | Bid List screen is displayed, the requester is presented with a list of bids on the task that was selected. |
| Trigger | The user has clicked on the “Bid List” option |
| Basic Flow | 1. The user clicks on bid list 2. Bid List screen is displayed |
| Alternate Flows | [case return to list] 3. The user hits the back button |
| Use Case Description | As a task requester, I want to accept a bid on one of my tasks |
| Primary Actor | Task Requester |
| Preconditions | Bid List screen is displayed |
| Postconditions | Task screen is displayed, the task is no longer visible in searches, The task appears in the task providers task list |
| Trigger | The user has clicked on a bid |
| Basic Flow | 1. The user clicks on bid 2. A prompt appears to the user 3. The user accepts bid 4. The task is now assigned to the task provider and the state of the task has changed to accepted |
| Alternate Flows | [case decline bid, select other] 3. The user declines 4. The user clicks on another provider 5.The task is now assigned to the task provider and the state of the task has changed to accepted |
| Use Case Description | As a task requester, I want to decline a bid on one of my tasks |
| Primary Actor | Task Requester |
| Preconditions | Bid List screen is displayed |
| Postconditions | Task screen is displayed, the bid no longer appears in the bid list |
| Trigger | The user has clicked on a bid |
| Basic Flow | 1. The user clicks on bid 2. A prompt appears to the user 3. The bid no longer appears in the list of bids |
| Alternate Flows | N/A |
| Use Case Description | As a task provider, I want to view a list of tasks I am assigned to |
| Primary Actor | Task Provider |
| Preconditions | User has a filter selected for showing only active tasks and is viewing the list |
| Postconditions | Main screen is displayed |
| Trigger | User selects Task Performer from list of options after having a filter that only shows active tasks applied |
| Basic Flow | 1. User selects the list of options 2. User then selects the "My Assigned" option from the drawer 3. The task performers active jobs are then shown |
| Alternate Flows |
| Use Case Description | As a Task Requester, I want to view a list of my tasks with status assigned |
| Primary Actor | Task Requester |
| Preconditions | Main screen is displayed |
| Postconditions | Main screen is displayed |
| Trigger | User selects to change view |
| Basic Flow | 1. User selects from the list of options 2. User then selects on the "My Assigned" option from the drawer 3. The task requester's tasks which are assigned will be shown |
| Alternate Flows | 4. The task requester may filter the options which will alter the search results |
| Use Case Description | As a Task requester, i want to change one of my accepted tasks status to complete |
| Primary Actor | Task requester |
| Preconditions | User is logged in, Main screen is displayed |
| Postconditions | Task screen is displayed, task will have status completed |
| Trigger | Task requester selects the Done option and changes status to completed |
| Basic Flow | 1. User selects on the list of options 2. User then selects on the task requester option 3. The user selects the task they wish to update to completed 4. Task screen is displayed, the user then selects "Done" 5. A popup is shown asking for confirmation 6. The user confirms task completion 7. The task will now be shown to be completed |
| Alternate Flows | [case not complete] 6. The user clicks "back" in the popup" 7. The task status is not changed |
| Use Case Description | As a task requester, i want to change one of my accepted tasks back to bidding |
| Primary Actor | Task requester |
| Preconditions | User is logged in, Main screen is displayed |
| Postconditions | Task screen is displayed, task will have status Accepted |
| Trigger | Task requester selects the accepted bid and delete it |
| Basic Flow | 1. Task screen is displayed for a task owned by the user 2. The user selects "Not Complete" 3. If the task has other bids, status will now show "bidded", otherwise, status will now show "requested" |
| Alternate Flows | N/A |