Project Purpose and Goal
Back in 2017 I was working as a retail buyer for a supermarket. The process for administering product promotions involved exchanging lots of spreadsheets between the supplier and retailer. I wanted to create a portal used by both suppliers and a retailer that would handle submission and management of promotions to save time and improve data validation.
At this time I was also really keen to pick up web development, and I had spent a few months taking courses to get to grips with the basics. However, I knew that putting this learning into practice with a real project was going to be the best way for me to pick things up, and Dealio felt like the perfect passion project to focus my effort.
- Material UI
Tech Stack and Explanation
The first couple of months developing Dealio were a real baptism of fire. Progress was very slow as I struggled with basic errors like 'of undefined'. I had bad practice React state/lifecycle methods creating performance bottlenecks, and my server would regularly crash due to poor error handling. I persisted through, and with a little help from Stackoverflow, I eventually started to became comfortable with the codebase.
A feature I found particularly difficult to implement was the ability to roll back changes to promotions with versioning history. It was a tricky concept for a newbie and I refactored my database schema multiple times before I had something that worked. Redux also took a while to get my head around. To begin with I would often struggle with immutability, and also had some issues with dynamic keys as my store got more complex.
I am proud of what I managed to achieve creating Dealio. Working on a passion project like this for the best part of a year gave me a really strong foundational knowledge of web development, which then opened the door for me to change careers into to something that I really enjoy doing. For anyone interesting in learning development, I will always recommend working on your own passion project from the ground up.
However, creating Dealio was incredibly testing at times. I was juggling it alongside a demanding professional career and would often spend all of my evenings and weekends working on it. I was lucky to have a very understanding partner who supported me along the way, but I've since also learnt how important it is to create a healthy work-life balance.