Dealio
The project that got me into web development - a portal to replace the spreadsheet chaos of retail promotion management.
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.