Dealio

The project that got me into web development - a portal to replace the spreadsheet chaos of retail promotion management.

Date
2017
Type
Personal Project
Stack
React
Node
Express
MongoDB
Redux
Material UI
Collage of Dealio screens: promotional calendar, submission form, and pricing diff view.
Replacing spreadsheet chaos: calendar planning, submissions, and pricing diffs unified.

Context and Objective

Back in 2017 I was working as a retail buyer for a supermarket. Managing product promotions meant endless spreadsheet exchanges between suppliers and the retailer. I wanted to build a single portal that both sides could use - handle submissions, validation, approvals, all in one place.

I was also itching to learn web development properly. I'd done a few courses, but I knew the real learning would come from building something I actually cared about. Dealio became that project - a year-long deep dive that ultimately let me change careers into something I genuinely enjoy.

  • React
  • Node
  • Express
  • MongoDB
  • Redux
  • Material UI

Architecture and Delivery

I went with React for the dashboard - jQuery was already on the decline and React's component model just made more sense to me as a beginner. JSX felt more intuitive than scattered jQuery files.

For the backend I stuck with JavaScript to avoid overloading myself, using Node, Express and MongoDB (the classic MERN stack). Material UI helped me scaffold quickly while I was still getting comfortable with CSS.

Challenges and Trade-offs

The first couple of months were a baptism of fire. I spent hours debugging "of undefined" errors, crashed my server constantly with poor error handling, and created all sorts of performance bottlenecks with bad React patterns. But I pushed through, StackOverflow helped, and eventually the codebase started making sense.

The hardest feature was promotion versioning with rollback support. I refactored the database schema multiple times before landing on something that worked. Redux also took a while to click - immutability issues and dynamic keys in a growing store kept tripping me up.

Collage of Dealio screens: audit timeline, annual calendar, and trader dashboard.
Full visibility: audit timelines, annual calendars, and trader dashboards.