...
- Create a bucket
- Precondition: User must have an account.
- Navigate to “Create Bucket” option
- Type in bucket name
- Optional: add others to bucket
- Enter the usernames of other users.
- Click “Create”
- Create a task
- Preconditions: The bucket that will contain that task must already have been created. Users who will be added to task must be members of that bucket already.
- Navigate to “Create New Task”
- Choose bucket for new task (if the user navigated to the “Create New Task” screen from viewing a particular bucket, that bucket should be the default choice. However, the user should still have the option to change it.)
- Enter task name
- Optional: add users to task
- Enter usernames of those users
- Click “Create”
- Add or Remove Users from a Task or Bucket
- Preconditions:
- All users involved must already have accounts.
- Task or bucket must already exist.
- If it’s a task, the users to be added to the task must already be in the tasks’ bucket.
- If we’re trying to remove a person, that person must already have been added at some earlier point.
- Select the relevant bucket or task
- If you are adding or deleting users from a task, select the task within that bucket.
- Select “Add/Delete Users from this Bucket/Task” option
- If delete, select the users you want to delete from a list of users in the bucket/task
- If add, enter the username of the user you want to add to the bucket/task.
- Click “Add” or “Delete”
- Preconditions:
Domain Analysis
- Each user will have exactly one Breadcrumbz account, which is in turn associated with a single username and password. Each username must be unique.
- An account can have multiple buckets, and each of these bucket can be associated with multiple accounts. This is because buckets can be shared between users. We do not distinguish between a bucket’s creator and the other users who are sharing it, but if a bucket were to be associated with zero accounts at any point, it would cease to exist.
- Every bucket contains a set of 0+ tasks. Each of these tasks is associated with 0+ accounts, all of which must also be associated with the bucket that contains that task. (A task is allowed to be “unassigned”---in other words, not associated with any account.)
- Every task is also associated with a number of notes. Each note is associated with exactly one account – that of the user who wrote it.
...