A comprehensive
full-stack e-commerce solution featuring a modern
React customer frontend, a separate
admin dashboard, and a robust
Node.js backend. This project demonstrates
advanced patterns for building scalable, secure, and user-friendly
web applications with a containerized deployment architecture.
🔗 Live Demo:
mernappshopper.xyz
🔐 Admin Dashboard:
admin.mernappshopper.xyz
🎥 Video Presentation:
Watch on YouTube
💻 Code Repository:
GitHub Repository
System Architecture
The application follows a modern microservices-inspired
architecture with Docker containerization, featuring separate
containers for the customer frontend, admin dashboard, and backend
API server, all orchestrated through an Nginx reverse proxy.
Key Features
-
Dual Frontend Architecture (Customer +
Admin)
-
JWT Authentication with email verification
and refresh tokens
-
Stripe Payment Integration with webhook
support
-
Advanced SEO using React 19's Document
Metadata API
-
Docker Deployment with production and
development environments
-
Nginx Reverse Proxy with HTTPS via Let's
Encrypt
-
Responsive design optimized for all devices
-
Complete E-Commerce Functionality:
- Product catalog with filtering and search
- Shopping cart system
- Secure checkout process
- Order management and history
- Admin inventory control
Tech Stack
Frontend (Customer)
- React 19 with Redux for state management
- React Router for navigation
- Stripe Elements for payment integration
- React 19 Document Metadata for SEO
- CSS modules for styled components
Admin Dashboard (Subdomain)
- React with Context API
- Vite for faster development
Backend
- Node.js & Express
- MongoDB with Mongoose ODM
- JWT authentication with refresh tokens
- Stripe API for payment processing
DevOps
- Docker & Docker Compose
- Nginx as reverse proxy
- SSL certificates
- Digital Ocean for cloud deployment
Architecture Highlights
The application is fully containerized using Docker with a
microservices-inspired setup:
-
Frontend Container: React customer storefront
with Nginx for static file serving
-
Admin Container: React admin dashboard with its
own Nginx configuration
-
Backend Container: Node.js API server with
MongoDB connection
-
Nginx Proxy Container: Handles routing, SSL
termination, and caching
-
Secret Management: Sensitive configuration via
Docker volumes
-
Development Environment: Docker setup with
hot-reloading for efficient development