Skip to content

1.) Requirements Specification

Crumbtray edited this page Dec 3, 2012 · 36 revisions

Index

The required used cases are UC1 (photo entry), UC2 (text entry), UC3 (audio entry)

Additional, essential use cases were added: UC0.x

[UC1] Use Case: Completing a Task with Photo Submissions

[UC2] Use Case: Completing a Task with Text Submission

[UC3] Use Case: Completing a Task with Audio Submissions

[UC0.1] Use Case: Add Submission (generic): User, Task Creator

[UC0.2] Use Case: Sync Tasks: User

[UC0.3] Use Case: View List of Tasks: User

[UC0.4] Use Case: Add Task: User

[UC0.5] Use Case: View Task: User

[UC0.5] Use Case: Add Submission: User, Task Creator

[UC0.6] Use Case: View Submission: User

Test Cases Derived From User Stories

Additional Information

Definition of Submission and Task

Requirements Document

This page will contain the requirements specification for our project. Use Cases are labeled as UC#, and User Stories are labelled as US#.

[UC1] Use Case: Completing a Task with Photo Submissions

Participating Actors: Task Creator, User

Goal: Complete a task by adding photos
Pre-Conditions: Task exists and is viewable
Trigger: User clicks the Add Submission button
Post-Conditions: Submission is viewable (according to share settings) under the task, with the photos attached to the submission.

Basic Flow:

  1. User selects the Task from the List of Public Tasks screen.
  2. Task should appear in the Task View screen.
  3. User clicks the Add Submission option to complete task.
  4. System shows the Add Submission UI.
  5. User enters the summary of the entry in the Submission Summary box.
  6. User selects the Add Photo option.
  7. System opens the Add Photo UI.
  8. User takes a photo using the Capture button.
  9. System shows a preview of the photo.
  10. User selects the Submit option to submit the picture.
  11. System returns the user to the Add Submission UI, with the photo thumbnail added to the list of photos.
  12. User selects the option to share to public.
  13. User submits the task completion entry by selecting the Submit option.
  14. System returns the user to the View All Tasks screen.

Exceptions:

  1. If at step 4 to step 9 the user wants to cancel the operation, the user can select the Cancel option, returning the user back to step 1.
  2. If the user wishes to take more photos, at step 10 the user can select the Add Photo option, and the system will take the user back to step 6.
  3. If the user wants to set the sharing to Private, the user at step 11 can select the Private option.
  4. If the user wants to set the sharing option between them and the Task Creator, the user at step 11 can select the Creator option.

Notes: Use Case will be subject to change (in Project part 3)

[UC2] Use Case: Completing a Task with Text Submission

Participating Actors: Task Creator, User

Goal: Complete a task by adding text
Pre-Conditions: Task exists and is viewable
Trigger: User clicks the Add Submission button
Post-Conditions: Submission is viewable (according to share settings) under the task, with the text attached to the submission.

Basic Flow:

  1. User selects the Task from the List of Public Tasks screen.
  2. Task should appear in the Task View screen.
  3. User clicks the Add Submission option to complete task.
  4. System shows the Add Submission UI.
  5. User enters the summary of the entry in the Submission Summary box.
  6. User adds the text entry to the Submission Text box.
  7. User selects the option to share to public.
  8. User submits the task completion entry by selecting the Submit option.
  9. System returns the user to the View All Tasks screen.

Exceptions:

  1. If at step 4 to step 8 the user wants to cancel the operation, the user can select the Cancel option, returning the user back to step 1.
  2. If the user wants to set the sharing to Private, the user at step 7 can select the Private option.
  3. If the user wants to set the sharing option between them and the Task Creator, the user at step 7 can select the Creator option.

Notes: Use Case will be subject to change (in Project part 3)

[UC3] Use Case: Completing a Task with Audio Submissions

Participating Actors: Task Creator, User

Goal: Complete a task by adding audio submissions.
Pre-Conditions: Task exists and is viewable
Trigger: User clicks the Add Submission button
Post-Conditions: Submission is viewable (according to share settings) under the task, with the audio clips attached to the submission.

Basic Flow:

  1. User selects the Task from the List of Public Tasks screen.
  2. Photo task should appear in the Task View screen.
  3. User clicks the Add Submission option to complete task.
  4. System shows the Add Submission UI.
  5. User enters the summary of the entry in the Submission Summary box.
  6. User selects the Add Audio option.
  7. System opens the Add Audio UI.
  8. User creates an audio clip using the Capture button.
  9. System starts recording the audio clip.
  10. User stops recording the audio clip by clicking Stop (Replaces the Capture button).
  11. User selects the Submit option to submit the audio clip.
  12. System returns the user to the Add Submission UI, with the audio clip thumbnail added to the list of photos.
  13. User selects the option to share to public.
  14. User submits the task completion entry by selecting the Submit option.
  15. System returns the user to the View All Tasks screen.

Exceptions:

  1. If at step 4 to step 13 the user wants to cancel the operation, the user can select the Cancel option, returning the user back to step 1.
  2. If the user wishes to create more audio clips, at step 12 the user can select the Add Audio option, and the system will take the user back to step 7.
  3. If the user wants to set the sharing to Private, the user at step 13 can select the Private option.
  4. If the user wants to set the sharing option between them and the Task Creator, the user at step 13 can select the Creator option.

Notes: Use Case will be subject to change (in Project part 3)

[UC0.1] Use Case: Add Submission (generic): User, Task Creator

Participating Actors: User, System, Server

Goal: Add a submission to a task (encompasses UC1,UC2,UC3)
Pre-Condition: The task we wish to make a submission for exists
Trigger: User clicks the Add Submission button
Post-Condition: The task specified will have a submission added

Basic Flow:

  1. User clicks one of the task view tabs
  2. System shows the appropriate tasks
  3. User clicks one of the tasks
  4. System shows the specified task
  5. User clicks the ‘Add Submission’ button
  6. System shows the Add Submission UI
  7. User fills in the submission
  8. If the requirements for the submission are met the submit button is enabled
  9. User clicks the submit button
  10. System adds the submission to the tasks and send the submission to the server

Exceptions:

  1. If the system is not connected to the internet in step 10, the system will save the change and send it to the server once the system is connected to the internet

[UC0.2] Use Case: Sync Tasks: User

Participating Actors: User, System, Server

Goal: To sync the task list with the server
Pre-Conditions: Connected to the internet, Server is running
Trigger: User clicks the Sync button
Post-Conditions: The task list will be synced with the server

Basic Flow:

  1. User clicks the ‘Sync’ Button in the main UI screen
  2. System sends a sync request to the server
  3. Server responds with the list of tasks
  4. System updates the task list with received tasks

Exceptions:

  1. If the system is not connected to the internet in step 2, the system will show a warning and the task list will not be synced

[UC0.3] Use Case: View List of Tasks: User

Participating Actors: User, System

Goal: To see the list of tasks
Pre-Conditions: None
Trigger: User clicks on a one of the task view tabs
Post-Conditions: None

Basic Flow:

  1. User clicks on one of the task view tabs in the main UI
  2. System shows a list of tasks

Exceptions:

  1. If there are no tasks, none will be shown
  2. If the user clicks the ‘filter by creator’ tab the system will display a dialog for the user to fill in the creator. Once the dialog has been filled in the system will go to step 2.

[UC0.4] Use Case: Add Task: User

Participating Actors: User, System, Server

Goal: To add a task
Pre-Condition: None
Trigger: User clicks on the Add Task button
Post-Condition: A task will be added

Basic Flow:

  1. The user clicks on the ‘ Add Task’ button in the main UI
  2. System shows the Add Task UI
  3. User fills in Task Name, Task Description, Task Requirements, Tasking sharing settings
  4. If all the required fields have been filled in, the system will enable the submit button
  5. User clicks submit
  6. System locally adds the task, sends the newly created task to the server and goes back to the Main UI Screen

Exception:

  1. If the system is not connected to the internet in step 4 the system will send the change to the server once it is connected to the internet
  2. If the user does not give a task name or description is step 3 the system will not enable the submit button until the user fills in those fields

[UC0.5] Use Case: View Task: User

Participating Actors: User, System

Goal: View a Task
Pre-Condition: The task we wish to view exists
Trigger: User clicks on a one of the tasks listed
Post-Condition: None

Basic Flow:

  1. User clicks on one of the Task View tabs
  2. System shows the appropriate task list
  3. User clicks on one of the tasks
  4. System goes to the Task View UI

[UC0.6] Use Case: View Submission: User

Participating Actors: User, System

Goal: View a submission
Pre-Condition: The submission we wish to view exists
Trigger: User clicks on a one of the submissions in the list
Post-Condition: None

Basic Flow:

  1. User clicks one of the task view tabs
  2. System shows the appropriate tasks
  3. User clicks the task which contains the submission
  4. System shows the specified task
  5. User clicks the submission
  6. System shows the View Submission UI

[UC0.7] Use Case: Publish Tasks

Participating Actors: User, System

Goal: Publish a submission
Pre-Condition: The submission we wish to view is created Trigger: User clicks on "Add submission"
Post-Condition: Submission is viewable by all users.

Basic Flow:

  1. User creates a submission following Use Case [UC0.1].
  2. Before Step 13 in Use Case [UC0.1], the user sets the "Submission Sharing" option to Public.
  3. User clicks the Submit button.
  4. System returns the user to the Task View, saving the submission.
  5. User finds the corresponding submission they submitted to following Use Case [UC0.6].
  6. System shows the published submission.

[UC0.8] Use Case: Select Random Task

Participating Actors: User, System

Goal: Select a Random Task
Pre-Condition: Viewable tasks exist in the task list. Trigger: User clicks on "Random Tasks"
Post-Condition: User sees a random task in the Task List.

Basic Flow:

  1. User clicks on "Random Tasks"
  2. System shows a random task for the user.
  3. User clicks on the Random Task.
  4. System opens the task, showing the Task View.

Exception:

  1. If at 2, the user decides to want another random page, the user can click on Random Task again to get another random task. Then the user returns to step 2 of the use case.

Test Cases Derived From User Stories

[US1] As a user, I want to define tasks.

  • Create a task.
  • Check that task is viewable either in "Your Tasks" or "Public Tasks" lists.

[US2] As a user, I want to share tasks.

  • Create a task, and set it to public.
  • On another user, check that the task is viewable in the "Public Tasks" list.

[US3] As a user, I want to fufill tasks.

  • View a task, and complete a task.
  • Task should have the new submission attached to the task.

[US4] As a user, I want some tasks to requires photos.

  • Create a task, and set the Task Requires option to Photo.
  • Task is viewable, and the Task Requires box is set to value of photos.

[US5] As a user fufilling a task I want to take photos and attach the photos to the task.

  • Complete a task by adding photos.
  • Task contains new submission with photos attached in that submission.

[US6] As a user who defines a task I want to receive the results of users fufilling a task.

  • Open a defined task that has submissions attached to it.
  • Open a submission to see the attachments of the submission.

[US7] As a user I want to be able to fufill my own tasks.

  • View own tasks and complete a task in that list.
  • Task should be viewable in the "Your Tasks" list
  • Task should contain the submission.

[US8] As a user fufilling a task I want my actions time stamped.

  • Complete a task, and view the submission time stamps.

[US9] As a user, I want tasks to be stored so I can view them offline.

  • Open Main UI window while device has no internet connection.
  • Tasks should be viewable.

[US10] As a user, I want to fufill tasks that require text by entering text.

  • Complete a task by adding text.
  • Task contains the new submission with text entry.

[US11] As a user fufilling a task, I want to be able to attach multiple photos.

  • Complete a task with multiple photos.
  • Task contains the new submission with the photos.

[US12] As a user, I should be able to retake photos I am taking, if I fail to take the photo I want to correct, so that I don't have erroneous photos.

  • Complete a task by:
    • Take a photo
    • Delete photo
    • Take another photo
  • Task contains new submission with the correct photos.

[US13] As a user I should be able to get tasks from other users somehow.

  • View a task in the "Public Tasks" list that the user did not create.

[US14] As a user fufilling a task I should be able to send the fufilled report back to the task writing user somehow.

  • Complete task with Share Setting set to Creator
  • Task submission is viewable by Creator.

[US15] As a user creating a task I want some tasks to be local only to myself.

  • Define a task
  • Set Task Sharing option to LOCAL.
  • Task shows in "Your Tasks" list.
  • Task does not show in other user's "Public Tasks" list.

Test Cases Derived From Use Cases

[US16] Create a Submission By Taking a Photo:

  • Take a single photo
  • Enter submission summary
  • No text
  • No Audio
  • Set to Public
  • Submit

[US17] Create a Submission By Taking Photos: Same as [US16], but:

  • Take more than one photo.

[US18] Create a Private Submission By Taking Photos: Same as [US16], but:

  • Set to Private.

[US19] Cancel a Photo Submission: Same as [US16], but:

  • Cancel the process when taking a photo.

[US20] Create a Submission By Entering Text:

  • Enter Text
  • Enter Submission Summary
  • No Photos
  • No Audio
  • Set to Public
  • Submit

[US21] Create a Private Submission By Entering Text: Same as [US20], but:

  • Set to Private.

[US22] Cancel a Text Submission: Same as [US20], but:

  • Cancel the submission.

[US23] Create a Submission By Recording an Audio Clip:

  • No Text
  • Enter Submission Summary
  • No Photos
  • One Audio Clip
  • Set to Public
  • Submit

[US24] Create a Submission By Taking Audio Clips: Same as [US23], but:

  • Take more than one audio clip.

[US25] Create a Private Submission By Taking Audio Clips: Same as [US23], but:

  • Set to Private.

[US26] Cancel a Photo Submission: Same as [US23], but:

  • Cancel the process when recording an audio clip.