Skip to content

An advanced E-commerce Multi-Vendor Web Application built with Spring Boot for the backend and React + TypeScript for the frontend. The platform supports multiple vendors, secure authentication, and seamless payment integration for both Indian and international users.

Notifications You must be signed in to change notification settings

gsharma101/Ecommerce-react-spring-boot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

🛍️ E-commerce Multi-Vendor Platform

An advanced E-commerce Multi-Vendor Web Application built with Spring Boot for the backend and React + TypeScript for the frontend. The platform supports multiple vendors, secure authentication, and seamless payment integration for both Indian and international users.


🚀 Tech Stack

Backend

  • Spring Boot
  • MySQL
  • Spring Security (Authentication & Authorization)
  • Java Mail Sender
  • JWT (JSON Web Token)

Frontend

  • React (TypeScript)
  • Redux Toolkit
  • Material UI (MUI)
  • Tailwind CSS
  • React Chart
  • Formik + Yup (Form Handling & Validation)
  • React Router DOM
  • Axios

Payment Gateway

  • Razorpay (for Indian customers)
  • Stripe (for International customers)

✨ Features

Customer Features

  • Chatbot for Queries
    Ask about order history, cart details, and product info.
  • Product Management
    Browse, filter, sort, and view detailed product information. Includes pagination.
  • Cart Management
    Add, update, or remove items from the cart.
  • Checkout Process
    Apply discount coupons, manage shipping addresses, and complete payment via Razorpay or Stripe.
  • Order History
    View past orders and cancel orders.
  • User Account Management
    Manage profile details and account settings.
  • Review & Rating
    Submit reviews for purchased products.
  • Wishlist
    Add or remove products from the wishlist.

Seller Features

  • Dashboard
    Earning graphs for today, last 7 days, and last 12 months.
  • Reports
    Total sales, earnings, refunds, and cancellations.
  • Product Management
    Create and manage products.
  • Order Management
    View and manage customer orders.
  • Payment & Transactions
    Track payments and view transaction history.
  • Account Management
    Manage and update seller profile.

Admin Features

  • Dashboard
    Overview of platform activity.
  • Seller Management
    Approve or suspend sellers.
  • Coupon Management
    Create, edit, and delete discount coupons.
  • Home Page Management
    Update home page content dynamically.
  • Deal Management
    Create and manage promotional deals.

📂 Project Structure

ecommerce-multivendor/
├── backend/        # Spring Boot backend
│   ├── src/main/java/com/ecommerce
│   ├── src/main/resources
└── frontend/       # React + TypeScript frontend
    ├── src/components
    ├── src/pages

⚙️ Installation & Setup

Prerequisites

  • Java 17+
  • Node.js 18+
  • MySQL
  • Maven

Backend Setup

server.port=5454

#db specific properties
#spring.datasource.url=jdbc:mysql://sql12.freemysqlhosting.net:3306/sql12732253
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.username=sql12732253
#spring.datasource.password=qVJTshEk4b

spring.datasource.url=jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:ecommerce_multi_vendor}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=${DB_USERNAME:root}
spring.datasource.password=${DB_PASSWORD:$7090Ashok}


#ORM s/w specific properties
#spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

razorpay.api.key=provide your razorpay api key
razorpay.api.secret=provide your razorpay api secret

stripe.api.key=stripe api key

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=provide your gmail
spring.mail.password=provide your gmail app password
#if needed search on youtube how to generate app password in gmail
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

spring.devtools.livereload.enabled=true

#ai
gemini.api.key=provide your gemini api key

Frontend Setup

# Navigate to frontend folder
cd frontend

# Install dependencies
npm install

# Start the development server
npm run dev

🔐 Security

  • JWT-based authentication.
  • Role-based access control for Admin, Seller, and Customer.

💳 Payment Integration

  • Razorpay: For Indian customers.
  • Stripe: For international customers.

✅ API Endpoints (Brief)

Auth

  • POST /api/auth/register → Register new user
  • POST /api/auth/login → Login and get JWT token

Products

  • GET /api/products → Fetch all products
  • POST /api/products → Add new product (Seller only)

(Full API documentation can be provided in a separate file)


✅ Future Enhancements

  • AI-powered chatbot
  • Push notifications for order updates
  • Advanced analytics for sellers and admin

📸 Screenshots

(Add screenshots of UI here)


🏆 Author

Gaurav Sharma
Software Engineer | Full-Stack Developer
Portfolio | LinkedIn


About

An advanced E-commerce Multi-Vendor Web Application built with Spring Boot for the backend and React + TypeScript for the frontend. The platform supports multiple vendors, secure authentication, and seamless payment integration for both Indian and international users.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages