Alex Bristow

Dealio

A promotion management portal I built while working as a supermarket buyer. The spreadsheet problem was mine, and building a way out of it got me into software engineering.

Year
2017
Type
Personal project
The calendar, submission form and pricing changes in one place.

The spreadsheet was my job

In 2017 I was a supermarket buyer. Suppliers sent promotions in spreadsheets; buyers checked the prices and dates, sent corrections back, then tried to keep track of what had been approved. The same promotion could pass through several versions before it reached a shop.

I wanted one place for submissions, validation, approvals and a calendar both sides could read. I knew how annoying the handoffs were because I dealt with them every day.

The hard part was history

I chose React over jQuery because JSX made more sense to me, then kept the backend in JavaScript so I wasn't learning two languages at once. For the first couple of months I crashed the server more than once and spent far too long on 'of undefined' errors. I was still a buyer doing this in my spare time, so Stack Overflow got a lot of use.

Promotion versioning was the hard feature. Prices and dates change, approvals get revised, and you need to know which version someone signed off. I refactored the schema several times before I could keep an audit trail and roll a promotion back. Redux was its own headache: immutability bugs and dynamic keys in a growing store took me a while to understand.

StackReact, Node, Express, MongoDB, Redux, Material UI

The audit trail was as important as the current promotion.

It changed my direction

Dealio took about a year. I'd done courses before, but building around a problem I dealt with at work is where web development started to click. The project got me out of buying and into software engineering.