-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements Specification
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)
As a task requester, I want the maximum length of the task title to be at least 30 characters. ||
As a task requester, I want the maximum length of the task description to be at least 300 characters.
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 |
As a task requester, I want to view a list of my tasks, with their titles and statuses.
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 |
As a task requester, I want to edit the details for any one of my tasks.
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 |
As a task requester, I want to delete a task of mine.
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 |
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).
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 |
As a task requester or provider, I want a task to have a status to be one of: requested, bidded, assigned, or done.
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 |
As a user, I want a profile with a unique username and my contact information.
(Includes)
As a user, I want the maximum length of a username to be at least 8 characters.
As a user, I want the contact information to include an email address and a phone number.
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 |
As a user, I want to edit the contact information in my profile.
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 |
As a user, I want to, whenever a username is shown, be able to retrieve and see its corresponding 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 |
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.
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 |
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).
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 |
As a Task Provider, I want to make a bid on a given task with status: requested or bidded, using a monetary amount.
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 |
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.
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 |
As a Task Requester, I want to be notified of a bid on my tasks.
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 |
As a Task Requester, I want to view a list of my tasks with status bidded, each having one or more bids.
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 |
As a Task Requester, I want to view the bids on one of my tasks.
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 |
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.
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 |
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.
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 |
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.
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 |
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.
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 |
As a Task Requester, I want to set a task with status: assigned to have status: done, when it is completed.
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 |
As a task requester, I want to set a task with status: assigned to have status: requested, when it is not completed.
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.
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 |
As a task requester, I want to add or edit tasks while off the network, and have these changes synchronized once I regain connectivity.
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 |
As a task requester, I want to optionally attach one or more photographs as further viewable details to a task of mine.
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 |
As a task requester, I want the maximum number of photographs that can be attached to a task to be at least 10.
As a task requester or provider, I want to view any attached photograph for a task.
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, |
As a sys admin, I want each photograph to be under 65536 bytes in 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 |
As a task requester, I want to specify a geo location on a map as further viewable details to a task of mine.
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 |
As a task requester or provider, I want to view any geo location for a task, on a map.
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 |
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.
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 |
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.
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 |
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 |
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 |