Skip to content
Ghayyas Ahmed
Back to projects

Multi-Vendor E-Commerce Platform

Production-oriented marketplace with role-based workflows, real-time communication, payments, and cloud deployment.

Placeholder preview of the Multi-Vendor E-Commerce Platform interface — a real screenshot hasn't been added yet

Overview

A full-stack multi-vendor marketplace where buyers, vendors, and administrators interact through distinct role-based workflows. The application combines a React and TypeScript frontend with a Node.js/Express API, MongoDB, Redis, Socket.IO-based real-time communication, authentication and authorization, and Stripe-powered payments. The application was containerized with Docker and deployed to AWS EC2 behind Nginx, with separate HTTPS endpoints for the frontend, backend API, and real-time socket service. MongoDB is self-hosted on AWS EC2 with persistent storage, while GitHub Actions provides the CI/CD workflow.

Key Features

  • Multi-vendor storefronts with independent product and order management.
  • Role-based authentication and authorization for buyers, vendors, and administrators.
  • Real-time order and notification updates using Socket.IO.
  • REST API architecture supporting catalog, cart, checkout, and order workflows.
  • Stripe payment integration.
  • Redis-backed application functionality where required by the real-time architecture.
  • Production HTTPS endpoints for the frontend, backend API, and Socket.IO service.

Engineering Highlights

  • Designed frontend workflows around distinct buyer, vendor, and administrator roles.
  • Implemented authentication, authorization, and role-based access control across the application.
  • Integrated Socket.IO for real-time order and status communication.
  • Built and integrated REST APIs for the application's core business workflows.
  • Containerized the frontend, backend, and socket-relay services using Docker and Docker Compose.
  • Deployed the application services to AWS EC2 and used Nginx as a reverse proxy.
  • Deployed MongoDB on AWS EC2 with persistent storage and internal networking.
  • Configured Redis as an internal service without exposing it publicly.
  • Configured custom domains for the frontend, backend API, and socket-relay service.
  • Configured HTTPS using Let's Encrypt and Certbot, including secure WSS communication for Socket.IO.
  • Configured Nginx for WebSocket upgrade and proxying between the public socket endpoint and the socket-relay service.
  • Implemented GitHub Actions CI/CD for automated application deployment.
  • Applied production security practices including restricted network ports, environment-variable management, internal database access, and HTTPS.

Tech Stack

Frontend

ReactTypeScriptTailwind CSS

Backend & API

Node.jsExpressREST APIs

Database & Infrastructure

MongoDBRedis

Realtime

Socket.IO

Payments

Stripe

Cloud & Deployment

AWS EC2DockerDocker ComposeNginxGitHub Actions

Security & Networking

HTTPSTLSLet's EncryptCertbotWebSockets/WSS

Deployment

Containerized and deployed on AWS EC2 using Docker and Docker Compose. Nginx acts as the reverse proxy for the frontend, backend API, and Socket.IO service. MongoDB runs on the AWS infrastructure with persistent storage, while Redis remains internal to the application network. Custom domains are secured with HTTPS using Let's Encrypt/Certbot, including WSS for real-time communication. GitHub Actions provides the CI/CD workflow.

Live Demo

GitHub