In my lost post of this series, I walked through my prototype of an expense categorisation add-on for Google Sheets.
Unfortunately, Google has been kicking the can down the road and has not yet approved the app. The reason is an OAuth scope - one of these things an app would request from you - is too broad.
I need the scope however to access API keys. Since then I’ve spoken to a friend at Google who suggested to rearchitect the solution to get around the issue. Maybe this will lead to both a web app and a Google Sheet add-on version.
Next iteration
Anyway, I didn’t want to wait for Google and also didn’t like the process of developing and getting an app approved. Maybe it isn’t that bad to not be as dependent on Google.
Inspired by the Google Sheet integration I built for Tokenomics Hub, I pulled out this old NextJS version of the app.
The main change to the Google Sheet add-on is that this web version acts as the interface to your sheet. It will trigger the process that reads your expense data and lets you do the configuration of which sheet, range etc. you want to use for training and categorisation.
Everything else is done by the backend. This is the major change.
Whereas the Google Sheet app would interact with Replicate and the sheet directly, for this web app version I’ve moved everything into the backend component.
If you’re super keen to try it out, I’ve got a very early prototype working at Expense Sorted.
If you follow the steps and use the template, it should work smoothly.
Next Steps
My initial goal was to solve this problem for myself and I think I’ve already gone past that now in making it available for others.
It won’t take much to turn this into a fully working MVP from here. I need:
Authorisation and user management - Auth0 looks promising.
Improved status handling: the current prototype doesn’t even tell the user when the training is done - for that, I need a DB and might try out Supabase.
Payments processing: I’m paying for Replicate, so I need to pass this on. It won’t be much, but Stripe is probably the way to go.