How hamzaamir1470/e-shop-multi_vendor works
E-Shop Multi Vendor is a MERN marketplace connecting customers, sellers, and administrators. The principal workflow is browse products, maintain a cart, authenticate, check out through payment, and track resulting orders. Sellers manage products, events, stores, orders, refunds, and withdrawals; administrators monitor users, sellers, products, events, orders, and withdrawals. The sampled code confirms route composition, Redux initialization, Express controller mounting, JWT role checks, MongoDB connectivity, and Socket.IO messaging. Several controller internals were not sampled, so those links remain intentionally coarse.
Components 27
Customer Frontend
- App Shell
FrontEnd/src/App.jsx - Product Catalog
FrontEnd/src/pages/ProductPage.jsx - Cart Checkout
FrontEnd/src/components/Checkout/Checkout.jsx - Payment UI
FrontEnd/src/components/Payment/Payment.jsx - Account Orders
FrontEnd/src/pages/ProfilePage.jsx - Customer Inbox
FrontEnd/src/pages/UserInbox.jsx - Redux Store
FrontEnd/src/redux/store.js
Operations Frontend
- Seller Dashboard
FrontEnd/src/pages/Shop/ShopDashboardPage.jsx - Admin Dashboard
FrontEnd/src/pages/Admin/AdminDashboardPage.jsx
Marketplace API
- Express API
BackEnd/app.js - JWT Authorization
BackEnd/middlewares/auth.js - User Controller
BackEnd/controllers/user.js - Product Controller
BackEnd/controllers/product.js - Order Controller
BackEnd/controllers/order.js - Payment Controller
BackEnd/controllers/payment.js - Shop Controller
BackEnd/controllers/shop.js - Events Coupons
BackEnd/controllers/event.js - Withdrawal Controller
BackEnd/controllers/withdraw.js - Conversation Messages
BackEnd/controllers/message.js
Data Integrations
- MongoDB
- Database Connector
BackEnd/db/Database.js - Image Storage
BackEnd/config/cloudinary.js - Stripe
Realtime Messaging
- Socket.IO Server
socket/index.js
Other components
- Customer
- Seller
- Administrator
Connections 34
- Customer → Product Catalog: browses
- Product Catalog → Redux Store: reads state
- App Shell → Redux Store: dispatches loads
- Customer → Cart Checkout: checks out
- Cart Checkout → Payment UI: starts payment
- Payment UI → Stripe: charges payment
- Customer → Account Orders: tracks orders
- Customer → Customer Inbox: messages seller
- Seller → Seller Dashboard: manages store
- Administrator → Admin Dashboard: monitors platform
- Product Catalog → Express API: requests products
- Cart Checkout → Express API: submits order
- Account Orders → Express API: requests orders
- Express API → User Controller: routes users
- Express API → Product Controller: routes products
- Express API → Order Controller: routes orders
- Express API → Payment Controller: routes payments
- Express API → Shop Controller: routes shops
- Express API → Events Coupons: routes promotions
- Express API → Withdrawal Controller: routes withdrawals
- Express API → Conversation Messages: routes messages
- JWT Authorization → MongoDB: loads identities
- Database Connector → MongoDB: connects database
- User Controller → MongoDB: reads writes users
- Product Controller → MongoDB: reads writes products
- Order Controller → MongoDB: reads writes orders
- Shop Controller → MongoDB: reads writes shops
- Events Coupons → MongoDB: stores promotions
- Withdrawal Controller → MongoDB: stores withdrawals
- Product Controller → Image Storage: uploads images
- Customer Inbox → Socket.IO Server: opens connection
- Seller Dashboard → Socket.IO Server: opens connection
- Socket.IO Server → Customer Inbox: delivers messages
- Socket.IO Server → Seller Dashboard: delivers messages