Back to works
PlateI

Sustainable Discount Marketplace

A full-stack web application built around a small, everyday problem: groceries close to their expiry date often get thrown out while shoppers are still hunting for a better price.

Role

Designed the interface, built the product editing and updating features, and worked across both the market and consumer dashboards.

Stack

Node.jsExpress.jsEJSMySQLJavaScriptHTMLCSSbcryptMulterNodemailerDocker

Overview

A full-stack web application built around a small, everyday problem: groceries close to their expiry date often get thrown out while shoppers are still hunting for a better price. The platform lets local markets list those near-expiry products at a discount, and helps consumers in the same city discover them through location-based browsing, turning potential food waste into savings on both sides.

What it does

  • IRole-based accounts with separate market and consumer dashboards
  • IIEmail verification at registration and hashed passwords
  • IIIProduct management with image upload
  • IVLocation-based filtering, search, and pagination
  • VA dynamic cart with real-time stock validation

Technical notes

  • IAuthentication and access control were the heart of the project: role-based auth, email verification at sign-up, and bcrypt-hashed passwords kept the two user types and their data cleanly separated and secure.
  • IIImage uploads handled with Multer; registration emails sent through Nodemailer.
  • IIIContainerized with Docker for a consistent environment across machines.

What I learned

My first real full-stack project, built around an original idea; it taught me how interface, server, and database fit together as one system.