Project: Personal Finance Information
I'm very lucky. Unlike many other people, I never have to worry about not having enough money to buy food or to pay my rent. I'm not super rich, but I live comfortably. However if you had asked what exactly I'm spending my money on and how much, I'd draw a blank.
So to answer that question for myself, I was very busy coding the last few weeks. The result are two new tools: TheBankster and TheCashster1).
TheBankster is the central tool to see where my money goes (and comes from). It imports all the financial transactions from my various accounts (debit, credit card, Paypal, cash) and uses rules to categorize them. Pretty Google Charts graphs then give me insight on where I spend my money each month.
Simple example: I did not know that I spend nearly as much on CarSharing as I do on my monthly Public Transport ticket.
I wrote the whole thing on top of the Slim PHP framework, which I really like. I wanted to use an ORM but didn't really like the usual suspects, I wanted something more lightweight to go with Slim. I finally found tflori/orm which fit the bill nicely.
CSS is done with Bulma - I actually did not write a single line of CSS in this project. Weird, eh?
Germany is the biggest European economy still using cash a lot. It is not uncommon to go to restaurants or stores where you can only pay in cash. It's weird, it's annoying but that's Germany. So I needed a way to track my cash expenses.
There are hundreds of expense trackers on Google Play. But none did exactly what I wanted: suggest the places around me and let me track my spending there in a way that would be accessible to the Bankster. So of course I had to write one myself.
TheCashster is my Android expense tracker. It uses the Foursquare API to suggest nearby places. I can enter an amount, select the place and hit done. That's it. All expenses are saved in a Google Sheets spreadsheet from which TheBankster reads the data. To speed up entry even more, all used places are saved locally and will be suggested first when nearby.
It has been quite some time since my last Android project2), so I had to relearn a few things. But again I did enjoy the Android system a lot. Instead of a SQLite database, I used Realm for data storage. It's interesting, but I think I would miss the full power of SQL in a larger project.