Zodiac Finance

18th March – ⁠15th May '19

During my time at university, I applied a forecasting approach to keeping track of my money. Previously, I used a spreadsheet for this, but with the availability of the Monzo API, I figured that I could automate a lot of this process. I began to learn React during my time at UKCloud, and thought that applying my knowledge to this project would let me exercise my skills and advance them in a way tutorials might not be able to.

The amount of filtering I had to do with the incoming transactions to group them by month and category proved heavy, so I figured a gateway API would be well suited to the task. I developed this in Ruby on Rails. This provided the values to the frontend in a way that required far less processing, and allowed me to build the UI around the values. Zodiac is now usable on request by any customer of Monzo - users must be added to the API client as 'collaborators'.

Zodiac allows Monzo customers to classify their transactions using fully custom categories, unlike the base app. This is done by adding metadata to the transaction on the Monzo API. These custom transactions are then used in the forecasting view.

The forecasting view shows the sum of transactions in each category for each month. Users can also set budgets, which Zodiac uses to look ahead and forecast how much money they might have if they spend to the limit. Budgets are also used to mark out months where a user might've spent too much in one month.

Admittedly, there's a lot I could've done better with Zodiac, but as a first major React-centric project, I think it served its purpose well in pushing my skills further.

Copyright © 2016-2020 Simon Fish