summaryrefslogtreecommitdiff
path: root/requirements
diff options
context:
space:
mode:
Diffstat (limited to 'requirements')
-rw-r--r--requirements/catalogue/req-068.md2
-rw-r--r--requirements/catalogue/req-096.md6
-rw-r--r--requirements/catalogue/req-101.md2
-rw-r--r--requirements/data_models/dml-bucket.md4
-rw-r--r--requirements/kanban.md26
-rw-r--r--requirements/tasks/epic-000.md18
-rw-r--r--requirements/tasks/epic-003.md4
-rw-r--r--requirements/tasks/epic-008.md1
-rw-r--r--requirements/tasks/task-001.md14
-rw-r--r--requirements/tasks/task-012.md8
-rw-r--r--requirements/tasks/task-013.md8
-rw-r--r--requirements/tasks/task-029.md12
-rw-r--r--requirements/tasks/task-030.md25
-rw-r--r--requirements/tasks/task-057.md19
-rw-r--r--requirements/tasks/task-060.md4
-rw-r--r--requirements/tasks/task-061.md12
-rw-r--r--requirements/tasks/task-064.md9
-rw-r--r--requirements/tasks/task-071.md29
-rw-r--r--requirements/tasks/task-072.md6
-rw-r--r--requirements/tasks/task-073.md14
-rw-r--r--requirements/tasks/task-074.md11
-rw-r--r--requirements/tasks/task-075.md13
-rw-r--r--requirements/tasks/task-076.md8
-rw-r--r--requirements/tasks/task-077.md9
-rw-r--r--requirements/tasks/task-078.md9
-rw-r--r--requirements/tasks/task-079.md25
-rw-r--r--requirements/tasks/task-080.md14
-rw-r--r--requirements/tasks/task-081.md16
-rw-r--r--requirements/tasks/task-082.md22
-rw-r--r--requirements/tasks/task-083.md22
-rw-r--r--requirements/tasks/task-084.md23
31 files changed, 362 insertions, 33 deletions
diff --git a/requirements/catalogue/req-068.md b/requirements/catalogue/req-068.md
index 1c1d1df..fb6c3dd 100644
--- a/requirements/catalogue/req-068.md
+++ b/requirements/catalogue/req-068.md
@@ -5,4 +5,4 @@ deleting buckets.
Sources: req-056, req-000, req-025, req-089, req-102
-Satisfied by: task-030
+Satisfied by: task-030, task-075
diff --git a/requirements/catalogue/req-096.md b/requirements/catalogue/req-096.md
index bec8f76..9a1fa38 100644
--- a/requirements/catalogue/req-096.md
+++ b/requirements/catalogue/req-096.md
@@ -1,8 +1,8 @@
# req-096
-Schist must have interfaces for viewing all drips and transactions in and out
-of a given bucket alongside the history of pipes of the given bucket.
+Schist must have interfaces for viewing all drips and transactions in and out of
+a given bucket alongside the history of pipes of the given bucket.
Source: req-100
-Satisfied by: task-061, task-062, req-113, req-115
+Satisfied by: task-061, task-081, task-062, req-113, req-115
diff --git a/requirements/catalogue/req-101.md b/requirements/catalogue/req-101.md
index aa4559d..8cc0bdf 100644
--- a/requirements/catalogue/req-101.md
+++ b/requirements/catalogue/req-101.md
@@ -6,4 +6,4 @@ buckets in the future.
Source: req-095
-Satisfied by: task-061, task-062, req-112, arch-v1.0.1
+Satisfied by: task-029, task-062, req-112, arch-v1.0.1
diff --git a/requirements/data_models/dml-bucket.md b/requirements/data_models/dml-bucket.md
index 01c56b5..809fe33 100644
--- a/requirements/data_models/dml-bucket.md
+++ b/requirements/data_models/dml-bucket.md
@@ -8,7 +8,9 @@ A bucket represents a real category of spending, like beer or holidays.
| name | string | A short description of the real category of spending. |
| balance | number | The amount of money the user intends to be free to spend. |
| balance_cache_key | string | A cache key for the balance. See notes. |
+| group | string | The name of a group of buckets to which this belongs. |
| is_hidden | boolean | Whether this bucket should be hidden in the UI. |
+| is_favourite | boolean | Whether this bucket should be given priority in the UI. |
Constraints:
@@ -23,4 +25,4 @@ Notes:
- `is_hidden` is used as an equivalent of soft-deletion. Buckets should never be
actually deleted.
-Sources: req-027, req-098, req-110, req-111, task-028
+Sources: req-027, req-098, req-110, req-111, task-028, ui-designs/desktop-views
diff --git a/requirements/kanban.md b/requirements/kanban.md
index 3ed8702..99c23ed 100644
--- a/requirements/kanban.md
+++ b/requirements/kanban.md
@@ -2,11 +2,29 @@
| Backlog | Ready | Doing |
| -------- | -------- | -------- |
-| | | epic-003 |
+| | epic-000 | |
| ======== | ======== | ======== |
-| | task-060 | |
-| ======== | ======== | ======== |
-| epic-000 | | |
+| | task-010 | |
+| | task-073 | |
+| | task-012 | |
+| | task-001 | |
+| | task-064 | |
+| | task-072 | |
+| | task-030 | |
+| | task-029 | |
+| | task-078 | |
+| | task-057 | |
+| | task-061 | |
+| | task-071 | |
+| | task-075 | |
+| | task-074 | |
+| | task-013 | |
+| | task-068 | |
+| | task-076 | |
+| | task-080 | |
+| | task-081 | |
+| | task-077 | |
+| | task-079 | |
| ======== | ======== | ======== |
| epic-008 | | |
diff --git a/requirements/tasks/epic-000.md b/requirements/tasks/epic-000.md
index 400a3fe..791cef7 100644
--- a/requirements/tasks/epic-000.md
+++ b/requirements/tasks/epic-000.md
@@ -8,13 +8,25 @@ Status: not ready
## Ordered backlog
- [ ] task-010 (hello, world)
+- [ ] task-073 (UI layout & nav)
- [ ] task-012 (SQLite)
- [ ] task-001 (inserting transactions)
- [ ] task-064 (deleting transactions)
-- [ ] task-029 (CRUDing pipes)
+- [ ] task-072 (import from Actualbudget)
- [ ] task-030 (CRUDing buckets)
-- [ ] task-061 (viewing drips, transactions and historic pipes)
+- [ ] task-029 (CRUDing pipes)
+- [ ] task-078 (groups in Buckets view)
- [ ] task-057 (long-term expected monthly tank change)
+- [ ] task-061 (viewing drips, transactions and historic pipes)
- [ ] task-071 (updating transactions)
+- [ ] task-075 (hiding buckets UI)
+- [ ] task-074 (viewing hidden buckets)
- [ ] task-013 (config & caches)
-- [ ] task-068 (guarantee immutable pipes)
+- [ ] task-076 (balances line graph)
+- [ ] task-080 (daily net in/out histogram)
+- [ ] task-081 (pipes timeline)
+- [ ] task-077 (callout next to pipe editor)
+- [ ] task-079 (new bucket from transactions view)
+- [ ] task-082 (Overview in Balances view)
+- [ ] task-084 (groups in Balances view)
+- [ ] task-083 (hidden buckets in Balances view)
diff --git a/requirements/tasks/epic-003.md b/requirements/tasks/epic-003.md
index 3dbda50..72bc33e 100644
--- a/requirements/tasks/epic-003.md
+++ b/requirements/tasks/epic-003.md
@@ -2,6 +2,8 @@
For this Epic, the project should be ready to start work.
+Status: done
+
## Ordered backlog
- [x] task-007 (architecture)
@@ -9,4 +11,4 @@ For this Epic, the project should be ready to start work.
- [x] task-063 (add extensions to processes)
- [x] task-059 (CRUD matrix)
- [x] task-028 (UI designs)
-- [ ] task-060 (refine epic-000)
+- [x] task-060 (refine epic-000)
diff --git a/requirements/tasks/epic-008.md b/requirements/tasks/epic-008.md
index e686a6a..e7b6b99 100644
--- a/requirements/tasks/epic-008.md
+++ b/requirements/tasks/epic-008.md
@@ -10,3 +10,4 @@ Status: not ready
- [ ] task-049 (mutating transactions forces correction of bucket balances)
- [ ] task-050 (up-to-date bucket balance cache key guarantees correct balance)
- [ ] task-051 (test for accurate bucket balances)
+- [ ] task-068 (guarantee immutable pipes)
diff --git a/requirements/tasks/task-001.md b/requirements/tasks/task-001.md
index 26d585d..80aff97 100644
--- a/requirements/tasks/task-001.md
+++ b/requirements/tasks/task-001.md
@@ -2,10 +2,20 @@
Schist must have a desktop interface for inserting transactions.
-Source: req-048
+- [ ] Add a table of transactions to the transactions view main content with
+ these columns:
+ - Date
+ - Bucket
+ - Payee
+ - Quantity
+ - Balance
+- [ ] Add a new transaction form at the top of the table
+- [ ] Move the Balance column header to after the new transaction form
+
+Source: req-048, ui-designs/desktop-views
Epic: epic-000
-Blocked by: task-010, task-012, task-028
+Blocked by: task-010, task-012
Relates to: req-073, req-037, req-035, req-030
diff --git a/requirements/tasks/task-012.md b/requirements/tasks/task-012.md
index 97ae41b..e45c74b 100644
--- a/requirements/tasks/task-012.md
+++ b/requirements/tasks/task-012.md
@@ -2,6 +2,11 @@
The desktop GUI must persist domain entities to an SQLite file.
+For the purposes of this task, any read/write operation is enough to prove that
+the pattern is ready to be used in other tasks. As this blocks using actual
+domain entities, then, a good place to start would be storing a database schema
+version number.
+
Source: ard-001
Epic: epic-000
@@ -9,6 +14,3 @@ Epic: epic-000
Blocked by: task-010
Blocks: task-001
-
-For the purposes of this task, any read/write operation is enough to prove that
-the pattern is ready to be used in other tasks.
diff --git a/requirements/tasks/task-013.md b/requirements/tasks/task-013.md
index 6d52806..84dc264 100644
--- a/requirements/tasks/task-013.md
+++ b/requirements/tasks/task-013.md
@@ -8,5 +8,13 @@ Epic: epic-000
Blocked by: task-010
+## Notes
+
For the purposes of this task, any read/write operation is enough to prove that
the pattern is ready to be used in other tasks.
+
+A good config option might be some keyboard shortcuts for top-level and
+second-level navigation respectively.
+
+A good caching option might be caching the previously used counterparties for
+use in the dropdown when editing a counterparty in the transactions view.
diff --git a/requirements/tasks/task-029.md b/requirements/tasks/task-029.md
index ea8a318..9141063 100644
--- a/requirements/tasks/task-029.md
+++ b/requirements/tasks/task-029.md
@@ -7,4 +7,14 @@ Sources: req-069, req-106
Epic: epic-000
-Blocked by: task-028
+Blocked by: task-030
+
+## Notes
+
+According to the UI designs, the interface for this should be a part of the
+editable section in the Buckets view. It should feel like editing a Bucket,
+although the underlying data structure is creating a new pipe.
+
+There should be an auto-saving amount input and an auto-saving period select.
+
+The informative callout is out of scope: see task-077.
diff --git a/requirements/tasks/task-030.md b/requirements/tasks/task-030.md
index bb1f2b4..e776cdf 100644
--- a/requirements/tasks/task-030.md
+++ b/requirements/tasks/task-030.md
@@ -1,10 +1,29 @@
# task-030
-Schist's desktop GUI must have an interface for viewing, creating, updating and
-deleting buckets.
+Schist's desktop GUI must have an interface for viewing, creating and updating
+buckets.
Source: req-068
Epic: epic-000
-Blocked by: task-028
+Blocks: task-029
+
+## Notes
+
+The UI must include:
+
+- [ ] Name as an editable heading at the top of the main content
+- [ ] Balance in the top-right of the main content
+- [ ] Name and balance in the second-level nav
+- [ ] An auto-saving group input
+- [ ] An auto-saving Favourite checkbox
+- [ ] A New option in the second-level nav in the Buckets view
+- [ ] The New main content looks similar to the editable section of an existing
+ bucket, but is not auto-saving, and has an Add button, which you can guess
+ what that does
+
+Not in scope:
+
+- A Hidden checkbox: that is covered by task-075
+- A historical data section: that is covered by task-076
diff --git a/requirements/tasks/task-057.md b/requirements/tasks/task-057.md
index 1af09b9..d5fe087 100644
--- a/requirements/tasks/task-057.md
+++ b/requirements/tasks/task-057.md
@@ -1,9 +1,9 @@
# task-057
Schist's desktop UI should display prominently the results of the procedures,
-`calculate_long_term_expected_monthly_tank_change`, as described in req-088,
-and `calculate_tank_balance`, as described in req-092, in any view from which
-the user may be thinking about how to create, update or delete their buckets or
+`calculate_long_term_expected_monthly_tank_change`, as described in req-088, and
+`calculate_tank_balance`, as described in req-092, in any view from which the
+user may be thinking about how to create, update or delete their buckets or
pipes.
Sources: req-089, req-093
@@ -11,3 +11,16 @@ Sources: req-089, req-093
Epic: epic-000
Relates to: req-088, req-092, task-028
+
+## Notes
+
+- [ ] Tank balance is in the second-level nav in the Buckets view
+- [ ] Tank balance is in the top-right of the main content in the All option of
+ the Buckets view
+- [ ] Long-term expected change is displayed per week, month and year in the
+ first section of the main content in the All option of the Buckets view
+- [ ] The main content of a group should look similar, but the second-level nav
+ should not be the same
+
+Long-term expected change should not be implemented for groups, because the user
+isn't expected to balance incomings and outgoings within each group.
diff --git a/requirements/tasks/task-060.md b/requirements/tasks/task-060.md
index 33b7ac6..c55a7f5 100644
--- a/requirements/tasks/task-060.md
+++ b/requirements/tasks/task-060.md
@@ -2,6 +2,6 @@
Refine epic-000 into a state ready to start development work.
-Epic: epic-003
+Status: done
-Blocked by: task-028
+Epic: epic-003
diff --git a/requirements/tasks/task-061.md b/requirements/tasks/task-061.md
index 06435b5..f83d24a 100644
--- a/requirements/tasks/task-061.md
+++ b/requirements/tasks/task-061.md
@@ -3,10 +3,16 @@
Schist must have a desktop interface for viewing all drips and transactions in
and out of a given bucket alongside the history of pipes of the given bucket.
-Sources: req-096, req-101
+Sources: req-096
Epic: epic-000
-Blocked by: task-028
-
Relates to: req-097
+
+## Notes
+
+This should be implemented, as specified in the UI designs, as a table in the
+historical data section in the Buckets view. It should work for buckets, groups
+and the All option.
+
+There should be a date range selector to narrow down the relevant dates.
diff --git a/requirements/tasks/task-064.md b/requirements/tasks/task-064.md
index 765a9e9..23ab134 100644
--- a/requirements/tasks/task-064.md
+++ b/requirements/tasks/task-064.md
@@ -2,8 +2,13 @@
Schist must have a desktop interface for deleting transactions.
+- [ ] Add checkboxes to transactions list
+- [ ] Add delete button
+- [ ] Delete button is only enabled when at least one transaction is selected
+- [ ] Delete button leads to confirmation modal
+- [ ] OK-ing the confirmation modal deletes the transactions, dismissing the
+ modal does nothing
+
Epic: epic-000
Source: req-120
-
-Blocked by: task-028
diff --git a/requirements/tasks/task-071.md b/requirements/tasks/task-071.md
index 1a47ba2..57ff87f 100644
--- a/requirements/tasks/task-071.md
+++ b/requirements/tasks/task-071.md
@@ -5,3 +5,32 @@ Schist must have a desktop interface for updating transactions.
Epic: epic-000
Source: req-125
+
+Blocks: task-079
+
+## Notes
+
+- [ ] The table cells in the Transactions view should be editable, and should
+ auto-save
+- [ ] If the user enters a bucket name which doesn't exist yet, the edit fails
+ (see task-079)
+- [ ] The user should only be able to enter numbers into the Date column
+- [ ] If the user enters an invalid value into any column, it is underlined in
+ red, and if submitted, it is reset to its previous value
+- [ ] When editing the Bucket column, the user should get a dropdown list of the
+ available options, filtered by what the user has already entered by a
+ case-insensitive fuzzy search
+- [ ] When editing the Counterparty column, the user should get a dropdown list
+ of the previously used counterparties, filtered by what the user has
+ already entered by a case-insensitive fuzzy search
+- [ ] When editing the Balance column, numbers should always be in the format,
+ /-?[0-9]+(.[0-9][0-9])?/, no matter how they're formatted when not editing
+- [ ] When editing the Amount column, whitespace and commas are ignored, unless
+ exactly one comma is supplied, in which case it is interpreted as a
+ decimal separator
+- [ ] After editing the Amount column, the Balances should all immediately
+ update
+
+- The table cells in the table in the Buckets view should not be editable. This
+ poses too many UX problems.
+- The Balance column should not be editable.
diff --git a/requirements/tasks/task-072.md b/requirements/tasks/task-072.md
new file mode 100644
index 0000000..a5626e0
--- /dev/null
+++ b/requirements/tasks/task-072.md
@@ -0,0 +1,6 @@
+# task-072
+
+Schist must have a desktop interface for importing transactions from an
+Actualbudget SQLite file.
+
+Epic: epic-000
diff --git a/requirements/tasks/task-073.md b/requirements/tasks/task-073.md
new file mode 100644
index 0000000..e610b91
--- /dev/null
+++ b/requirements/tasks/task-073.md
@@ -0,0 +1,14 @@
+# task-073
+
+- Schist's desktop interface must include 3 views: the Buckets view, the
+ Balances view, and the Transactions view
+- Each view must have three columns
+- The first column must be the top-level nav and contain a button for each view
+- The second column must be the second-level nav as detailed in the UI designs
+- The third column must be the main content
+- All the columns must be properly spaced out
+- For this ticket, the main content can be empty or contain a placeholder
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views
diff --git a/requirements/tasks/task-074.md b/requirements/tasks/task-074.md
new file mode 100644
index 0000000..c1bfa98
--- /dev/null
+++ b/requirements/tasks/task-074.md
@@ -0,0 +1,11 @@
+# task-074
+
+Schist's desktop UI must have a means of viewing hidden buckets.
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views
+
+## Notes
+
+There are currently no UI designs for this. You may want to create some.
diff --git a/requirements/tasks/task-075.md b/requirements/tasks/task-075.md
new file mode 100644
index 0000000..ef6cd55
--- /dev/null
+++ b/requirements/tasks/task-075.md
@@ -0,0 +1,13 @@
+# task-075
+
+Schist's desktop UI must have a UI for hiding buckets which strongly discourages
+the user from hiding buckets with a non-zero balance or a non-zero active pipe,
+and which makes it easy for users to resolve those problems.
+
+Epic: epic-000
+
+Source: req-068, ui-designs/desktop-views
+
+## Notes
+
+There are currently no UI designs for this. You may want to create some.
diff --git a/requirements/tasks/task-076.md b/requirements/tasks/task-076.md
new file mode 100644
index 0000000..9cb99f4
--- /dev/null
+++ b/requirements/tasks/task-076.md
@@ -0,0 +1,8 @@
+# task-076
+
+Schist's desktop UI, in the historical data section of the Buckets view, should
+include a Balance line graph.
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views
diff --git a/requirements/tasks/task-077.md b/requirements/tasks/task-077.md
new file mode 100644
index 0000000..8e61cda
--- /dev/null
+++ b/requirements/tasks/task-077.md
@@ -0,0 +1,9 @@
+# task-077
+
+In the Buckets view in Schist's desktop UI, there should be a callout next to
+the pipe form, which summarises recent spending in terms of the currently
+specified pipe period, as seen in the UI designs.
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views
diff --git a/requirements/tasks/task-078.md b/requirements/tasks/task-078.md
new file mode 100644
index 0000000..4c4c84b
--- /dev/null
+++ b/requirements/tasks/task-078.md
@@ -0,0 +1,9 @@
+# task-078
+
+In the Buckets view in Schist's desktop UI, the second-level nav should group
+buckets together by their group, and should include an 'All' option. The main
+content should be as specified in the UI designs.
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views
diff --git a/requirements/tasks/task-079.md b/requirements/tasks/task-079.md
new file mode 100644
index 0000000..f7e3e00
--- /dev/null
+++ b/requirements/tasks/task-079.md
@@ -0,0 +1,25 @@
+# task-079
+
+In the transactions view in Schist's desktop UI, if the user enters a bucket
+name which doesn't exist yet, they should be prompted if they would like to
+create a new bucket.
+
+Epic: epic-000
+
+Blocked by: task-071
+
+## Notes
+
+- [ ] When the user enters a new bucket, a modal arises asking if they'd like to
+ create a new bucket
+- [ ] OK-ing the modal navigates to the New bucket view, dismissing the modal
+ does nothing and returns the transaction's bucket value to its previous
+ state
+- [ ] The modal should include a list of similar bucket names which the user can
+ select instead
+- [ ] If the user OK-s the modal, the New bucket view should have a Back nav
+ button which returns the user to the Transactions view without doing
+ anything
+- [ ] If the user adds the new bucket, they should be taken to the new bucket's
+ bucket view, with a Back nav button, which returns the user to where they
+ were in the transactions view with the bucket updated and focused
diff --git a/requirements/tasks/task-080.md b/requirements/tasks/task-080.md
new file mode 100644
index 0000000..e4f8632
--- /dev/null
+++ b/requirements/tasks/task-080.md
@@ -0,0 +1,14 @@
+# task-080
+
+Schist's desktop UI, in the historical data section of the Buckets view, should
+include a daily/weekly/monthly/yearly net histogram.
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views
+
+## Notes
+
+The UI designs currently only have a daily net histogram. However, this might be
+quite inflexible. Consider adding a select to switch between daily, weekly,
+monthly and yearly views - or add all of them.
diff --git a/requirements/tasks/task-081.md b/requirements/tasks/task-081.md
new file mode 100644
index 0000000..e475534
--- /dev/null
+++ b/requirements/tasks/task-081.md
@@ -0,0 +1,16 @@
+# task-081
+
+Schist's desktop UI, in the historical data section of the Buckets view, should
+include a pipe change timeline.
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views, req-096
+
+## Notes
+
+The timeline should only include pipes which were ever effective. That is, if a
+pipe was overwritten by another on the same day, it shouldn't appear on the
+timeline. This matters, because the user may make several edits to a pipe in one
+session, all of which are automatically committed to the database as a separate
+pipe.
diff --git a/requirements/tasks/task-082.md b/requirements/tasks/task-082.md
new file mode 100644
index 0000000..2c2c5cb
--- /dev/null
+++ b/requirements/tasks/task-082.md
@@ -0,0 +1,22 @@
+# task-082
+
+Schist's desktop UI, in the Balances view, should have an Overview option.
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views, req-068
+
+Related to: task-084
+
+## Notes
+
+- [ ] Display a list of bucket balances as coloured bars, proportionate to the
+ amount flowing through the current pipe of each bucket
+- [ ] Sort by the magnitude of each bucket's balance relative to the amount
+ flowing through the current pipe for each bucket
+- [ ] Sort favourited and off-balance buckets to the top with a gap between
+ these and the rest of the buckets, if there are any
+
+Not in scope:
+
+- Hidden buckets: see task-083
diff --git a/requirements/tasks/task-083.md b/requirements/tasks/task-083.md
new file mode 100644
index 0000000..e31865b
--- /dev/null
+++ b/requirements/tasks/task-083.md
@@ -0,0 +1,22 @@
+# task-082
+
+Schist's desktop UI, in the Balances view, should have an option for showing
+hidden buckets and for hiding and un-hiding buckets.
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views, req-068
+
+Blocked by: task-082 | task-084, task-075
+
+## Notes
+
+In the Balances view:
+
+- [ ] Add a checkbox to toggle showing hidden buckets
+- [ ] Hidden bucket's names are in italics
+- [ ] Hidden buckets have a un-hide button next to them
+- [ ] Non-hidden buckets have a hide button next to them, which should initiate
+ a flow similar to that implemented in task-075
+
+There are currently no UI designs for hiding and un-hiding buckets.
diff --git a/requirements/tasks/task-084.md b/requirements/tasks/task-084.md
new file mode 100644
index 0000000..27f908b
--- /dev/null
+++ b/requirements/tasks/task-084.md
@@ -0,0 +1,23 @@
+# task-084
+
+Schist's desktop UI, in the Balances view, should have an option for each group
+of buckets.
+
+Epic: epic-000
+
+Source: ui-designs/desktop-views, req-068
+
+Related to: task-082
+
+## Notes
+
+- [ ] Display a list of bucket balances as coloured bars, proportionate to the
+ amount flowing through the current pipe of each bucket
+- [ ] Sort by the magnitude of each bucket's balance relative to the amount
+ flowing through the current pipe for each bucket
+- [ ] Sort favourited and off-balance buckets to the top with a gap between
+ these and the rest of the buckets, if there are any
+
+Not in scope:
+
+- Hidden buckets: see task-083