Skip to content

be-a-guptaji/e-commerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

65 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›’ E-Commerce Platform

License Status React Node.js MongoDB TailwindCSS Razorpay


πŸ“– About The Project

E-Commerce Platform is a modern full-stack web application built for online shopping.
It allows customers to browse products, add to cart, and place secure orders, while admins can manage inventory, users, and transactions.

This project was built with React, Node.js, Express, MongoDB, and TailwindCSS for scalability, speed, and flexibility.


✨ Key Features

  • πŸ‘€ User Authentication – Secure login and signup.
  • πŸ› Product Management – Browse, search, and filter products.
  • πŸ›’ Cart & Checkout – Add to cart, update, and place orders.
  • πŸ’³ Payments – Integrated with secure payment gateways.
  • πŸ“¦ Order Tracking – Track your purchases in real-time.
  • πŸ›  Admin Dashboard – Manage users, products, and orders.
  • ⚑ Fast & Responsive – Optimized with React + TailwindCSS.

πŸ“Έ Screenshots

Login Page

Login

Sign Up Page

Sign Up

DashBoard

DashBoard

Product Detail Page

Product Detail

Cart Page

Cart

Checkout Page

Checkout

Order Success Page

Success

Order List Page

List

Profile Page

Profile

Admin Dashboard

Admin DashBoard

Order Detail Page

Detail


πŸ“ Directory Structure

The project is organized as follows:

Directory structure:
└──  e-commerce/
    β”œβ”€β”€ LICENSE
    β”œβ”€β”€ client/
    β”‚   β”œβ”€β”€ package.json
    β”‚   β”œβ”€β”€ tailwind.config.js
    β”‚   β”œβ”€β”€ public/
    β”‚   β”‚   β”œβ”€β”€ index.html
    β”‚   β”‚   β”œβ”€β”€ manifest.json
    β”‚   β”‚   └── robots.txt
    β”‚   └── src/
    β”‚       β”œβ”€β”€ App.js
    β”‚       β”œβ”€β”€ App.test.js
    β”‚       β”œβ”€β”€ index.css
    β”‚       β”œβ”€β”€ index.js
    β”‚       β”œβ”€β”€ reportWebVitals.js
    β”‚       β”œβ”€β”€ setupTests.js
    β”‚       β”œβ”€β”€ app/
    β”‚       β”‚   β”œβ”€β”€ constants.js
    β”‚       β”‚   └── store.js
    β”‚       β”œβ”€β”€ features/
    β”‚       β”‚   β”œβ”€β”€ admin/
    β”‚       β”‚   β”‚   └── components/
    β”‚       β”‚   β”‚       β”œβ”€β”€ AdminOrderDetail.js
    β”‚       β”‚   β”‚       β”œβ”€β”€ AdminOrders.js
    β”‚       β”‚   β”‚       β”œβ”€β”€ AdminProductDetail.js
    β”‚       β”‚   β”‚       β”œβ”€β”€ AdminProductList.js
    β”‚       β”‚   β”‚       └── ProductForm.js
    β”‚       β”‚   β”œβ”€β”€ auth/
    β”‚       β”‚   β”‚   β”œβ”€β”€ authAPI.js
    β”‚       β”‚   β”‚   β”œβ”€β”€ authSlice.js
    β”‚       β”‚   β”‚   └── components/
    β”‚       β”‚   β”‚       β”œβ”€β”€ ForgotPassword.js
    β”‚       β”‚   β”‚       β”œβ”€β”€ Login.js
    β”‚       β”‚   β”‚       β”œβ”€β”€ Logout.js
    β”‚       β”‚   β”‚       β”œβ”€β”€ Protected.js
    β”‚       β”‚   β”‚       β”œβ”€β”€ ProtectedAdmin.js
    β”‚       β”‚   β”‚       β”œβ”€β”€ ResetPassword.js
    β”‚       β”‚   β”‚       └── Signup.js
    β”‚       β”‚   β”œβ”€β”€ brands/
    β”‚       β”‚   β”‚   β”œβ”€β”€ brandsAPI.js
    β”‚       β”‚   β”‚   └── brandSlice.js
    β”‚       β”‚   β”œβ”€β”€ cart/
    β”‚       β”‚   β”‚   β”œβ”€β”€ Cart.js
    β”‚       β”‚   β”‚   β”œβ”€β”€ cartAPI.js
    β”‚       β”‚   β”‚   └── cartSlice.js
    β”‚       β”‚   β”œβ”€β”€ category/
    β”‚       β”‚   β”‚   β”œβ”€β”€ categoryAPI.js
    β”‚       β”‚   β”‚   └── categorySlice.js
    β”‚       β”‚   β”œβ”€β”€ common/
    β”‚       β”‚   β”‚   └── components/
    β”‚       β”‚   β”‚       β”œβ”€β”€ Footer.js
    β”‚       β”‚   β”‚       β”œβ”€β”€ Modal.js
    β”‚       β”‚   β”‚       └── Pagination.js
    β”‚       β”‚   β”œβ”€β”€ navbar/
    β”‚       β”‚   β”‚   └── Navbar.js
    β”‚       β”‚   β”œβ”€β”€ order/
    β”‚       β”‚   β”‚   β”œβ”€β”€ orderAPI.js
    β”‚       β”‚   β”‚   └── orderSlice.js
    β”‚       β”‚   β”œβ”€β”€ payment/
    β”‚       β”‚   β”‚   β”œβ”€β”€ paymentAPI.js
    β”‚       β”‚   β”‚   └── paymentSlice.js
    β”‚       β”‚   β”œβ”€β”€ product/
    β”‚       β”‚   β”‚   β”œβ”€β”€ productAPI.js
    β”‚       β”‚   β”‚   β”œβ”€β”€ productSlice.js
    β”‚       β”‚   β”‚   └── components/
    β”‚       β”‚   β”‚       β”œβ”€β”€ ProductDetail.js
    β”‚       β”‚   β”‚       └── ProductList.js
    β”‚       β”‚   └── user/
    β”‚       β”‚       β”œβ”€β”€ userAPI.js
    β”‚       β”‚       β”œβ”€β”€ userSlice.js
    β”‚       β”‚       └── components/
    β”‚       β”‚           β”œβ”€β”€ UserOrders.js
    β”‚       β”‚           └── UserProfile.js
    β”‚       └── pages/
    β”‚           β”œβ”€β”€ 404.js
    β”‚           β”œβ”€β”€ AdminHome.js
    β”‚           β”œβ”€β”€ AdminOrderDetailPage.js
    β”‚           β”œβ”€β”€ AdminOrdersPage.js
    β”‚           β”œβ”€β”€ AdminProductDetailPage.js
    β”‚           β”œβ”€β”€ AdminProductFormPage.js
    β”‚           β”œβ”€β”€ CartPage.js
    β”‚           β”œβ”€β”€ Checkout.js
    β”‚           β”œβ”€β”€ ForgotPasswordPage.js
    β”‚           β”œβ”€β”€ Home.js
    β”‚           β”œβ”€β”€ LoginPage.js
    β”‚           β”œβ”€β”€ OrderSuccessPage.js
    β”‚           β”œβ”€β”€ ProductDetailPage.js
    β”‚           β”œβ”€β”€ ResetPasswordPage.js
    β”‚           β”œβ”€β”€ SignupPage.js
    β”‚           β”œβ”€β”€ UserOrdersPage.js
    β”‚           └── UserProfilePage.js
    └── server/
        β”œβ”€β”€ index.js
        β”œβ”€β”€ package.json
        β”œβ”€β”€ pnpm-lock.yaml
        β”œβ”€β”€ .env.sample
        β”œβ”€β”€ controllers/
        β”‚   β”œβ”€β”€ Auth.Controller.js
        β”‚   β”œβ”€β”€ Brand.Controller.js
        β”‚   β”œβ”€β”€ Cart.Controller.js
        β”‚   β”œβ”€β”€ Category.Controller.js
        β”‚   β”œβ”€β”€ Mail.Controller.js
        β”‚   β”œβ”€β”€ Order.Controller.js
        β”‚   β”œβ”€β”€ Payment.Controller.js
        β”‚   β”œβ”€β”€ Product.Controller.js
        β”‚   └── User.Controller.js
        β”œβ”€β”€ models/
        β”‚   β”œβ”€β”€ Brand.Model.js
        β”‚   β”œβ”€β”€ Cart.Model.js
        β”‚   β”œβ”€β”€ Category.Model.js
        β”‚   β”œβ”€β”€ Order.Model.js
        β”‚   β”œβ”€β”€ Payment.Model.js
        β”‚   β”œβ”€β”€ Product.Model.js
        β”‚   └── User.Model.js
        β”œβ”€β”€ routes/
        β”‚   β”œβ”€β”€ Auth.Routes.js
        β”‚   β”œβ”€β”€ Brand.Routes.js
        β”‚   β”œβ”€β”€ Cart.Routes.js
        β”‚   β”œβ”€β”€ Category.Routes.js
        β”‚   β”œβ”€β”€ Mail.Routes.js
        β”‚   β”œβ”€β”€ Order.Routes.js
        β”‚   β”œβ”€β”€ Payment.Routes.js
        β”‚   β”œβ”€β”€ Product.Routes.js
        β”‚   └── User.Routes.js
        β”œβ”€β”€ services/
        β”‚   β”œβ”€β”€ Common.js
        β”‚   └── Mails/
        β”‚       β”œβ”€β”€ ConfirmationMail.js
        β”‚       β”œβ”€β”€ ResetMail.js
        β”‚       β”œβ”€β”€ SendEMail.js
        β”‚       └── WelcomMail.js
        └── utils/
            └── connectDB.js

Key Folders and Files:

  • /client: React frontend for UI/UX.
  • /client/components: Reusable UI components (Navbar, Footer, ProductCard, etc.).
  • /client/pages: Main pages like Home, Cart, Checkout, and Product details.
  • /client/services: API service layer for client-server communication.
  • /server: Express backend handling routes, controllers, and database logic.
  • /server/models: MongoDB models for Users, Products, and Orders.
  • /server/controllers: Business logic for authentication, orders, and product management.
  • /server/routes: REST API endpoints for client interactions.

πŸ—οΈ Architecture

The system architecture is built to ensure performance, scalability, and modularity. It follows a client-server model with separate frontend and backend responsibilities:

  • Frontend (React + TailwindCSS): Handles product browsing, cart management, and checkout flow.
  • Backend (Node.js + Express): Provides REST APIs for users, products, and orders.
  • Database (MongoDB + Mongoose): Stores user accounts, products, orders, and transactions.
  • Authentication (JWT): Secure login and protected routes for users and admins.
  • Payments (Payment Gateway): Secure payment processing for orders.
graph TD
    %% CLIENT
    subgraph Client
    U[πŸ›οΈ User] --> F[πŸ’» React Frontend]
    end

    %% BACKEND
    subgraph Backend
    F --> API[βš™οΈ Express API]
    API --> DB[(πŸ—„οΈ MongoDB via Mongoose)]
    API --> Pay[πŸ’³ Payment Gateway]
    end

    %% FLOWS
    U -->|πŸ”‘ Login / Signup| API
    U -->|πŸ›’ Browse & Add to Cart| F
    U -->|πŸ’° Checkout & Pay| Pay
    Pay -->|πŸ“œ Payment Status| API
    API -->|πŸ’Ύ Store / Retrieve Data| DB

    %% STYLING
    classDef client fill:#6ac6b7,stroke:#000,stroke-width:2px,color:#000,font-weight:bold;
    classDef backend fill:#f1a4cb,stroke:#000,stroke-width:2px,color:#000,font-weight:bold;
    classDef user fill:#ffcc00,stroke:#000,stroke-width:2px,color:#000,font-weight:bold;
    classDef db fill:#f1e1a4,stroke:#000,stroke-width:2px,color:#000,font-weight:bold;

    %% Apply Classes
    class U user;
    class F client;
    class API backend;
    class DB db;
    class Pay backend;
Loading

πŸ›  Built With

  • Frontend: React, TailwindCSS
  • Backend: Node.js, Express
  • Database: MongoDB, Mongoose
  • Auth: JWT
  • Payments: Payment Gateway (e.g., Stripe/PayPal)

βš™οΈ Getting Started

Prerequisites

  • Node.js 18+
  • MongoDB instance
  • Payment Gateway API Keys (Stripe/PayPal)

Installation

git clone https://github.com/username/be-a-guptaji-e-commerce.git
cd be-a-guptaji-e-commerce

Install client dependencies:

cd client
npm install

Install server dependencies:

cd ../server
npm install

Configuration

Create .env in the server/ directory and add:

MONGO_URI=your_mongo_connection_string
JWT_SECRET=your_jwt_secret
PAYMENT_GATEWAY_KEY=your_payment_key

Run Development Server

Start backend:

cd server
npm run dev

Start frontend:

cd client
npm start

Visit πŸ‘‰ http://localhost:3000


πŸ›£οΈ Roadmap

  • User Authentication (JWT)
  • Product Management
  • Cart & Checkout
  • Order Tracking
  • Email Notifications
  • Admin Analytics Dashboard
  • Multi-language Support

πŸ“œ License

MIT License Β© 2025 Aryan Baadlas


πŸ“¬ Contact

πŸ‘¨β€πŸ’» Aryan Baadlas
πŸ“§ aryanbaadlas@gmail.com


⭐ Show some love!

If you like this project, give it a star ⭐ on GitHub!

About

E-Commerce Platform is a full-stack application built with React, Node.js, Express, MongoDB, and TailwindCSS. It allows users to log in, browse products, manage their cart, make secure payments, and track orders, while admins can manage products, users, and orders through a dedicated dashboard.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages