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

  1. item code does not have to be unique (but program appears to only use most recently created item with particular code.)
  2. 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.

Author: Dominic Walden

Created: 2016-05-15 Sun 11:00

Emacs 24.4.1 (Org mode 8.2.10)

Validate