diff options
Diffstat (limited to 'requirements')
29 files changed, 65 insertions, 63 deletions
diff --git a/requirements/architecture/arch-v1.md b/requirements/architecture/arch-v1.md index f39252e..05268ee 100644 --- a/requirements/architecture/arch-v1.md +++ b/requirements/architecture/arch-v1.md @@ -4,10 +4,13 @@ Status: draft ## Problems -- Schist must have a read/write SMS interface (req-031, req-045, req-047, req-053) -- Schist must have a read/write desktop interface (req-021, req-023, req-048, req-052) +- Schist must have a read/write SMS interface (req-031, req-045, req-047, + req-053) +- Schist must have a read/write desktop interface (req-021, req-023, req-048, + req-052) - Schist must read transactions automatically from a banking API (req-015) -- Schist must persist buckets, pipes, drips, and transactions (req-034, req-056, req-057, req-058, req-051) +- Schist must persist buckets, pipes, drips, and transactions (req-034, req-056, + req-057, req-058, req-051) ## Decisions diff --git a/requirements/assumptions/ass-000.md b/requirements/assumptions/ass-000.md index 962cb7d..2195782 100644 --- a/requirements/assumptions/ass-000.md +++ b/requirements/assumptions/ass-000.md @@ -1,3 +1,3 @@ # ass-000 -The user regularly opens Schist on their desktop computer.
\ No newline at end of file +The user regularly opens Schist on their desktop computer. diff --git a/requirements/assumptions/ass-004.md b/requirements/assumptions/ass-004.md index 0f37751..8ee5964 100644 --- a/requirements/assumptions/ass-004.md +++ b/requirements/assumptions/ass-004.md @@ -2,5 +2,5 @@ If the user may be without access to their phone or desktop computer when they're making a spending decision, and if the user can find out their relevant -bucket balance earlier using their desktop computer and write it down, then -they will do so. +bucket balance earlier using their desktop computer and write it down, then they +will do so. diff --git a/requirements/assumptions/ass-008.md b/requirements/assumptions/ass-008.md index 2d2f9dd..ea4f31a 100644 --- a/requirements/assumptions/ass-008.md +++ b/requirements/assumptions/ass-008.md @@ -1,4 +1,4 @@ # ass-008 The accurate balance of a bucket is the difference between the amounts of the -drips into it and the amounts of the transactions out of it.
\ No newline at end of file +drips into it and the amounts of the transactions out of it. diff --git a/requirements/assumptions/ass-013.md b/requirements/assumptions/ass-013.md index 71ba005..28c77e4 100644 --- a/requirements/assumptions/ass-013.md +++ b/requirements/assumptions/ass-013.md @@ -1,4 +1,4 @@ # ass-013 Whenever the user is using their desktop computer, they have access to their -wallet.
\ No newline at end of file +wallet. diff --git a/requirements/catalogue/req-003.md b/requirements/catalogue/req-003.md index 0ec877e..21c7f59 100644 --- a/requirements/catalogue/req-003.md +++ b/requirements/catalogue/req-003.md @@ -1,10 +1,10 @@ # req-003 -As a user, given I have a beer bucket and pipes which express how much I want -to spend on beer, I want how much money is in my beer bucket to influence how -much I spend on beer, so that having buckets and pipes which express how I want -to distribute, and have previously distributed, my incomings and outgoings -enables me to control my spending. +As a user, given I have a beer bucket and pipes which express how much I want to +spend on beer, I want how much money is in my beer bucket to influence how much +I spend on beer, so that having buckets and pipes which express how I want to +distribute, and have previously distributed, my incomings and outgoings enables +me to control my spending. Source: req-028 diff --git a/requirements/catalogue/req-005.md b/requirements/catalogue/req-005.md index 523c285..3c221df 100644 --- a/requirements/catalogue/req-005.md +++ b/requirements/catalogue/req-005.md @@ -1,9 +1,9 @@ # req-005 As a user, given I have a beer bucket and pipes which express how much I want to -spend on beer, I want to know how much money is in my beer bucket when I'm at the -bar, so that I can consider how much money is in my beer bucket when I decide -how much to spend on beer at the bar. +spend on beer, I want to know how much money is in my beer bucket when I'm at +the bar, so that I can consider how much money is in my beer bucket when I +decide how much to spend on beer at the bar. Source: req-004 diff --git a/requirements/catalogue/req-017.md b/requirements/catalogue/req-017.md index 1bbdf4b..a1445c6 100644 --- a/requirements/catalogue/req-017.md +++ b/requirements/catalogue/req-017.md @@ -5,9 +5,8 @@ As a user, I want: - Buckets to represent real categories of spending, like beer and holidays; - Pipes to represent how much I want to come in and out of each bucket; - Each real transaction I make to be associated with at most one bucket; -- Buckets to have a balance, which represents the amount of money I intend to - be free to spend in the real category of spending which that bucket - represents; +- Buckets to have a balance, which represents the amount of money I intend to be + free to spend in the real category of spending which that bucket represents; so that I can have buckets and pipes which express how I want to distribute, and have previously distributed, my incomings and outgoings. diff --git a/requirements/catalogue/req-018.md b/requirements/catalogue/req-018.md index 225fc5d..e59537a 100644 --- a/requirements/catalogue/req-018.md +++ b/requirements/catalogue/req-018.md @@ -1,7 +1,7 @@ # req-018 -As a user, given I have a beer bucket and pipes which express how much I want -to spend on beer, I want to know how much money is in my beer bucket when I'm at +As a user, given I have a beer bucket and pipes which express how much I want to +spend on beer, I want to know how much money is in my beer bucket when I'm at the bar and I have access to my phone, so that I can know how much money is in my beer bucket when I'm at the bar. diff --git a/requirements/catalogue/req-020.md b/requirements/catalogue/req-020.md index 1e3eeb0..ed6dfd5 100644 --- a/requirements/catalogue/req-020.md +++ b/requirements/catalogue/req-020.md @@ -1,8 +1,8 @@ # req-020 -As a user, given I have a beer bucket and pipes which express how much I want -to spend on beer, I want to find out my beer bucket balance in Schist using SMS, -so that I can know how much money is in my beer bucket when I'm at the bar and I +As a user, given I have a beer bucket and pipes which express how much I want to +spend on beer, I want to find out my beer bucket balance in Schist using SMS, so +that I can know how much money is in my beer bucket when I'm at the bar and I have access to my phone. Source: req-018 diff --git a/requirements/catalogue/req-025.md b/requirements/catalogue/req-025.md index b0cacd8..aed80c8 100644 --- a/requirements/catalogue/req-025.md +++ b/requirements/catalogue/req-025.md @@ -3,4 +3,4 @@ As a user, I want my incomings not to exceed my outgoings in the long run, so that I can use my money well. -Source: need-001
\ No newline at end of file +Source: need-001 diff --git a/requirements/catalogue/req-026.md b/requirements/catalogue/req-026.md index f74cf18..ab8ea98 100644 --- a/requirements/catalogue/req-026.md +++ b/requirements/catalogue/req-026.md @@ -5,4 +5,4 @@ spending. Source: req-017 -Satisfied by: dml-bucket
\ No newline at end of file +Satisfied by: dml-bucket diff --git a/requirements/catalogue/req-028.md b/requirements/catalogue/req-028.md index e86c525..6c81071 100644 --- a/requirements/catalogue/req-028.md +++ b/requirements/catalogue/req-028.md @@ -1,9 +1,9 @@ # req-028 As a user, given my buckets and pipes express how I want to distribute my -incomings and outgoings, I want how much money is in my buckets to influence -how much I spend on the real categories of spending which they represent, so -that having buckets and pipes which express how I want to distribute, and have +incomings and outgoings, I want how much money is in my buckets to influence how +much I spend on the real categories of spending which they represent, so that +having buckets and pipes which express how I want to distribute, and have previously distributed, my incomings and outgoings enables me to control my spending. diff --git a/requirements/catalogue/req-029.md b/requirements/catalogue/req-029.md index 26bf701..16d63b4 100644 --- a/requirements/catalogue/req-029.md +++ b/requirements/catalogue/req-029.md @@ -1,7 +1,7 @@ # req-029 Given the user's buckets and pipes express how the user wants to distribute -their incomings and outgoings, Schist must have an SMS interface for a -procedure which returns the accurate balance of a given bucket. +their incomings and outgoings, Schist must have an SMS interface for a procedure +which returns the accurate balance of a given bucket. -Source: req-020
\ No newline at end of file +Source: req-020 diff --git a/requirements/catalogue/req-030.md b/requirements/catalogue/req-030.md index e09a281..d211964 100644 --- a/requirements/catalogue/req-030.md +++ b/requirements/catalogue/req-030.md @@ -1,12 +1,13 @@ # req-030 -Schist must implement the procedure described below as `calculate_bucket_balance`. +Schist must implement the procedure described below as +`calculate_bucket_balance`. ## calculate_bucket_balance Inputs: -- A bucket name, `name` +- A bucket name, `name` 1. If no bucket exists with the name, `name`, then return empty. 2. If more than one bucket exists with the name, `name`, then panic. @@ -19,7 +20,7 @@ Inputs: req-037. 8. Let `transaction_sum` be the sum over the property, `amount`, of all transactions `t` such that `t.bucket_id = bucket.id`. -9. Let `drip_sum` be the sum over the property, `amount`, of all drips `d` such +9. Let `drip_sum` be the sum over the property, `amount`, of all drips `d` such that `d.bucket_id = bucket.id`. 10. Return `drip_sum - transaction_sum`. diff --git a/requirements/catalogue/req-032.md b/requirements/catalogue/req-032.md index 6f173ac..059346e 100644 --- a/requirements/catalogue/req-032.md +++ b/requirements/catalogue/req-032.md @@ -6,4 +6,4 @@ of any given bucket. Source: req-024 -Satisfied by: req-030, req-034, ass-008, req-036
\ No newline at end of file +Satisfied by: req-030, req-034, ass-008, req-036 diff --git a/requirements/catalogue/req-033.md b/requirements/catalogue/req-033.md index fce9092..316bbec 100644 --- a/requirements/catalogue/req-033.md +++ b/requirements/catalogue/req-033.md @@ -1,5 +1,6 @@ # req-033 -Whenever the user makes a transaction, they must be able to enter it into Schist. +Whenever the user makes a transaction, they must be able to enter it into +Schist. Source: req-034 diff --git a/requirements/catalogue/req-035.md b/requirements/catalogue/req-035.md index 15b797b..6ce48d3 100644 --- a/requirements/catalogue/req-035.md +++ b/requirements/catalogue/req-035.md @@ -7,7 +7,7 @@ Schist must implement the procedure described below as Inputs: -- A bucket, `bucket` +- A bucket, `bucket` 1. Let `cache_key = bucket.balance_cache_key`. 2. If `cache_key` is not in the format, `<string>:<string>`, then return FALSE. @@ -24,4 +24,4 @@ Inputs: `transaction.bucket_id = bucket.id`, then return FALSE. 11. Return TRUE. -Source: req-030
\ No newline at end of file +Source: req-030 diff --git a/requirements/catalogue/req-036.md b/requirements/catalogue/req-036.md index db3f4dd..723e6e1 100644 --- a/requirements/catalogue/req-036.md +++ b/requirements/catalogue/req-036.md @@ -4,4 +4,4 @@ Given a bucket, `bucket`, if the procedure `is_bucket_balance_up_to_date(bucket)` as described in req-035 returns TRUE, then the accurate balance of `bucket` is equal to `bucket.balance`. -Sources: req-030, req-032
\ No newline at end of file +Sources: req-030, req-032 diff --git a/requirements/catalogue/req-037.md b/requirements/catalogue/req-037.md index 0d27984..d537cce 100644 --- a/requirements/catalogue/req-037.md +++ b/requirements/catalogue/req-037.md @@ -20,8 +20,8 @@ Inputs: 1. Let `prev_drip` be a drip `d` with a most recent value for the property `date` such that `d.pipe_id = pipe.id` -2. For each calendar date `d` in the range `(prev_drip.date, today]`, insert - a new drip for `pipe`: +2. For each calendar date `d` in the range `(prev_drip.date, today]`, insert a + new drip for `pipe`: - `bucket_id`: `pipe.bucket_id` - `pipe_id`: `pipe.id` - `date`: `d` @@ -45,4 +45,4 @@ Inputs: 6. If `period` is not `year`, panic. 7. Return `pipe.amount รท days_in_year`. -Source: req-030
\ No newline at end of file +Source: req-030 diff --git a/requirements/catalogue/req-038.md b/requirements/catalogue/req-038.md index 71b8d55..e8dbbc8 100644 --- a/requirements/catalogue/req-038.md +++ b/requirements/catalogue/req-038.md @@ -3,4 +3,4 @@ Schist must have a record of pipes which accurately reflect how I want to distribute my incomings and outgoings. -Source: req-032
\ No newline at end of file +Source: req-032 diff --git a/requirements/catalogue/req-039.md b/requirements/catalogue/req-039.md index 2f583b3..f6e8403 100644 --- a/requirements/catalogue/req-039.md +++ b/requirements/catalogue/req-039.md @@ -2,8 +2,8 @@ As a user, I want my purchase of this holiday item to be recorded as a holiday transaction and for records of holiday transactions to affect the amount of -money I see in my holidays bucket, so that my incomings and outgoings affect -how much money is in my buckets. +money I see in my holidays bucket, so that my incomings and outgoings affect how +much money is in my buckets. Source: req-009 diff --git a/requirements/catalogue/req-051.md b/requirements/catalogue/req-051.md index d38c053..40bf443 100644 --- a/requirements/catalogue/req-051.md +++ b/requirements/catalogue/req-051.md @@ -1,9 +1,9 @@ # req-051 -Given a user's bank account is set up to sync with Schist, when the user makes -a transaction in that bank account, then Schist must record that transaction, -and Schist should record that transaction before the user reads any data from -Schist which depends upon accurate transaction records. +Given a user's bank account is set up to sync with Schist, when the user makes a +transaction in that bank account, then Schist must record that transaction, and +Schist should record that transaction before the user reads any data from Schist +which depends upon accurate transaction records. Source: req-015 diff --git a/requirements/catalogue/req-052.md b/requirements/catalogue/req-052.md index e9c5c77..ecf41a4 100644 --- a/requirements/catalogue/req-052.md +++ b/requirements/catalogue/req-052.md @@ -1,7 +1,6 @@ # req-052 -Schist must have a desktop interface for importing transactions from a CSV -file. +Schist must have a desktop interface for importing transactions from a CSV file. Source: req-016 diff --git a/requirements/catalogue/req-053.md b/requirements/catalogue/req-053.md index 2ec7c40..4a710f7 100644 --- a/requirements/catalogue/req-053.md +++ b/requirements/catalogue/req-053.md @@ -6,4 +6,4 @@ normally have Schist in my phone contacts. Source: req-043 -Satisfied by: req-055
\ No newline at end of file +Satisfied by: req-055 diff --git a/requirements/catalogue/req-055.md b/requirements/catalogue/req-055.md index bb7bf56..a8ac719 100644 --- a/requirements/catalogue/req-055.md +++ b/requirements/catalogue/req-055.md @@ -1,6 +1,6 @@ # req-055 -When a user uses Schist for the first time, they must be prompted to enter -their phone number if they know they want to use Schist using SMS. +When a user uses Schist for the first time, they must be prompted to enter their +phone number if they know they want to use Schist using SMS. Source: req-053 diff --git a/requirements/data_models/dml-bucket.md b/requirements/data_models/dml-bucket.md index f8fd1da..858f013 100644 --- a/requirements/data_models/dml-bucket.md +++ b/requirements/data_models/dml-bucket.md @@ -10,10 +10,10 @@ A bucket represents a real category of spending, like beer or holidays. Constraints: -- `name` must be unique. +- `name` must be unique. Notes: -- `balance_cache_key` must be of the format: `<drip_id>:<transaction_id>`. +- `balance_cache_key` must be of the format: `<drip_id>:<transaction_id>`. Sources: req-027, req-028, req-030 diff --git a/requirements/tasks/task-004.md b/requirements/tasks/task-004.md index f00a055..e84c506 100644 --- a/requirements/tasks/task-004.md +++ b/requirements/tasks/task-004.md @@ -1,9 +1,9 @@ # task-005 -Given the user has set up a bank account to sync with Schist, when they read -any data from Schist which depends upon accurate transaction records, then -Schist retrieves transactions from the bank account and records them before -returning the result to the user. +Given the user has set up a bank account to sync with Schist, when they read any +data from Schist which depends upon accurate transaction records, then Schist +retrieves transactions from the bank account and records them before returning +the result to the user. Exception: if it takes too long to get transactions from the bank account, then Schist should return the stale data at first while retrieving the fresh diff --git a/requirements/tasks/task-005.md b/requirements/tasks/task-005.md index 2d4b8be..85bfe0e 100644 --- a/requirements/tasks/task-005.md +++ b/requirements/tasks/task-005.md @@ -1,6 +1,5 @@ # task-005 -Schist must have a desktop interface for importing transactions from a CSV -file. +Schist must have a desktop interface for importing transactions from a CSV file. Source: req-052 |
