Data-modeling clipf
1 License
Copyright (C) 2016 Dominic Walden.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found here: https://gnu.org/licenses/fdl.html.
2 Mission
I want to get better at data modeling in software testing. I am using the command-line personal finance manager clipf. I will try to test it with respect to the data it processes.
3 Session
I installed clipf via Debian repositories (version 0.4). I have not looked to see if this is the latest version.
I read the man page which told me that it takes one argument which is the directory of the configuration files. If this is not passed it uses ~/.clipf/ which is will create if there is not one already.
I called clipf from Emacs' ansi-term, and saw that ~/.clipf/ is created with 3 empty files and one file which contains its version number. Apparently, there is a "default configuration" but clipf.conf is empty, so perhaps stored in the program itself or elsewhere. EDIT: default appears to be stored in /etc/clipf.conf, but is all commented out.
From reading man and config files, I can:
- Change default account
- Control max lines of output (over this output in 'less')
- Change encoding of terminal
- Change encoding of db files
- Change colour output options
- Set aliases for commands
According to the manual, I can also set default date and "reporting period".
Options can be set in config files or while using the program.
4 Entity-Relationships
Objects include:
- Accounts
- Items
- Has propery "income" or "expense"
- Is either an item or an item group
- Item groups can have subitems (how deeply nested?)
- Item codes are supposed to be unique
- Item Groups (treated differently to Items?)
- Operations
- Has a date
- Is associated with an account
- Is categorised by an item (how many?)
- Can have Tags (how many?)
- Can have a note (how large?)
5 Bugs
- item code does not have to be unique (but program appears to only use most recently created item with particular code.)
- When deleting items, prod rm <code> will delete all items whose item code begins <code>. Don't appear to be able to not do this. This is how it is described as working in the manual, but doesn't seem very desirable.