An advanced multiโvendor eโcommerce web application with a Spring Boot backend and a React + TypeScript frontend.
Supports customers, sellers, and admins with authentication, product/catalog management, checkout with Razorpay/Stripe, analytics, and more.
Ecommerce-react-spring-boot/
โโ Ecomm-react-tsx-frontend/ # React + TypeScript app (Redux Toolkit, MUI, Tailwind)
โโ Ecomm-springboot-backend/ # Spring Boot REST API (JWT, Spring Security, MySQL)
- IntelliJ IDEA โข VS Code โข Node.js โข MySQL
- Spring Boot, Spring Security, JWT
- Java Mail Sender
- MySQL (JPA/Hibernate)
- React (TypeScript)
- Redux Toolkit, React Router DOM, Axios
- Tailwind CSS, MUI
- React Chart
- Formik + Yup
- Razorpay (India)
- Stripe (International)
- Chatbot for queries (order history, cart, product details)
- Browse products with filter, sort, pagination
- Cart: add/update/remove
- Checkout: coupons, addresses, Razorpay/Stripe
- Orders: view/cancel
- Account management
- Wishlist (add/remove)
- Reviews & ratings
- Dashboard with earnings graphs (today / last 7 days / last 12 months)
- Reports: sales, earnings, refunds, cancellations
- Product CRUD
- Order management
- Payment & transaction history
- Profile management
- Admin dashboard
- Seller approval/suspension
- Coupon CRUD
- Home page management
- Deal/promo management
erDiagram
User ||--o{ Address : has
User ||--o{ Order : places
User ||--o{ Review : writes
User ||--o{ Transaction : performs
User ||--|| Wishlist : "has 1"
User ||--|| Cart : "has 1"
Cart ||--o{ CartItem : contains
CartItem }o--|| Product : refers
Product }o--|| Category : belongs_to
Product ||--o{ Review : receives
Product }o--|| Seller : offered_by
Order ||--o{ OrderItem : contains
OrderItem }o--|| Product : refers
Order }o--|| Address : ships_to
PaymentOrder ||--o{ Order : includes
Coupon }o--o{ User : used_by
Seller ||--o{ Product : sells
Seller ||--o{ Transaction : participates_in
Seller ||--|| SellerReport : "has 1"
VerificationCode ||--|| User : "may belong to"
VerificationCode ||--|| Seller : "may belong to"
Note: Diagram is indicative; actual fields/constraints live in the code.
cd Ecomm-springboot-backend
# If using Maven Wrapper (recommended)
./mvnw spring-boot:run # Linux/macOS
# or
mvn spring-boot:run # Windows if mvnw not availableCreate src/main/resources/application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/ecommerce_multi_vendor?useSSL=false&serverTimezone=UTC
spring.datasource.username=YOUR_DB_USER
spring.datasource.password=YOUR_DB_PASSWORD
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
# JWT
app.jwt.secret=change-me
app.jwt.expiration-ms=86400000
# Mail (configure if needed)
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=YOUR_EMAIL
spring.mail.password=YOUR_APP_PASSWORD
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
# Payment keys (use env vars / config server for production)
razorpay.key_id=YOUR_RAZORPAY_KEY
razorpay.key_secret=YOUR_RAZORPAY_SECRET
stripe.secret_key=YOUR_STRIPE_SECRETcd Ecomm-react-tsx-frontend
npm install
npm run dev # http://localhost:5173 or http://localhost:3000 depending on toolingCreate .env (example):
VITE_API_BASE_URL=http://localhost:8080/api
VITE_RAZORPAY_KEY_ID=YOUR_RAZORPAY_PUBLIC_KEY
VITE_STRIPE_PK=YOUR_STRIPE_PUBLISHABLE_KEY- React UI action โ 2. Axios call to /api/ โ
- Spring Service + Repository โ 4. MySQL โ
- JSON response โ 6. Redux/Component state โ 7. Render UI
Frontend
npm run dev # start dev server
npm run build # production build
npm run preview # preview production buildBackend (Maven)
mvn spring-boot:run
mvn test
mvn package- MySQL setup
- First API & entity models
- Spring Security (login/signup) + JWT
- Services & Controllers
- API testing
- Full frontend integration
- Seller/admin advanced dashboards
- Production hardening (Docker, CI/CD, metrics, logs)
- Store secrets in environment variables or a vault (never commit keys).
- Use HTTPS in production.
- Validate & sanitize all inputs (backend + frontend).
- Apply CORS rules to allowed origins only.
- Fork โ create feature branch โ commit โ open PR.
- Prefer small, focused changes.
- Add/adjust tests when touching business logic.
MIT โ see LICENSE for details.

