At What Cost

A full-stack web app that helps users break down their monthly SReflectionjpending habits. Users can upload a bank statement in .CSV format to display a list of transactions to that they can apply filters. The app processes the user's filters and displays a cost breakdown that gives instant feedback about where a user's money is going.

At What CostscreenshotAt What CostscreenshotAt What Costscreenshot

Learnings

This project was my first attempt at trying to host an Express server online. I researched a few services, trying to find a free/cheap option that was also simple to use. I chose to host my server and an instance of Postgresql on a 'Platform as a Service' called Railway. It took me a few days to get the different services online and working together. This experience highlighted the problems that containerisation solves and I am excited to use docker on future projects that have a similar architecture.

I chose to try Auth0 for this project as it was a universal API for authorisation, and while it worked in development, it unfortunately failed in production. The root of the issue was an error occuring between Auth0 validating a user and the callback to my website. I tried solving this issue for a week and eventually made the decision to use another authorisation method as there was no feedback (logs, stack trace, etc) that I could use to solve the problem definitively. The documentation and help available online was limited as the technology versions were new and lacked documentation (React 18, React Router 6 and Auth0). I chose to implement authorisation using JSON web tokens in the end and managed to get it working in production. This experience taught me that it is risky to use new versions of technologies without testing integration in production beforhand.