ποΈ Full-Stack E-Commerce Store
An advanced, full-stack E-Commerce web application built with Node.js, MongoDB, Redis, Stripe, and React. This project features secure authentication, a powerful admin dashboard, product and category management, Stripe payment integration, and more.
π Features
Database Integration: Utilizes MongoDB for persistent data storage and Redis for high-performance caching.
Stripe Payment Gateway: Secure and reliable payment processing with Stripe.
Robust Authentication System: Implements a secure authentication system using JWT with refresh and access tokens.
Comprehensive E-Commerce Core: Features include product and category management, a fully functional shopping cart, a seamless checkout process, and a coupon code system.
Powerful Admin Dashboard: An intuitive dashboard for administrators to manage products, orders, coupons, and categories, along with a sales analytics overview.
Modern UI: A beautiful and responsive user interface built with Tailwind CSS.
Security First: Incorporates data validation, rate limiting, and input sanitization to protect against common vulnerabilities.
Optimized for Performance: Leverages Redis caching to enhance application speed and responsiveness.
π€ How It Works
This E-Commerce platform provides a seamless shopping experience for users and a powerful management interface for administrators.
Authentication:
User: Users can sign up for a new account or log in with their credentials. The system uses a JWT-based approach with access and refresh tokens for secure and persistent sessions.
Admin: Administrators have a separate login to access the admin dashboard.
Shopping Experience:
Browse Products: Users can browse products, view details, and filter by category.
Shopping Cart: Users can add products to their shopping cart, update quantities, and apply coupon codes.
Checkout: The checkout process is handled securely through the Stripe payment gateway.
Admin Management:
Dashboard: The admin dashboard provides an overview of sales analytics.
Product Control: Admins can add, edit, and delete products and manage product categories.
Order Management: Admins can view and manage customer orders.
Coupon System: Admins can create and manage coupon codes for promotional campaigns.
π οΈ Tech Stack
This project is built with a modern and robust tech stack to ensure scalability, security, and performance.
Backend: Node.js, Express
Database: MongoDB, Redis (with Upstash)
Authentication: JSON Web Tokens (JWT)
Payment Gateway: Stripe
Image Management: Cloudinary
Frontend: React, Tailwind CSS
Security: Data validation, rate limiting, input sanitization
βοΈ Setup Instructions
To get a local copy up and running, follow these steps.
π .env File Configuration
Create a .env file in your root directory and add the following environment variables:
code Code download content_copy expand_less
PORT=5000 MONGO_URI=your_mongo_uri
UPSTASH_REDIS_URL=your_redis_url
ACCESS_TOKEN_SECRET=your_access_token_secret REFRESH_TOKEN_SECRET=your_refresh_token_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret
STRIPE_SECRET_KEY=your_stripe_secret_key
CLIENT_URL=http://localhost:5173 NODE_ENV=development π» Run Locally
Install dependencies:
code Sh download content_copy expand_less IGNORE_WHEN_COPYING_START IGNORE_WHEN_COPYING_END npm install
Build the app:
code Sh download content_copy expand_less IGNORE_WHEN_COPYING_START IGNORE_WHEN_COPYING_END npm run build
Start the server:
code Sh download content_copy expand_less IGNORE_WHEN_COPYING_START IGNORE_WHEN_COPYING_END npm run start π€ Contributing
Contributions are welcome and greatly appreciated. If you have a suggestion to improve this project, please fork the repository and create a pull request. You can also open an issue with the "enhancement" tag.