I like keeping track of things.
In fact, I like keeping track of things so much that I joined a bank that gave me in depth analytics and insights into my spendings and savings (UP Bank).
Up is a pretty new bank here in Australia and they've managed to create a really cool banking platform with a nifty app. Perhaps my biggest gripe though is that there is no desktop application, and their insights and analytics aren't very customizable and there aren't any out of the box 3rd party integrations.
I had caught the UP bug and I wanted even deeper insight into my finances, I wanted to be able to piece together correlations and look at long term trends.
And then UP released their API, an answer to my prayer. The seed was planted and it was time to get to work.
Within days I had built a python script that downloaded my entire transaction history to a csv file, I would then import that CSV into Quicksight manually. This was amazing, the rush was unreal, but after I had to repeatedly perform the manual steps over and over I knew this wouldn't work long term, it was crying out to be automated.
- To gain insight into current financial state
- To deep dive historical data and identify correlations
- To forecast future financial state and identify trends
Good question, right now I actually don't know what the end product will look like.
Instead I've chosen to identify an MVP (minimum viable product) and to try to replicate my original workflow as close as possible, but substituting manual tasks for automated ones. This way I get the most value in the quickest way. After I've delivered v0.1 I can then look at the next jump that will provide the most value from the least amount of effort.
Let's expand on a few core decisions that have been made:
- AWS - My cloud provider of choice
- Lambda - Severless makes the most sense when lifting and shifting python scripts
- S3 - This also most closely represents the current workflow, perfect for an MVP
- Cloudformation - Baking everything into a cloudformation script will allow us to easily grow the solution without having to worry about cleaning up leftover or misconfigured resources in AWS
Stay tuned for the next part which will cover creating and configuring the Provision User lambda function!