Hire developers Community Blog Find a dev job Log in
Close menu
Tech insights: Programmable Banking Community: How to Build a Low-code Budget Tracking App
Less noise, more data. Get the biggest data report on software developer careers in South Africa.

Programmable Banking Community: How to Build a Low-code Budget Tracking App

30 September 2022, by Nick Benson

In his submission to the recent Spreadsheet Banking Hackathon, Luyanda Gumede demonstrates the advantages of working with non-devs in projects such as his Budget-Tracking app. Here, at last monthā€™s Programmable Banking Meet-up, he walks us through the foundational aspects of working with AI and explains how he intends to scale up his project.

Transcript of the demo

Luyanda Gumede 0:11

Hey everyone. Iā€™m excited to meet everyone. I thoroughly enjoyed the submissions that have been demoed. Feeling nervous now

Nick 0:20

Itā€™s all good.

Luyanda 0:27

Can you see my screen? OK. So hi, everyone. My submission also came from a point of trying to help myself being able to budget because budgeting is all well and good in theory. Itā€™s ā€˜OK, I’m going to spend this muchā€™, but then in practice, you don’t necessarily realise where your money is actually going. My idea was to categorise where my money is going; see where I’m spending the most money; where I can cut down; and then implementing, in future, budget alerts. Let’s say you spend 50% of your budget, my thinking was you set an alert, a custom alert. We can have standard alerts, where you will be able to say, ā€˜OK, if I spend 50% of this, send me a notification of some sort that says ā€œOK, watch it, you’re spending a lotā€.ā€™. And my budgeting categories would be the ones where you set ā€¦ OK, let’s say, for food, I’m going to spend 1Ā 000, or something like that. That was the thinking behind it. I used GPT to do a lot in this project, because I wanted to integrate with the AI and see what it can do. I started out with these questions and answers, to just see what it does. And it gave various answers. The most interesting one was this political one about the F1. It didn’t want to say who’s the greatest driver of all time. It gave a very political answer. And then I was able to, based off of the few questions that I asked it, I was able to then think about, how I am going to implement this into my solution. What I basically did in this cell here, I gave it my categories, so I told it, ā€˜OK, these are my categoriesā€™. And it was really struggling a lot with this Checkers one, and I was like, ā€˜OK, I want to categorise what that isā€™. It got it eventually that it’s a supermarket. I used this a lot as a reference point. And here are my transactions. This is the description I get from the table. Various transactions. What happened was in the beginning, before I started training it, it would give out the [inaudible] category, but write out the whole story, like a whole long thing, saying, ā€˜OK, this is likely a food purchaseā€™. And then I said, in the thing that I wrote here at the top of the script, I said, ā€˜Can you please give me one-word answer?ā€™, and that seems to have solved it just saying a whole sentence. It was quite a nice exercise with Dan. And then with some of the categories that it wasn’t able to pick up, like my supermarkets, Checkers and Woolworths, I added this piece of line and said, ā€˜OK, Checkers and Woolworths are supermarkets and Vodacom and Telkom are service providersā€™. So, I was picking up on that it was, anything that had Vodacom or Telkom in it, it was giving it as ā€˜Uncategorisedā€™ or unknown. [ā€¦] That’s how I was training it. I was just adding on these conditions and it was complying for the most part. What I did see was a bit of an issue, was when each time I logged into a session, the AI would freak out for some reason. I think that’s something Iā€™ll work on or maybe I’m not the only one experiencing that issue. But yeah, for the most part, it was able to recognise a lot of my purchases were what they are, except for this Checkers one [was for] food, but that’s OK. It recognised that Uber is likely transport, which is fine. I was experiencing a lot of issues when going back into the session. It would either clear my data and then the AI would start freaking out.

Luyanda 4:53

So, I just pasted all the stuff I got from there into this working directory. I got myself an Excel guru to help me with this, because I thought that would add a lot of value to [ā€¦] diversify the whole project and not just be for devs, and [to] include people who are not in the IT space to be able to contribute. This whole category column was generated by the AI, by me teaching it how to categorise. That will reflect here, because, as I said, it was giving me issues. I just copied all that data that it was giving me that was accurate, and I put it over here, so I could work more on it, and not be frustrated by the whole thing freaking out every time I log in. I basically got the totals ā€¦ Firstly, I categorised every transaction that I had, the sample data that I was using, and I got the value of whatever that transaction was. You can see here, I’ve got multiple duplicates, everywhere, which wasn’t a train smash, because that’s what I wanted to do. Then I went on to refine all of these categories and remove the duplicates. By removing the duplicates, I was able to get the totals for each category. And I displayed it here. As you can see here, here are the categories that are generated by the AI. And here are the totals that I got, per category. And then I went in and I said, ā€˜OK, that’s all good. Let me dive deeper into thisā€™. Because this is still quite granular, for a lot of people that are likely going to be using this. Because if you look at your budget, you donā€™t want to be looking at all of this; it puts you into shame more than anything. I thought, ā€˜OK, maybe some of these categories, I can group them and combine them into more universal categories so you can get a more of an overviewā€™. I started filtering out what these transactions actually were. And then with this one, which is quite interesting to me ā€¦ I think I was sending someone money, and AI categorised it as a donation, whereas I know that that’s actually a black tax, more accurately. Then I was able to do all that, play around with it, add some new categories. And my whole idea with this was that, here, once I’ve had a chance to refine my categories, I can then have a total of the summarised categories, and you can then be able to see the overview, instead of the more raw data, and be able to see, ā€˜OK, this is where your money actually goingā€™. This was a combination of both using the AI, integrating with Investecā€™s API, and also bringing in someone from the accounting space who works with Excel [ā€¦]. So yeah, it was it was quite an interesting project for me. This is just the start, [let me] just put that out there, this is just the start. There’s still a lot more features coming from me. Like, for instance, the setting up of the triggers of the budgets and just building on top of that. I might reference a few things from VT, because I took some stuff that I can implement from him. And I’ve also grown my team to be able to do more with this. I’d just like to mention that I bought in a guy called Sonny that I worked with, who was actually a master in AI. I think he can add a lot of value to not just my project but to the whole community as a whole. Yeah, that was me.

Nick 9:09

Awesome. Thanks. That was really cool. Devina?

Devina Maharaj 9:17

You definitely get full marks for your resilience here, going through all your transactions. I did this once many years ago, when we were implementing the PFM solution at Investec and it is hard work. Just trying to figure out how to categorise all of these things. And I think for me, what was really nice about your project was it was very evident that [ā€¦] you were in your learning curve, but it actually helped me learn a lot about GPT3, which I’m very new to. I think your learning curve helped my learning curve a lot in terms of just trying to figure out on how does it work? What does it do? And like you, I think I also started off just asking it random questions and trying to figure out like, what is this doing? It was very, very good to see that. And thank you for that. I think there’s a lot of foundational elements in your in your build that, like Dan was saying in the chat. And I’ll speak a little bit more about this, because I think there’s some really interesting golden threads that you can pull throughout every single project. And as you connect it, I think the value creation becomes exponential in terms of linking some of the foundational aspects of the different projects and what you can do so. So, thank you. I think you’ve built some very good foundational elements here that many other people will be able to leverage in the future.

**Luyanda 10:56 **

Thank you. Thank you.

Judges Comments

Nick 10:59

Pieter. Any thoughts?

Pieter Heyns 11:02

Yeah, thanks a lot for the submission. I can definitely see [ā€¦] the effort that you put in here and work that you’ve done. I completely agree with Devinaā€™s assessment. I think two things that stood out for me, just from an idea perspective, is this whole idea of being able to, you know, get information back on your spending. Your thinking about sending a trigger, or being able to get information, like, let’s say, you’ve had a budget for R1 000, and you start to hit that limit, and you get notifications. I really liked that idea and [inaudible] implementation. And for something like that for a user to be useful, you would want some sort of automated categorisation process so that it’s up to date ; it doesn’t help [for] you to basically, check your categorisation at the end of the month, when youā€™ve already blown your budget, right? This whole idea of [inaudible] and from yours also to do this auto classification, I think is really good. And then one other thing that also stood out to me that I thought was really exciting, in the way that you approached this project, is you mentioning, going to other professional competencies, like your, you know, like your accountant, friend, or this person that knows Excel. I think one of the things I’ve noticed across all of these projects is that [ā€¦] My background is an accountant, I’m an accountant, I don’t know how to code. So, you could bring this capability to be able to do these cool things with spreadsheets. But then you can go to professionals in the network that can help you bring that financial layer or give you that financial view in terms of how to maybe structure or how to build a dashboard, or to basically build a spreadsheet that would make sense for a finance person that would use this, if you wanted to build an app for business purposes. [ā€¦] I really liked that you’ve sort of expanded your community and brought some other professional people into this project, and your friend that you said is a master in AI can also input in this. That really stood out for me. And in that sense, I also completely agreed with Devina in terms of the foundational work that you’ve done. I think it’d be great if we could see more of that sort of [ā€¦]. You guys have the knowledge to build these things. And accountants have sort of this Excel View and how to structure the data on what’s useful from a financial-analysis perspective.

Luyanda 13:36

Yeah, we’re preparing to blow you guys away. This is just a start.

Nick 13:41

Awesome. I’m super glad. And we’re here to support you. We’re keen to see what happens next.

Dan Davey 13:47

I have a question for Luyanda. Maybe it’s the controversial one. Who is the greatest F1 driver of all time? [Laughter]

Luyanda 13:57

Sir Lewis Hamilton, of course

Dan 14:03

So why wouldn’t it tell you that?

Luyanda 14:07

Because it has to be political.

How to Build a Low-code Budget Tracking App


Get involved in the Programmable Banking Community.

If you have questions or want to say hi to the Programmable Banking Community core team, you can pop us a mail, and we will get back to you.

If you want to see more about what the community has been up to, you can:

OfferZen-developer-finance-guide

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Subscribe to our blog

Donā€™t miss out on cool content. Every week we add new content to our blog, subscribe now.

By subscribing you consent to receive OfferZenā€™s newsletter and agree to our Privacy Policy and use of cookies.