๐Ÿ›’ E-commerce Platform

A full-stack e-commerce web application. It offers a seamless shopping experience with full inventory management, secure authentication, and support for PayPal and bank payments.

โœจ Features

  • ๐Ÿ›๏ธ Product browsing and search
  • ๐Ÿ›’ Shopping cart with quantity adjustments
  • ๐Ÿ‘ค User authentication (JWT, cookies)
  • ๐Ÿ” Role-Based Access Control (RBAC) for admin/user
  • ๐Ÿ“ฆ Inventory management for admins
  • ๐Ÿ’ณ PayPal and bank payment integration
  • ๐Ÿงพ Order tracking and history
  • โšก Caching for improved performance
  • ๐Ÿ“ฑ Responsive UI with Tailwind CSS + Setup for DaisyUI
  • ๐Ÿ”„ Redux Toolkit for state management
  • ๐Ÿง  Backend built with Express & Node.js
  • ๐Ÿ—ƒ๏ธ MongoDB for data persistence
  • ๐Ÿ›ก๏ธ Security best practices: Helmet, CORS, rate limiting, etc.
  • โ˜๏ธ Image upload with Multer
  • ๐Ÿ” Protected routes & authorization

๐Ÿ› ๏ธ Tech Stack

Frontend

  • React
  • Tailwind CSS
  • DaisyUI
  • Redux Toolkit
  • Cloudinary

Backend

  • Node.js
  • Express.js
  • Redis
  • Paypal payment integrated
  • MongoDB + Mongoose
  • JWT, Cookies
  • Multer
  • Cloudinary

๐Ÿ”ง Getting Started

1. Clone the Repository

git clone https://github.com/your-username/your-repo-name.git
cd Full-Stack-E-Commerce-MERN-APP

2. Set Up Environment Variables

Create a .env file in both /frontend and /backend with your configuration like:

Example for backend

PORT=5000
NODE_ENV=development
MONGO_URI="your_mongo_uri"
JWT_SECRET="your_jwt_secret"
JWT_EXPIRE=30d
CLIENT_URL="your-client-url"
PAYPAL_CLIENT_ID=your_paypal_id
REDIS_URL="your-redis-url"

Do this env for front end

NODE_ENV=development
VITE_SERVER_URL="your-server-url"

3. Install Dependencies

Using docker

  docker-compose up

Using npm

# Backend
cd backend
npm install

# Frontend
cd ../frontend
npm install
cd ..
npm install
npm run dev

๐Ÿ“ธ Screenshots

Admin Dashboard

image

Home page

image

Login page

image

Orders page

image

Reviews and suggestions

image

And more... Video for clarifying

Suggestions

  • Add stripe its already configured for it
  • Mobile app version (React Native)
  • Real-time order status updates with WebSockets

๐Ÿ‘จโ€๐Ÿ’ป Author

  • ๐Ÿ‘จโ€๐Ÿ’ป Ahmed Issawy
  • ๐Ÿ“ Cairo, Egypt
  • ๐Ÿ”— LinkedIn

๐Ÿ“„ License U can use the project for any thing

Share this project:

Updates