Managing Finances With Owomida
I got tired of not knowing where my money is going
What is Owomida?
Owomida is a small service I built to keep track of my personal finances in Nigeria. Owomida is based off existing tools like Mint, Ynab, and other budgeting platforms. The phrase “Owo mi da?” is Yoruba for “Where’s my money?”
Why do I need it?
Since moving back to Lagos, I’ve struggled with understanding exactly where my money goes. Surprisingly, this isn’t a problem I face alone. I have spoken to locals, expats, and vacationers. A common theme I heard was that they could budget to spend xxxx Naira in a week, a month, or during their time here. Somehow, that budgeted amount vanishes in a half the time or less. Now it’s possible that all of these people, and myself, could be horrible at budgeting and tracking our finances: I will gladly admit that.
I don’t think the issue is that simple though. I noticed that our ecosystem isn’t designed to help people save. Take our banking apps for example. Note that I have note researched plenty apps like Sterling, Union bank, UBA, and more. I use FCMB, GTB, and Access. And none of those applications show me how much money I’ve spent in a specified amount of time. They show me my current balance, which is great. But there is no textual or visual overview of how I’ve been spending my money. On top of that, none of these banks have readily available open APIs (that I’m aware of), so that any authenticated user can easily access their data and analyze it.
I tried a few other budgeting apps built for the Nigerian market and I was sorely disappointed. My biggest issue, was that these apps focused on loans and credit. Whereas, all I wanted was a Mint app for Nigeria.
Before I gave up, I tried using google sheets. Now, if you know your way around google sheets, this would probably be the best alternative. However, like most things in this country there was another blocker: the bank data. All the banks I use were kind enough to allow me to export my financial data into an xls file. The issue, was that I had to do a lot of data manipulation: all data points were literally placed into a single cell, rather than a column for dates, a column for amounts, bank name, etc.
So after all this craziness and stress, I decided I need to stop and build something for myself: Owomida.
What does it do?
Owomida is an odd functional prototype. All it does right now is show how much money I’ve spent in a given time period: today, 7 days, and 30 days. It allows me to see the total amount of money spent, or select a specific account. From there, I can drill into all or one account, and view more details about my transactions. There is no categorization of transactions or budgeting…yet. Checkout the quick and dirty proof of concept.
I needed to find a way to bypass the banks and get access to my financial data: without having to constantly export my statements. Banks here have a great feature where you can receive text and email alerts when money leaves or enters your account. I had to find a way to parse my email or text alerts. Luckily both of these problems have been solved by people smarter than me. I found an IFTTT plugin that automatically reads all my texts and places them nicely into a google spreadsheet of my choice. The high-level breakdown below shows how I was able to get my bank data:
- IFTTT reads all text messages and exports to Google Sheets.
- Google sheets allows you to create custom scripts. Once text data is added, the script is triggered and looks to see if the text is from the bank.
- When bank data is found, the script does a bunch of data manipulation: strips out white-spaces, extra words, and preps that data into a format that the database will enjoy ingesting.
- Google sheets script editor exports the formatted data to the database (MongoDB)
- VueJS is the framework used for Owomida. It has a client and server directory. The server connects to MongoDB, and the client connects to the server. Now we have visual access to all the transaction data, in real-time.
- Both client and server code are hosted on Heroku ( a painful article I am yet to write)
Process and evolution
Initially all I wanted to do was recreate Mint app. Then I remembered that I was coding the entire stack myself, and needed to simplify it. So I want through a lot of iterations. Some of the later ones I shared with friends and family for feedback. I remember thinking that all I wanted on the page was “how much money have I spent today.” From there it evolved to, “how much money have I spent in each account today.”
It rapidly spiraled into a massive financial platform: showing the current balance from each account, weekly trends, percentage increase or decrease of funds, etc. It became overwhelming. So I simplified and decided that I needed four major components: payments (money out), earnings (money in), account selection, and date selection. With those four, I could get a clear picture into how much and where my money had been going.
Conclusion & next steps
In time, Owomida will allow me to:
- View actual account balances
- Edit individual transactions and save photos / receipts
- Create/add and edit bank accounts
- Manually categorize transactions based on description details
- Automatically categorize transactions
- Create budgets and get notified when nearing or having passed the budget.
Luckily the only person demanding for this application is myself, so I will continue to patiently tweak and improve it. I am not a developer, so manipulating the data, learning how to use VueJs, and deploying to heroku were the most challenging part of this experience. Owomida is up and running, but I don’t even have the sub pages built yet haha: I’m still learning about routing, properly structuring APIs, and state management. Please feel free to reach out if you have any questions. Will keep writing and sharing as I progress, thanks!