A FullStack MERN E-commerce web application that offers a seamless shopping experience with features such as user authentication, product browsing, cart management, order processing, and payment integration. Leveraging modern web development practices using Redux-Toolkit, our application provides an intuitive user interface while ensuring robust backend functionality for secure data management. With a focus on scalability and maintainability, our project showcases the integration of frontend and backend technologies to deliver a comprehensive e-commerce solution.
https://shopit-ys5l.onrender.com
Clone the project
git clone https://github.com/saquelain/shopit
Go to the project directory
cd shopit
Install dependencies (Frontend)
npm install
Install dependencies (Frontend)
cd frontend
npm install
To run this project, you will need to add the following environment variables to your .env file
PORT=
NODE_ENV=
FRONTEND_URL=
DB_URI=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
JWT_SECRET=
JWT_EXPIRES_TIME=
COOKIE_EXPIRES_TIME=
SMTP_HOST=
SMTP_PORT=
SMTP_EMAIL=
SMTP_PASSWORD=
SMTP_FROM_EMAIL=
SMTP_FROM_NAME=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
Start the server (Development Mode)⏯️
npm run dev
Seed Database
Use the following command to put some dummy products in that database. Run it in the root folder.
npm run seeder
- Registration and login functionality.
- Password reset and email verification.
- Role-based access control for users and administrators.
- Ability for users to update their profile information.
- Upload and manage user avatars.
- CRUD operations for products (Create, Read, Update, Delete).
- Image upload and management for product images.
- Product reviews and ratings.
- Creating new orders.
- Viewing and managing user-specific orders.
- Admin dashboard for managing all orders.
- Integration with a payment gateway (Stripe) for checkout and payment processing.
- Handling webhook events for successful order completion.
- Access to an administrative dashboard with privileges to manage users, products, and orders.
- CRUD operations for users and products.
- Order status management and updates.
- Ability to search for products based on keywords or categories.
- Filters for refining search results (e.g., price range, product attributes).
- Generating sales reports and analytics.
- Visualizing sales data with charts and graphs.
- Sending transactional emails for password resets.
- Integrating with SMTP email services.
- Handling and logging errors gracefully.
- Providing meaningful error messages to users.
Server: Node, Express
If you have any feedback, please reach out to us at saquelain1502@gmail.com