BunyMuny/README.md
2020-09-27 15:55:50 +10:00

43 lines
2.2 KiB
Markdown

BunyMuny
===
[![Build Status](https://drone.bune.city/api/badges/lynnesbian/BunyMuny/status.svg)](https://drone.bune.city/lynnesbian/BunyMuny)
BunyMuny parses the CSV output of various bank statement listings and converts it to something more human readable with nice visualisations.
## Building
```bash
git clone https://git.bune.city/lynnesbian/BunyMuny
cd BunyMuny
dotnet build
```
## Supported banks
- ME Bank ([guide](https://git.bune.city/lynnesbian/BunyMuny/raw/branch/master/guide/me.png))
- NAB
- CommBank
## The rules file
By default, BunyMuny checks for rules in `rules.csv` in the current directory.
This is a Comma Separated Values file, which can be edited either by hand, or with a program like [Libreoffice Calc](https://www.libreoffice.org/discover/calc/) or [Microsoft Office Excel](https://www.microsoft.com/en-au/microsoft-365/excel).
An example rules file might look like this:
```csv
Match,Value,Category,Description,CaseSensitive
Start,Purchase Cash Converters,Personal,Cashies,true
Exact,Purchase TRANSLINK BRISBANE,Transport,Go Card,true
```
This means that:
- Any statement that starts with "Purchase Cash Converters" (case sensitive) will be assigned the category "Personal", and the description "Cashies".
- Any statement with the *exact* description "Purchase TRANSLINK BRISBANE" (case sensitive) will be assigned the category "Transport", and the description "Go Card".
- Any statement that doesn't match these two rules will be categorised as "Other", and will use the description provided by the bank file.
### Detailed explanation
- `Match` specifies the type of matching to perform. It can be any of the following:
- "Start": Match the start of the description.
- "End": Match the end of the description.
- "Contains": Match anywhere in the description.
- "Exact": Only match if the bank statement's description is exactly equal to the provided value.
- "Regex": Match with [regular expressions](https://en.wikipedia.org/wiki/Regular_expression).
- `Value` specifies the value to match against.
- `Category` is the category that the statement should be filed under.
- `Description` is a short description to distinguish the particular merchant.
- `CaseSensitive` specifies whether or not the match should be case sensitive.