Skip to content

Requirements Specification

jtbakker edited this page Apr 9, 2018 · 37 revisions

Task Basics

US 01.01.01

As a task requester, I want to add a task to my tasks, each denoted with a title, brief description, and initial status: requested.

(Includes)

US 01.01.02 (added 2018-02-14)

As a task requester, I want the maximum length of the task title to be at least 30 characters. ||

US 01.01.03 (added 2018-02-14)

As a task requester, I want the maximum length of the task description to be at least 300 characters.

Use Case 1: Add Task

Category Description
Participating Actors Task Requester
Goal Add task to my tasks
Trigger Task Requester has a task they would like to have completed
PreCondition Task Requester knows the title for the task with maximum length of at least 30 characters, description of the task with maximum length of at least 300 characters and the status of the task
PostCondition Task is added to the Task Requester's task list
Flow 1. Task Requester requests to add a task
2. App prompts Task Requester for title for the task, a brief description of the task, and - optionally - its location and photos.
3. Task Requester enters the information for the task.
4. App saves all of the information regarding the task and adds it to the Task Requester's task list.
5. Task's status is intially set to REQUESTED.
Exceptions 3.1 Task Requester doesn't enter information into mandatory text fields, or the title of the task/description of the task go over the maximum length.
3.2 App prompts the Task Requester again for missing or incorrect information.
3.3 Task Requester enters mandatory information correctly into text fields.
3.4 App saves the data entered by Task Requester.
4.1 App is unable to save the information.
4.2 Task that is unable to be saved is not stored in the database and error is shown to owner.
Includes Case 23: Offline Sync
Extends
Related Artifacts ElasticSearch Task Index

US 01.02.01

As a task requester, I want to view a list of my tasks, with their titles and statuses.

Use Case 2: View Tasks

Category Description
Participating Actors Task Requester
Goal View all tasks that the Task Requester has created
Trigger Task Requester wants to view all of the tasks that they have created
PreCondition Task Requester must have at least one task to view
PostCondition Task Requester can view all of the tasks in their task list
Flow 1. Task Requester requests the information about their tasks from the App
2. App requests for the information from the App's database.
3. App shows the user all of their tasks with title, description, status, and lowest bid.
Exceptions 3.1 With no tasks in the task list, there is nothing displayed.
Includes
Extends
Related Artifacts ElasticSearch Task Index

US 01.03.01

As a task requester, I want to edit the details for any one of my tasks.

Use Case 3: Edit Task Details

Category Description
Participating Actors Task Requester
Goal Task Requester is able to change details for one or more of their tasks.
Trigger Task Requester wants to edit details of one or more tasks.
PreCondition Task Requester has at least one item (or more) to edit.
PostCondition Information of the tasks is edited and updated.
Flow 1. Task Requester selects task to edit.
2. App prompts user for the information they would like to edit from the existing task and checks status of task.
3. Task Requester enters the new information for the task.
4. App updates the task, after checking status of the task, and saves the new information, displaying the updated task to the screen.
Exceptions 2.1.1 Task Requester decides not to update the task.
2.1.2 App closes dialog box and doesn't save or edit any task information.
2.2.1 Status of the task makes it un-editable.
2.2.2 App provides an error message.
4.1 App fails to save information, displays error message.
4.2 App refers back to old data for edited task.
Includes Case 23: Offline Sync
Extends Case 2: View Tasks
Related Artifacts ElasticSearch Task Index

US 01.04.01

As a task requester, I want to delete a task of mine.

Use Case 4: Delete Task

Category Description
Participating Actors Task Requester
Goal Delete a task from Task Requester's task list
Trigger Task Requester wants to delete task from task list
PreCondition Task Requester must have at least one item to delete
PostCondition The task is deleted from the task list
Flow 1. Task Requester clicks on task they would like to delete.
2. App prompts Task Requester if they would like to delete the task.
3. Task Requester agrees to delete task.
4. App deletes task from Task Requester's task list.
Exceptions 2.1 Task Requester cancels deleting the task.
2.2 App leaves task unchanged and in the task list.
4.1 App can't delete the task, displays error to the screen.
4.2 App displays task in the list with information.
Includes
Extends Case 5: View Task Details
Related Artifacts ElasticSearch Task Index

Task Details

US 02.01.01

As a task requester or provider, I want to view all the details for a given task, including its title, description, status, and lowest bid so far (if any).

Use Case 5: View Task Details

Category Description
Participating Actors Task Requester, Task Provider
Goal Task Requester can view details of specific task
Trigger Task Requester chooses to view task
PreCondition Task Requester must have at least one item to view
PostCondition App displays the task and all of its details
Flow 1. Task Requester/Provider selects the task they would like to view.
2. App retrieves information for the specific task from the database.
3. App displays information for the task.
Exceptions 2.1 App can't retrieve information from the database.
2.2 App fails to display the item.
Includes Case 1: Add Task
Case 6: Task Status
Case 28: Map data
Case 16: View Task Bids
Extends Case 2: View Tasks
Related Artifacts ElasticSearch Task Index

US 02.02.01

As a task requester or provider, I want a task to have a status to be one of: requested, bidded, assigned, or done.

Use Case 6: Task Status

Category Description
Participating Actors Task Requester, Task Provider
Goal Task Requester can have a status for their task being one of: requested, bidded, assigned, or done.
Trigger Task Requester wants to know the status for their task.
PreCondition Task Requester must have at least one task in order to view it.
PostCondition Task Requester can view the status of their tasks.
Flow 1. Task Requester wishes to see the status of their tasks.
2. App displays task with status.
Exceptions
Includes
Extends
Related Artifacts ElasticSearch Task Index

User Profile

US 03.01.01

As a user, I want a profile with a unique username and my contact information.

(Includes)

US 03.01.02 (added 2018-02-16)

As a user, I want the maximum length of a username to be at least 8 characters.

US 03.01.03 (added 2018-02-16)

As a user, I want the contact information to include an email address and a phone number.

Use Case 7: Create User

Category Description
Participating Actors User
Goal User has a profile which contains their unique username and contact information
Trigger User signs up for the app, creating their account and profile
PreCondition User has an account and thus a profile
PostCondition User has a profile which contains their unique username and contact information
Flow 1. User clicks on the app.
2. User signs up for the app.
3. User enters contact information (under max length username, email and phone number).
4. App asks the User to confirm the data.
5. App saves the information the User input and creates a profile including the contact information.
Exceptions 3.1 User incorrectly enters contact information (over max length or invalid email/phone number).
3.2 App asks User to re-enter information that was incorrectly entered.
3.3 App saves correctly entered information into User's profile.
Includes
Extends
Related Artifacts ElasticSearch User Index

US 03.02.01

As a user, I want to edit the contact information in my profile.

Use Case 8: Edit Contact Information

Category Description
Participating Actors User
Goal User can edit contact information in User's profile
Trigger User expresses they would like to edit their contact information
PreCondition User must have contact information in order to edit.
PostCondition Contact information in the User's profile is updated.
Flow 1. User requests to edit contact information.
2. App prompts User to edit/enter new contact information.
3. User enters information and presses confirm.
4. App prompts user if they are sure they want to edit their information.
5. User confirms.
6. App saves and displays new contact information on the User's profile.
Exceptions 3.1 User enters incorrect information.
3.2 App prompts user to correct edited information.
3.3 App stores correctly updated information.
4.1 User presses cancel for updating information.
4.2 App returns to profile screen with original information.
6.1 App fails to save new contact information.
6.2 App displays error message to screen and reverts to original information.
Includes Case 7: Create User
Extends
Related Artifacts ElasticSearch User Index

US 03.03.01

As a user, I want to, whenever a username is shown, be able to retrieve and see its corresponding contact information.

Use Case 9: Get User Contact Information

Category Description
Participating Actors User
Goal Be able to see contact information of another User.
Trigger User clicks on another User's username
PreCondition There must be at least one other User
PostCondition On success, the User can view another User's contact information
Flow 1. User clicks on a different User's username.
2. System retrieves information about a different User from the database.
3. System displays contact information of the different User.
Exceptions 2.1 App fails to retrieve information about the User from the database.
2.2 App does not display user info.
Includes Case 7: Create User
Extends Case 5: View Task Details
Related Artifacts ElasticSearch User Index

Searching

US 04.01.01

As a Task Provider, I want to specify a set of keywords, and search for all tasks, with status: requested or bidded, whose description contains all the keywords.

Use Case 10: Search for Tasks

Category Description
Participating Actors Task Provider
Goal Display all tasks (requested/bidded) whose descriptions contain all keywords
Trigger Task Provider wants to search for certain tasks
PreCondition Task Provider knows which set of keywords
PostCondition All tasks with status:requested/bidded whose description contain all keywords are displayed
Flow 1. Task Provider indicates that they would like to search for tasks.
2. System prompts for a set of keywords.
3. Task Provider inputs a set of keywords.
4. System fetches and displays a list of all tasks whose descriptions contain all inputted keywords.
Exceptions 4.1 No tasks whose descriptions contain all keywords exist.
4.2 System displays no results.
Includes Case 11: Display Search Results
Extends
Related Artifacts ElasticSearch Task Index

US 04.02.01

As a Task Provider, I want search results to show each task with its Task Requester username, title, status, lowest bid so far (if any).

Use Case 11: Display Search Results

Category Description
Participating Actors Task Provider
Goal Given a task, display its Task Requester's username, title, status, and lowest bid so far (if any)
Trigger Task Provider has executed a search for tasks.
PreCondition Task Provider has executed a search and that search had one or more results.
PostCondition Each task in the search results displays the goal information.
Flow 1. System has a list of search results for tasks whose descriptions contain all keywords specified by the Task Provider.
2. For each task in search results, System fetches the goal information.
3. System formats and displays the goal information.
3.1. For each task with no existing lowest bid, System displays some message indicating that no bids have been placed.
Exceptions 2.1 System cannot fetch some piece of goal information.
2.2 System substitutes missing goal information with placeholder message.
Includes
Extends
Related Artifacts ElasticSearch Task Index

Task Bidding

US 05.01.01

As a Task Provider, I want to make a bid on a given task with status: requested or bidded, using a monetary amount.

Use Case 12: Bid on Task

Category Description
Participating Actors Task Provider
Goal Create a new bid with some monetary amount for a task
Trigger Task Provider wants to place a bid of some monetary amount for some selected task
PreCondition Task Provider has selected a task with status: requested/bidded and knows the monetary amount they would like to bid.
PostCondition A new bid with a provided monetary amount is placed for the selected task.
Flow 1. Task Provider has selected some task with status:requested/bidded and indicated that they would like to place a bid for that task.
2. System prompts Task Provider for monetary amount.
3. Task Provider inputs monetary amount.
4. System creates a places bid with that monetary amount for the selected task.
4.1. System sets the bid owner to the Task Provider's username.
Exceptions 3.1 Task Provider enters invalid monetary amount (e.g. 0, negative value, non-numeric entry).
3.2 System displays appropriate error message and prompts for re-entry.
3.3 Task Provider inputs valid monetary amount.
3.2 System sets inputted value as bid's monetary amount.
4.1 System is unable to create or place bid for the selected task.
4.2 System does not place bid.
Includes
Extends
Related Artifacts ElasticSearch Task Index
ElasticSearch Bid Index

US 05.02.01 (revised 2018-02-14)

As a Task Provider, I want to view a list of tasks that I have bidded on, each with its Task Requester username, title, status, lowest bid so far, and my bid.

Use Case 13: View Bids

Category Description
Participating Actors Task Provider
Goal Display all tasks that the Task Provider has bidded on, each with its Task Requester's username, title, status, lowest bid so far, and Task Provider's bid.
Trigger Task Provider indicates that they would like to view all tasks they have bidded on.
PreCondition
PostCondition A list containing all tasks bidded on by the Task Provider is displayed, each with the goal information.
Flow 1. Task Provider indicates that they would like to view all tasks they have bidded on.
2. System fetches all tasks bidded on by the Task Provider.
3. For each task, System fetches its Task Requester's username, title, status, lowest bid so far, and the Task Provider's bid.
4. System formats each task's row in the list with its relevant information, then displays the list to the Task Provider.
Exceptions 2.1 Task Provider has not bidded on any tasks.
2.2 System displays an empty list.
3.1 System is unable to fetch some some information for some of the tasks.
3.2 System replaces missing information with some placeholder value in each instance.
Includes Case 12: Bid on Task
Extends
Related Artifacts ElasticSearch Bid Index

US 05.03.01

As a Task Requester, I want to be notified of a bid on my tasks.

Use Case 14: Notify of Bids

Category Description
Participating Actors Task Requester
Goal Notify Task Requester of new bids on any of their tasks.
Trigger A new bid is placed on any of the Task Requester's tasks.
PreCondition The Task Requester has created at least 1 task and one of their tasks has been successfully bidded on.
PostCondition The Task Requester is notified of the new bid on one of their tasks.
Flow 1. When a Task Provider places a bid on one of the Task Requester's tasks, System displays a pop-up notification to the Task Requester containing both the name of the task bidden on and the monetary amount.
Exceptions 1.1 System is unable to send notification to Task Requester.
1.2 System aborts sending notification.
Includes Case 12: Bid on Task
Extends
Related Artifacts ElasticSearch Bid Index
ElasticSearch User Index

US 05.04.01

As a Task Requester, I want to view a list of my tasks with status bidded, each having one or more bids.

Use Case 15: View Bidded Tasks

Category Description
Participating Actors Task Requester
Goal Display a list of all Task Requester's tasks with status:bidded, where each has 1 or more bids.
Trigger Task Requester indicates that they want to view all of their tasks with status:bidded
PreCondition Task Requester has created at least 1 task and at least 1 has been bidded on.
PostCondition A list of all Task Requester's tasks with status:bidded is displayed.
Flow 1. Task Requester indicates that they want to view a list of all their tasks with status:bidded.
2. System fetches all tasks belonging to the Task Requester with status:bidded.
3. System displays list of all retrieved tasks to Task Requester.
Exceptions 2.1 No tasks belonging to Task Requester with status:bidded exist.
2.2 System displays an empty list.
Includes
Extends
Related Artifacts ElasticSearch Task Index

US 05.05.01

As a Task Requester, I want to view the bids on one of my tasks.

Use Case 16: View Task Bids

Category Description
Participating Actors Task Requester
Goal Given a task, display all of its bids
Trigger Task Requester selects one of their tasks and indicates that they want to view its bids.
PreCondition Task Requester has at least 1 task and has selected 1 of those tasks.
PostCondition All bids (if any) for the selected task are displayed.
Flow 1. Task Requester selects one of their tasks and indicates that they want to view its bids.
2. System retrieves all bids for the selected task.
3. System displays all retrieved bids for the selected task.
Exceptions 2.1 No bids have been placed on selected task.
2.2 System displays empty list of bids.
Includes
Extends
Related Artifacts ElasticSearch Bid Index

US 05.06.01

As a Task Requester, I want to accept a bid on one of my tasks, setting its status to assigned, and clearing any other bids on that task.

Use Case 17: Accept Bid

Category Description
Participating Actors Task Requester
Goal Accept a bid for a task, set its status to assigned, and remove all other bids for that task.
Trigger Task Requester accepts one of the bids for a selected task.
PreCondition Task Requester has created at least 1 task, the selected task has at least 1 bid, and the Task Requester is currently viewing all bids for that task.
PostCondition The selected bid is accepted, the task's status is set to assigned, and all other bids for that task are removed.
Flow 1. Task Requester selects 1 of the bids for their task and indicates that they want to accept it.
2. System updates the task's status to assigned.
3. System deletes all other bids for that task.
Exceptions 2.1 System is unable to update the task's status.
2.2 System aborts the accepting of the bid.
Includes
Extends Case 16: View Task Bids
Related Artifacts ElasticSearch Bid Index
ElasticSearch Task Index

US 05.07.01

As a Task Requester, I want to decline a bid on one of my tasks. Declining may be done by marking the bid as such or hiding it.

Use Case 18: Decline Bid

Category Description
Participating Actors Task Requester
Goal The selected bid is declined and deleted.
Trigger Task Requester has chosen some bid for 1 of their tasks and has indicated that they want to decline it.
PreCondition Task Requester has at least 1 tasks and the selected task has been bidded on.
PostCondition The selected bid is declined and removed.
Flow 1. Task Requester is viewing the list of all bids for a selected task, then indicates that they want to decline 1 of the bids.
2. System deletes the bid from the list of bids for that task.
Exceptions 2.1 System is unable to delete the bid.
2.2 System does not delete bid and displays error message.
Includes
Extends Case 16: View Task Bids
Related Artifacts ElasticSearch Bid Index

Task Assigned

US 06.01.01

As a Task Provider, I want to view a list of tasks I am assigned, each task with its Task Requester username, title, status, and my accepted bid.

Use Case 19: View Assigned Tasks (Provider)

Category Description
Participating Actors Task Provider
Goal Display a list of all tasks assigned to the Task Provider, with each task including its requester username, title, status, and the Task Provider's accepted bid.
Trigger Task Provider indicates that they want to view a list of their assigned tasks.
PreCondition
PostCondition A list of all the Task Provider's assigned tasks is displayed.
Flow 1. Task Provider indicates that they want to view a list of their assigned tasks.
2. System fetches all tasks bidded on by the Task Provider where their bid was accepted.
3. System displays list of all retrieved tasks.
Exceptions 2.1 No tasks exist that were bidded on by the Task Requester and had those bids accepted.
2.2 System displays an empty list.
Includes
Extends
Related Artifacts ElasticSearch Task Index

US 06.02.01

As a Task Requester, I want to view a list of my tasks with status: assigned, each task with its Task Provider username, title, status, and accepted bid.

Use Case 20: View Assigned Tasks (Requester)

Category Description
Participating Actors Task Requester
Goal Display a list of all tasks belonging to Task Requester with status:assigned, each with its Task Provider username, status, and accepted bid.
Trigger Task Requester indicates that they want to view a list of their tasks with status:assigned.
PreCondition
PostCondition A list of all the Task Provider's tasks with status:assigned is displayed.
Flow 1. Task Requester indicates that they want to view a list of their tasks with status:assigned.
2. System fetches all tasks belonging to Task Requester with status:assigned.
3. For each task, System fetches its Task Provider's username, title, and accepted bid.
4. System formats each task with its information for display, then displays the list of tasks and their information.
Exceptions 2.1 No tasks belonging to Task Requester with status:assigned exist.
2.2 System displays an empty list.
3.1 System is unable to fetch information for some task.
3.2 System replaces information with placeholder value for display.
Includes
Extends
Related Artifacts ElasticSearch Task Index

Task Done

US 07.01.01

As a Task Requester, I want to set a task with status: assigned to have status: done, when it is completed.

Use Case 21: Complete Task

Category Description
Participating Actors Task Requester
Goal Update a task's status to done when it is completed.
Trigger When viewing the information for a task, Task Requester indicates that they want to update its status.
PreCondition Task Requester is viewing a task's information and that task has status:assigned.
PostCondition Task's status is set to done.
Flow 1. While viewing information for a task, Task Requester indicates that they want to change a task's status from assigned to done.
2. System changes task's status to done.
Exceptions 2.1 System is unable to update task's status.
2.2 System does not change task's status and displays error message.
Includes
Extends Case 3: Edit Task Details
Related Artifacts ElasticSearch Task Index

US 07.02.01 (revised 2018-03-28)

As a task requester, I want to set a task with status: assigned to have status: requested, when it is not completed.

US 07.03.01 (added 2018-03-28)

As a task requester, I want to set a task with status: assigned to have status: bidded, when it is not completed and there are other bids on it.

Use Case 22: Re-request Task

Category Description
Participating Actors Task Requester
Goal Reset a task to a biddable state if task is not completed
Trigger Task Requester decides to change state from assigned to requested
PreCondition Task is in an assigned state
PostCondition Task is in a requested state if it has no bids; otherwise, it is in a bid state
Flow 1. Requester initiates state change
2. System checks the number of bids on the task
3. If the task has no bids, set its status to requested; otherwise, set its status to bid
Exceptions
Includes
Extends Case 3: Edit Task Details
Related Artifacts ElasticSearch Task Index

Offline behavior

US 08.01.01

As a task requester, I want to add or edit tasks while off the network, and have these changes synchronized once I regain connectivity.

Use Case 23: Offline Sync

Category Description
Participating Actors Task Requester
Goal Add or Edit tasks while offline which get updated once connectivity is gained
Trigger User adds or edits tasks while offline
PreCondition User adds or edits a task without network connectivity
PostCondition User has tasks added or edited once network connectivity is gained again
Flow 1. User adds or edits a task
2. App saves and stores data
3. App displays information once network connectivity is regained
Exceptions 2.1 App fails to save and store data
2.2 App prints error message.
3.1 App fails to display newly added or newly updated task.
Includes
Extends
Related Artifacts ElasticSearch Task Index
Local GSON File for newly-created tasks

Photographs

US 09.01.01

As a task requester, I want to optionally attach one or more photographs as further viewable details to a task of mine.

Use Case 24: Add Photo

Category Description
Participating Actors Task Requester
Goal Add Photo to a task
Trigger Requester initiates add photo to task
PreCondition
PostCondition Photo Added to task
Flow 1. Requester Selects task to add photo to.
2. Requester Selects Photo to upload.
3. Systems adds photo to task
Exceptions 3.1 System is unable to save photo selected by Requester
3.2 System aborts adding photo and displays error message
Includes Case 26: Limit Photo Size
Extends Case 3: Edit Task Details
Related Artifacts Image Files on User Device

US 09.01.02

As a task requester, I want the maximum number of photographs that can be attached to a task to be at least 10.

US 09.02.01

As a task requester or provider, I want to view any attached photograph for a task.

Use Case 25: View Photos

Category Description
Participating Actors User
Trigger User requests to see a picture
PreCondition Task has photos
PostCondition Photos are displayed
Flow 1. User Views Task
2. System Fetches Images
3. System displays Images
Exceptions 2.1 Task has no images
2.2 System does not display images
Includes
Extends Case 5: View Task Details
Related Artifacts Image Files on User Device,

US 09.03.01

As a sys admin, I want each photograph to be under 65536 bytes in size.

Use Case 26: Limit Photo Size

Category Description
Participating Actors User
Goal Photos are limited to 64kB in size
Trigger Any photo upload
PreCondition
PostCondition Photo has a maximum size of 64kB
Flow 1. User Selects a photo to upload
2. System checks photo size
3. System automatically rescales photo
Exceptions
Includes
Extends
Related Artifacts Image Files on User Device

Geolocation and Maps

US 10.01.01

As a task requester, I want to specify a geo location on a map as further viewable details to a task of mine.

Use Case 27: Add Geolocation to Task

Category Description
Participating Actors Task Requester
Goal Add geolocation to task
Trigger Requester initiates request to add geolocation
PreCondition
PostCondition Map data added to task details
Flow 1. User indicates they want to edit map data
2. User chooses location on a map
3. System updates task geolocation data
Exceptions 2.1 System is unable to load geolocation inforormation
2.2 System displays error message instead of map
Includes
Extends Case 3: Edit Task Details
Related Artifacts ElasticSearch Task Index, Mapbox

US 10.02.01

As a task requester or provider, I want to view any geo location for a task, on a map.

Use Case 28: Map data

Category Description
Participating Actors User
Goal View Map Data for task
Trigger User requests to see task details
PreCondition Task has geolocation data
PostCondition Map is shown in Task View
Flow 1. User requests to see task details
2. System gets task data
3. System displays task data including map to user
Exceptions 3.1 Task has no geolocation data
3.2 Map is not shown
Includes
Extends
Related Artifacts ElasticSearch Task Index, Mapbox

US 10.03.01

As a task provider, I want to see a map of all tasks (that have locations), with status: requested or bidded, that are within 5 km of my current location.

Use Case 29: View Map of Tasks

Category Description
Participating Actors Task provider
Goal View Tasks close to provider
Trigger Provider indicates that he wants to see a map view of close tasks
PreCondition
PostCondition A map of close tasks is shown (within 5km)
Flow 1. Provider indicates they want to see a map of views.
2. System fetches all tasks
3. System calculates close tasks using their geolocation data (if available)
4. System displays tasks on a map
Exceptions 3.1 A task has no geolocation data
3.2 System does not include that task in results
Includes Case 27: Add Geolocation to Task
Extends
Related Artifacts ElasticSearch Task Index, Mapbox

"Wow" Factor

Non-trivial, visible requirement(s) of your choice that fit with the app, on approval from your TA. This should be decided for the initial use cases.

An example could be a way to rate task providers and see their ratings. Another could be dealing with tasks (that have locations) from a map view.

Use Case 30: Add Ads

Category Description
Participating Actors User
Goal Ads displayed in-app
Trigger User loads an Activity
PreCondition Ads are not disabled
PostCondition User Views ad
Flow User opens app, system loads ad, user is shown ad
Includes
Extends
Related Artifacts

Use Case 31: Disable ads temporarily

Category Description
Participating Actors User
Goal Disable ads for a user
Trigger User watches a video ad
PreCondition
PostCondition The system no longer displays ads
Flow 1. User requests to view video ad
2. System Loads ad and displays it
3. System disables ads
Exceptions 2.1 User does not finish watching ad
Includes Case 30: Add Ads
Extends
Related Artifacts

Use Case 32: Profile Image

Category Description
Participating Actors User
Goal Provide a way for the user to have a custom public profile image or a place holder by default
Trigger User
PreCondition User wants a profile image
PostCondition
Flow 1. User goes to their profile page
2. Select an image either from the users gallery or camera
3. The System saves/uploads the image 4. Save confirmation is displayed to the user
Exceptions 3.1 Unable to connect to server
3.2 System aborts saving and uplodading image
3.3 System displays network error message
Includes Case 32: Create User
Extends
Related Artifacts Image Files on User Device
Clone this wiki locally