ShopSphere is a full-stack ecommerce application with customer, admin, and super-admin flows. It supports authentication, catalog browsing, cart and checkout, Razorpay payments, order management, feedback, and admin operations for products, categories, and orders.
- Frontend: React, React Router, Bootstrap, Axios
- Backend: Node.js, Express
- Database: MySQL
- Payments: Razorpay
- Email: Nodemailer
- User registration, login, forgot password, OTP verification, and password reset
- Product listing, product detail, search, filter, and feedback
- Guest cart and logged-in cart flow
- Razorpay-based checkout
- User order history and tracking timeline
- Admin dashboard, products, categories, orders, and feedback management
- Super-admin login, create admin, reset admin password, and delete admin
frontend/React applicationbackend/Express + MySQL APIschema.sqlMySQL schema for initial setup
cd backend
npm install
cd ../frontend
npm install- Copy
backend/.env.exampletobackend/.env - Copy
frontend/.env.exampletofrontend/.env - Fill in all required values before running the project
Run the schema file in MySQL:
SOURCE schema.sql;Or import schema.sql using phpMyAdmin / MySQL Workbench.
cd backend
npm startcd frontend
npm startcd frontend
npm run buildPORTBackend server port. Example:5000ALLOWED_ORIGINFrontend origin allowed by CORS. Example:http://localhost:3000DB_HOSTMySQL hostDB_PORTMySQL portDB_NAMEMySQL database nameDB_USERMySQL usernameDB_PASSWORDMySQL passwordEMAIL_USERSender email used by NodemailerEMAIL_PASSSender email password or app passwordSUPER_ADMIN_EMAILSuper-admin login emailSUPER_ADMIN_PASSWORDSuper-admin login passwordSUPER_ADMIN_JWT_SECRETJWT secret for super-admin authenticationADMIN_JWT_SECRETJWT secret for admin authenticationPAYMENT_PROVIDERPayment mode. Example:razorpayormockRAZORPAY_KEY_IDRazorpay public key id used by the backend during order creationRAZORPAY_KEY_SECRETRazorpay secret key used only on the backendRAZORPAY_MAX_AMOUNT_PAISEMax payment amount in paise
REACT_APP_API_URLBackend API base URL. Example:http://localhost:5000REACT_APP_RAZORPAY_KEY_IDRazorpay Key ID for frontend checkout initializationREACT_APP_PAYMENT_PROVIDERFrontend payment mode. Example:razorpayormock
node_modulesshould not be shared in the handoff package.envfiles should not be shared in the handoff package- Use
.env.examplefiles as the configuration template - Use
schema.sqlto create the required database tables before starting the app