5 minute read

3xpenses

This is a versatile expense tracker that I built. It can serve many purposes such as tracking daily expenses or for a specific trip. It is still a work in progress however the minimum viable product is on a production server already. You can see it at 3xpenses.com.

Why did I create it?

There is an interesting story behind this one. While we were studying on campus, I had noticed my friend had stopped studying as they needed to spend the time calculating how much had been spent on a recent holiday. They were entering data values onto a basic spreadsheet and throwing out the receipts once entered. It seemed like a horribly inefficient way to do that, however they had no other choice given that something such as Xero would be too expensive and a pain to set up for a use-case this basic.

After seeing that, I knew there was a way to make this process more efficient for everyone who needed to track their expenses. The problem all boiled down to this: there are no cheap and simple expense trackers out there that are easy to use for the average untrained person. This is what actually guided the way I chose to design the UX, as I needed to ensure that this product is accessible for all backgrounds. This proved challenging when it came to naming and workflows, as it couldn't be too technical.

The technical side

This was actually my first major project with ExpressJS and Passport. This is also where I learned the different auth methods available for me. I had chosen to use JWTs as they seemed straightforward enough to implement, and they seemed like the standard for my tech stack. Honestly, the backend nor the frontend was the most difficult part of this project. I found that a lot of this stuff just involves reading docs (sometimes outdated), as well as reading up on how JWTs work.

I would say the hardest part of this entire project was actually designing the database. I found it difficult as I had to change it up when I had thought of a way to improve the UX. I would say that it is a great way to challenge the brain though, and for the future I will have to plan out the database from the start and stick to that plan.