I've always been obsessed with understanding where my money is going. Over the years I've tried many existing solutions and created a few of my own.
Because I'm learning Scala, I thought, why not try it one more time :)
The goals are:
- try to automate everything
- categorize all bank transactions in as few categories
- reduce it to averaged monthly numbers
Right now, the program is pretty limited. As I learn Scala, I will apply more techniques and add functionality. Feel free to suggest improvements or report bugs through the issue tracker or via pull requests.
You will probably need to tweak the code and configuration before this is useful to you.
In src/main/resources you can find a few example files:
- The CSV file is the one you should download from your online banking app. Verify that the columns are the same. If not you will need to update the CVSInput class.
- The counterparties.properties file contains a very basic categorization on counterparty bank account number. Enter account numbers without spaces.
When you run the program (Main.scala) it will show the transactions that have not been categorized yet.