Skip to content

Requirements Specifications

cbinns edited this page Mar 13, 2018 · 36 revisions

Task Basics

Use Case 1: AddTask

Category Description
Participating Actors Task Requester
Goal Add a task to list of tasks
Trigger Task requester would like to post a task they would like done by task providers
Pre-Condition Task requester can provide a title (max. 30 characters) and description (max. 300 characters) for the specific task
Post-Condition Task is added to user's list of tasks
Basic Flow
  1. User indicates they would like to add a new task.
  2. System prompts for task title and brief description.
  3. User enters the task details and confirms the posting.
  4. System adds the new task to user's list of tasks.
Exceptions     3. User does not fill out a title or description OR character limit exceeded.
        3.1 System indicates the error and prompts the user again.
        3.2 User enters the task details and confirms.
        3.3 System adds the new task.
    4. System is unable to add task.
        4.1 System presents an error to the user.
Includes
Extends
Related Artifacts US 01.01.01, US 01.01.02, US 01.01.03

Use Case 2: ViewTaskList

Category Description
Participating Actors Task Requester
Goal Display the list of tasks posted by the user to the user
Trigger Task requester would like to view their own task list
Pre-Condition Task requester has tasks posted
Post-Condition System displays a list of the user's tasks with their titles and statuses
Basic Flow
  1. User indicates they would like to view a list of their tasks.
  2. System fetches information from database.
  3. System displays a list of the user's task postings with their titles and statuses.
Exceptions     3. User has no task postings.
        3.1 No tasks are displayed.
Includes ViewMyTasks (US 05.04.01)
ViewAssignedTasks (US 06.02.01)
Extends
Related Artifacts US 01.02.01

Use Case 3: EditTask

Category Description
Participating Actors Task Requester
Goal Modify the details of a specific task
Trigger Task requester would like to modify a task detail
Pre-Condition Task requester has at least one task to edit
Post-Condition Task details are updated to reflect user changes
Basic Flow
  1. User selects a task to edit.
  2. System prompts for task title and brief description.
  3. System prompts the user to edit the details.
  4. User modifies the details and confirms changes.
  5. System updates the changes made to task details.
Exceptions     2. User cancels modification.
        2.1 System closes prompt and makes no changes to the task.
    4. System fails to update profile changes.
        4.1 System presents an error to the user.
Includes
Extends
Related Artifacts US 01.03.01

Use Case 4: DeleteTask

Category Description
Participating Actors Task Requester
Goal Remove a task from the task list
Trigger Task requester would like to delete a task
Pre-Condition Task requester has at least one task to remove
Post-Condition Specific task is removed from user’s list of tasks
Basic Flow
  1. User selects a task to delete.
  2. System asks user to confirm deletion.
  3. User confirms.
  4. System removes task from user task list.
Exceptions     2. User cancels task deletion.
        2.1 System closes prompt and makes no changes to task list.
Includes
Extends
Related Artifacts US 01.04.01

Task Details

Use Case 5: ViewTaskDetails

Category Description
Participating Actors Task Requester
Goal Display the details of a single task to the user
Trigger User would like to view the details of a specific task
Pre-Condition User knows which task they would like to view
Post-Condition System displays the taks details to the user
Basic Flow
  1. User selects a task to view.
  2. System fetches information from database.
  3. System displays details of the task including title, description, status and lowest bid.
Exceptions     2. System fails to fetch information.
        2.1 Error is presented to the user.
Includes ViewTaskBids (US 05.05.01)
Extends
Related Artifacts US 02.01.01

Use Case 6: TaskStatus

Category Description
Participating Actors Task Requester or Provider
Goal Tasks will indicate their status based on completion progress
Trigger Task requester creates a new task
Pre-Condition There is at least one task
Post-Condition Tasks will show their status of completion
Basic Flow
  1. Task requester posts a task.
  2. System creates a task with status: requested.
  3. Task provider bids on the task.
  4. Task status changes to bidded.
  5. Task requester accepts a bid on the task.
  6. Task status changes to assigned.
  7. Task provider indicates they completed the task.
  8. Task status changes to done.
Exceptions     No exceptions.
Includes TaskStatusCompleted (US 07.01.01)
TaskStatusUncompleted (US 07.02.01)
Extends
Related Artifacts US 02.02.01

User Profile

Use Case 7: UniqueProfile

Category Description
Participating Actors Task Requester or Provider
Goal Each user will have a unique profile
Trigger User creates an account for the app
Pre-Condition N/A
Post-Condition User will have a unique profile
Basic Flow
  1. User creates an account.
  2. System prompts user for contact information.
  3. User enters contact information and confirms.
  4. System creates user profile.
Exceptions     4. System fails to save information.
        4.1 Error is presented to the user.
Includes
Extends
Related Artifacts Use Case 8: EditProfile (US 03.02.01), US 03.01.01

Use Case 8: EditProfile

Category Description
Participating Actors Task Requester or Provider
Goal Modify the information in user’s profile
Trigger User would like to modify the contact information in their profile
Pre-Condition N/A
Post-Condition User profile is updated to reflect changes made by the user
Basic Flow
  1. User indicates they want to modify details in their profile.
  2. System prompts user to edit details.
  3. User modifies their contact information and confirms changes.
  4. System updates user profile to reflect changes made.
Exceptions     2. User cancels modification.
        2.1 System closes prompt and makes no changes to user profile.
Includes
Extends
Related Artifacts US 03.02.01

Use Case 9: ViewProfile

Category Description
Participating Actors Task Requester or Provider
Goal Display another user’s contact information to the user
Trigger User would like to view another user’s profile
Pre-Condition Username is shown and profile is accessible by the user
Post-Condition System displays another user’s contact information to the user
Basic Flow
  1. User indicates they want to view the profile of a username.
  2. System fetches information from database.
  3. System displays that user’s contact information to the user.
Exceptions     4. System fails to retrieve information.
        4.1 Error is presented to the user.
Includes
Extends
Related Artifacts US 03.03.01

Searching

Use Case 10: SearchTasks

Category Description
Participating Actors Task Provider
Goal Provide a list of tasks relevant to the keywords entered by the task provider
Trigger Task provider clicks the search button
Pre-Condition None
Post-Condition On click, all relevant tasks are displayed to the task provider that have status requested or bidded
Basic Flow
  1. Task provider enters keywords into search bar.
  2. Task provider clicks the search button.
  3. System searches through all tasks creating a returnable list of relevant tasks that have status requested or bidded.
  4. System displays this list of tasks to the user, displaying the tasks in a readable format.
Exceptions     1. User leaves the search field empty.
        1.1 System displays all tasks in a determined order.
    2. Keywords provided return no relevant tasks.
        2.1 System displays "no results found" on the search result page.
Includes
Extends
Related Artifacts US 04.01.01

Use Case 11: SearchResultInfo

Category Description
Participating Actors Task Provider
Goal Task search results display information for each result, including username, title, status, and lowest bid (if any)
Trigger Task provider clicked the search button
Pre-Condition The keywords return a non-empty list of results, username, title, status are not empty for a task
Post-Condition On click, all specified information is displayed for each search result in the list of all results.
Basic Flow
  1. Task provider enters keywords into search bar.
  2. Task provider clicks the search button.
  3. System searches through all tasks creating a returnable list of relevant tasks that have status requested or bidded.
  4. System displays this list of tasks to the user, displaying the tasks in a readable format.
  5. System displays the specified information on the search result page
Exceptions N/A
Includes
Extends SearchTasks
Related Artifacts US 04.02.01

Task Bidding

Use Case 12: MakeABid

Category Description
Participating Actors Task Provider
Goal Make a bid on a given task and update the server data
Trigger Task provider clicks 'Make Bid' on a given task
Pre-Condition Task provider has selected a task that has status, requested or bidded
Post-Condition On click, the bid is made and the screen is updated to reflect the new bid.
Basic Flow
  1. Task provider selects a task that has status, requested or bidded.
  2. Task provider enters a monetary amount into the field available.
  3. Task provider clicks the 'Make Bid' button.
  4. System contacts the server and updates the server information with the new bid.
  5. Activity reloads task data reflecting the new bid that has been made.
Exceptions     1. User enters an invalid monetary amount.
        1.1 System sends an error message that the amount was invalid.
    2. The task provider is unable to connect to the server.
        2.1 System displays error that it could not contact the server and to try again later.
        2.2 Provide option to send once application can contact the server. (To be decided)
Includes
Extends
Related Artifacts US 05.01.01

Use Case 13: ViewMyBids

Category Description
Participating Actors Task Provider
Goal View all tasks that a task provider has bid on previously with standard information about the task
Trigger Task provider clicks on My Bids
Pre-Condition The server is accessible or a cached version of My Bids.
Post-Condition All tasks that a task provider has bid on are displayed with their standard information.
Basic Flow
  1. Task provider selects My Bids.
  2. System tries to access server and retrieve all tasks they have bid on.
  3. System updates local cache with the server data or loads tasks from the cache.
  4. System displays this list of tasks to the task provider, displaying their standard information.
Exceptions     1. The task provider has not bid on any tasks.
        1.1 Display a message on the My Bids page, saying 'No Tasks'.
    2. The server is inaccessible and the cache does not exist.
        2.1 Display 'No Tasks' on My Bids page along with a message that the server could not be contacted.
Includes
Extends
Related Artifacts US 05.02.01

Use Case 14: BidNotification

Category Description
Participating Actors Task Requester, Task Provider
Goal Send a notification to the device when there is a new bid on the requester's tasks
Trigger A task provider has bid on a task requester's task
Pre-Condition A bid has been placed on a task.
Post-Condition The task requester's device has a notification that a bid has been placed.
Basic Flow
  1. A task provider places a bid on a given task.
  2. The system pushes this data to the task requester's device
  3. The task requester's device displays a notification upon this data being received
Exceptions     1. The server cannot access the task requester's device.
        1.1 The server attempts to send the data at a timed interval until received.
    2. Notifications are turned off by the requester.
        2.1 The app places a red dot on their profile so the requester can see that they have received a bid when they open the app.
Includes
Extends
Related Artifacts US 05.03.01

Use Case 15: ViewMyTasks

Category Description
Participating Actors Task Requester
Goal Display all tasks that have status bidded
Trigger The task requester clicks on 'My Tasks'
Pre-Condition The server is accessible or a cached version of My Tasks.
Post-Condition All tasks by the task requester that have status bidded are displayed.
Basic Flow
  1. Task provider selects My Tasks.
  2. System tries to access server and retrieve all tasks that have been bid on.
  3. System updates local cache with the server data or loads tasks from the cache.
  4. System displays this list of tasks to the task requester.
Exceptions     1. The task requester has no valid tasks.
        1.1 Display a message on the My Tasks page, saying 'No Tasks'.
    2. The server is inaccessible and the cache does not exist.
        2.1 Display 'No Tasks' on My Tasks page along with a message that the server could not be contacted.
Includes
Extends
Related Artifacts US 05.04.01

Use Case 16: ViewTaskBids

Category Description
Participating Actors Task Requester
Goal Display all tasks on a given task requester's task
Trigger The task requester selects a task from the My Tasks page.
Pre-Condition The task has a bid.
Post-Condition All bids are displayed.
Basic Flow
  1. Task requester selects a task from the My Tasks list
  2. System loads data for that task.
  3. System displays that task with a list of all bids.
Exceptions     1. The task has status requested.
        1.1 Displays an empty list under bidding history.
    2. System cannot load data from server or cache on task with status bidded.
        2.1 Display error message that data cannot be found.
        2.2 Update local data once server is reachable
Includes
Extends
Related Artifacts US 05.05.01

Use Case 17: TaskBidAccept

Category Description
Participating Actors Task Requester
Goal Accept a bid, changing a tasks status to assigned and clearing the other bids
Trigger The task requester selects accept bid on a certain bid
Pre-Condition There is at least one valid bid on the given task.
Post-Condition The task status is changed to assigned and the other bids are cleared.
Basic Flow
  1. The task requester selects a bid.
  2. The system prompts the task requester if they wish to accept or decline the bid.
  3. The task requester clicks 'Accept Bid'.
  4. The system updates the tasks status to assigned and deletes the other bids.
  5. The task page is updated to reflect the task changes.
Exceptions     1. The server cannot be contacted.
        1.1 An error message saying, 'No network, try again later' is displayed.
        1.2 The page remains the same as the bid cannot be accepted currently.
Includes
Extends
Related Artifacts US 05.06.01

Use Case 18: TaskBidDecline

Category Description
Participating Actors Task Requester
Goal Decline a bid, deleting that bid from the bid list
Trigger The task requester selects decline bid on a certain bid
Pre-Condition There is at least one valid bid on the given task.
Post-Condition The declined bid is removed from the bid list.
Basic Flow
  1. The task requester selects a bid.
  2. The system prompts the task requester if they wish to accept or decline the bid.
  3. The task requester clicks 'Decline Bid'.
  4. The system updates bid list by removing that bid.
  5. The task page is updated to reflect the task changes.
Exceptions     1. The server cannot be contacted.
        1.1 An error message saying, 'No network, try again later' is displayed.
        1.2 The page remains the same as the bid cannot be declined currently.
    2. There is only one bid.
        2.1 The task status is set back to requested.
Includes
Extends
Related Artifacts US 05.07.01

Task Assigned

Use Case 19: ViewAssignedBids

Category Description
Participating Actors Task Provider
Goal View all tasks that a task provider has been assigned with standard information displayed
Trigger Task provider filters My Bids to show assigned tasks
Pre-Condition The server is accessible or a cached version of My Bids.
Post-Condition All tasks that a task provider has been assigned are displayed with their standard information.
Basic Flow
  1. Task provider selects My Bids.
  2. Task provider selects 'Assigned'
  3. System tries to access server and retrieve all tasks they have been assigned.
  4. System updates local cache with the server data or loads tasks from the cache.
  5. System displays this list of tasks to the task provider, displaying their standard information.
Exceptions     1. The task provider has not been assigned any tasks.
        1.1 Display a message on the My Bids page, saying 'No Tasks'.
    2. The server is inaccessible and the cache does not exist.
        2.1 Display 'No Tasks' on My Bids page along with a message that the server could not be contacted.
Includes
Extends ViewMyBids (US 05.02.01)
Related Artifacts US 06.01.01

Use Case 20: ViewAssignedTasks

Category Description
Participating Actors Task Requester
Goal Display all tasks that have status assigned
Trigger The task requester filters 'My Tasks' to show assigned
Pre-Condition The server is accessible or a cached version of My Tasks.
Post-Condition All tasks by the task requester that have status assigned are displayed.
Basic Flow
  1. Task provider selects My Tasks.
  2. Task provider selects filter assigned.
  3. System tries to access server and retrieve all tasks that have been assigned.
  4. System updates local cache with the server data or loads tasks from the cache.
  5. System displays this list of tasks to the task requester.
Exceptions     1. The task requester has no valid tasks.
        1.1 Display a message on the My Tasks page, saying 'No Tasks'.
    2. The server is inaccessible and the cache does not exist.
        2.1 Display 'No Tasks' on My Tasks page along with a message that the server could not be contacted.
Includes
Extends ViewMyTasks
Related Artifacts US 06.02.01

Task Done

Use Case 21: TaskStatusCompleted

Category Description
Participating Actors Task Requester
Goal Task Requester able to change the status of a task from “Assigned” to “Done”
Trigger Task Requester confirms that their task has been completed
Pre-Condition N/A
Post-Condition On success, Task Requester pays the Task Provider and the task remains in the Task Requester’s “Tasks Requested” history and in the Task Provider’s “Tasks Provided” history
Basic Flow
  1. Task Requester goes to the page of a task they requested
  2. Task Requester changes the status of the task from “Assigned” to “Done”
Exceptions
Includes
Extends
Related Artifacts US 07.01.01

Use Case 22: TaskStatusUncompleted

Category Description
Participating Actors Task Requester
Goal Task Requester able to change the status of a task from “Assigned” to “Requested”
Trigger Task Requester confirms that their task has not been completed
Pre-Condition N/A
Post-Condition On success, the task will now be available to be bid on again
Basic Flow
  1. Task Requester goes to the page of a task they requested
  2. Task Requester changes the status of the task from “Assigned” to “Requested”
Exceptions
Includes
Extends
Related Artifacts Use Case 21: TaskStatusCompleted (US 07.01.01), US 07.02.01

Offline Behaviour

Use Case 23: WorkingOffline

Category Description
Participating Actors Task Requester
Goal Task Requester able to add or edit tasks without a network connection and then having them synchronize later when a network connection is established
Trigger A network connection being established
Pre-Condition Task Requester has edits to make to a task, or wants to add a new task and doesn’t have a network connectivity
Post-Condition Either a task is edited, or a new task is added
Basic Flow
  1. Task Requester goes to the page of a task they want to edit, while offline
  2. Task Requester edits the task
  3. When a network connection is established on the device, the edits on the task are synchronized

  1. Task Requester goes to the “New Task” page, while offline
  2. Task Requester adds a new task
  3. When a network connection is established on the device, the new task is synchronized
Exceptions 1. If the task is already accepted, before an edit made by the Task Requester is synchronized to the app, then display an error
Includes
Extends
Related Artifacts US 08.01.01

Photographs

Use Case 24: PostPhoto

Category Description
Participating Actors Task Requester
Goal Task Requester able to attach one or more photos to a task
Trigger Task Requester clicks the “Add Photo” button on the “Edit Task” or “New Task” page
Pre-Condition Task Requester has a photo they want to post or wants to take a picture with the camera on their device
Post-Condition On success, the task will now have a photo or multiple photos
Basic Flow
  1. Task Requester goes to the “Edit Task” or “New Task” page of a task they requested
  2. Task Requester presses the “Add Photo” button
  3. Task Requester either takes a photo with their camera or selects a photo they already have on their device
  4. The selected photo or photos are posted on the “Task Details” page
Exceptions
Includes
Extends
Related Artifacts US 09.01.01

Use Case 25: ViewPhoto

Category Description
Participating Actors Task Requester and Task Provider
Goal Task Requester and Task Provider can view any attached photos for a task
Trigger Task Requester and Task Provider click on the “Task Details” page
Pre-Condition N/A
Post-Condition On success, Task Requester and Task Provider can see the photos on the “Task Details” page
Basic Flow
  1. Task Requester and Task Provider are on the “Task Details” page
  2. Photos are viewable to the Task Requester and Task Provider
Exceptions
Includes
Extends
Related Artifacts Use Case 24: PostPhoto (US 09.01.01), US 09.02.01

Use Case 26: ManagePhoto

Category Description
Participating Actors Sys Admin
Goal Sys Admin can ensure each photo is under 65536 bytes in size
Trigger Task Requester or Task Provider attempt to post a task or profile
Pre-Condition Task Requester or Task Provider have a picture they want to post either via the camera on their device or from a photo they have stored on their device
Post-Condition On success, all photos that are posted within the app will be less than or equal to 65536 bytes
Basic Flow
  1. Task Requester or Task Provider attempts to post a task photo or profile photo
  2. Sys Admin checks if posted photo meets size requirements
Exceptions 1. If a photo is above 65536 bytes, the Sys Admin will not allow the user to post the photo
Includes PostPhoto US 09.01.01
Extends
Related Artifacts US 09.03.01

Geolocation and Maps

Use Case 27: PostGeoLocation

Category Description
Participating Actors Task Requester
Goal Task Requester able to specify a geographical location on a map related to said task
Trigger Task Requester or Task Provider click on the “Location” button on the “Task Details” page
Pre-Condition Task Requester has a geographical location that is related to said task
Post-Condition On success, Task Requester or Task Provider can view a geographical location of task on a map
Basic Flow
  1. Task Requester clicks on a said task to view its “Task Details” page
  2. Task Requester clicks on the “Add Photos” button on the “Task Details” page
  3. Task Requester specifies a geographical location on a map to displayed to other users
Exceptions
Includes
Extends
Related Artifacts US 10.01.01

Use Case 28: ViewGeoLocation

Category Description
Participating Actors Task Requester or Task Provider
Goal Task Requester or Task Provider able to view a geographical location on a map related to said task
Trigger Task Requester and Task Provider click on the “Task Details” page
Pre-Condition N/A
Post-Condition On success, Task Requester and Task Provider can see a map of geographical location on the “Task Details” page
Basic Flow
  1. Task Requester and Task Provider are on the “Task Details” page
  2. Map of geographical location is viewable to the Task Requester and Task Provider
Exceptions
Includes
Extends
Related Artifacts Use Case 27: PostGeoLocation (US 10.01.01), US 10.02.01

Use Case 29: TasksNearMe

Category Description
Participating Actors Task Provider
Goal See a map of tasks that are not completed within a 5km radius of the Task Provider
Trigger Task Provider clicks the “Map” button on the home screen
Pre-Condition Task Provider’s device must allow the app to track their current location
Post-Condition On success, a map of tasks in a 5km radius of the Task Provider will be displayed
Basic Flow
  1. Task Provider selects "Map” from the home screen
  2. App displays the Task Provider’s current location
  3. A map of tasks in a 5km radius of the Task Provider's current location
Exceptions 1. If the Task Provider’s device does not allow the app to track their location, either ask the Task Provider to grant the app that right or display an error
Includes
Extends
Related Artifacts Use Case 27: PostGeoLocation (US 10.01.01), US 10.03.01

"Wow" Factor

Use Case 30: AddCategoryToTask

Category Description
Participating Actors Task Requester
Goal Task Requester will create every task with a “Category” attribute
Trigger Task Requester is on the “New Task” page
Pre-Condition Task Requester is creating a new task
Post-Condition On success, every task on the app will have a “Category” attribute
Basic Flow
  1. Task Requester is creating a new task
  2. Task Requester selects a category from the “Category” list provided on the “New Task” page
Exceptions 1. If a current category does not exist, the Task Requester can select the “Other” category request a new category
Includes
Extends
Related Artifacts Use Case 1: AddTask (US 01.01.01 )

Use Case 31: BrowseCategory

Category Description
Participating Actors Task Provider
Goal Task Provider can browse tasks by category
Trigger Task Provider clicks the “Browse Categories” button on the home screen
Pre-Condition Task Provider has a category they want to browse
Post-Condition On success, a Task Provider can browse through various categories and find related tasks
Basic Flow
  1. Task Provider clicks the “Browse Categories” button on the home screen
  2. Task Provider selects the category they want to browse through from the “View Categories” page
  3. Task Provider views a list of tasks related to that category
Exceptions
Includes
Extends
Related Artifacts Use Case 30: CreateNewCategory

Use Case 32: MaxBidOnTask

Category Description
Participating Actors Task Requester
Goal Task Requester sets every task to have a maximum bid amount that they would be willing to pay
Trigger Task Requester is on the “New Task” page
Pre-Condition Task Requester is creating a new task
Post-Condition On success, every task on the app will have a maximum bid amount
Basic Flow
  1. Task Requester is on the “New Task” page
  2. Task Requester types in a maximum bid amount that they’d be willing to pay for this task to be performed in the “Maximum Bid” text field
Exceptions
Includes
Extends
Related Artifacts Use Case 1: AddTask (US 01.01.01)

Clone this wiki locally