This project is a full-featured e-commerce platform designed to provide a seamless shopping experience for users while enabling administrators to efficiently manage products, sales, and analytics.
The live version of the application is available at: Cartopia Live
- MongoDB: Used as the primary database for storing user data, product information, orders, and more.
- Redis: Integrated for caching frequently accessed data to improve performance and reduce latency.
- Implemented Stripe to handle secure and reliable payment transactions.
- Supports various payment methods for a smooth checkout experience.
- User authentication is implemented using JSON Web Tokens (JWT).
- Both access and refresh tokens are used for secure and scalable user session management.
- Users can register and log in to access personalized features like shopping carts, order history, and more.
- The platform includes all essential e-commerce features:
- Product browsing and search.
- Category filtering and management.
- Easy navigation through products and categories.
- Allows administrators to:
- Add, update, and delete products.
- Organize products into categories.
- Users can add products to their shopping cart.
- Supports multiple items with quantity adjustments.
- A seamless checkout process integrated with Stripe for secure payment handling.
- Users can apply discount codes during checkout.
- Administrators can create and manage coupon codes.
- Comprehensive dashboard for administrators to:
- Manage products, categories, and orders.
- Monitor user activity.
- Visualize sales performance with detailed analytics.
- Track revenue, popular products, and user trends.
- A modern, responsive user interface designed with Tailwind CSS.
- Ensures a consistent and attractive design across devices.
- Implements best practices to ensure the security of user data.
- Protects sensitive information, including passwords and payment details.
- Secure handling of user data with encryption and compliance with data protection standards.
- Optimizes performance by caching frequently accessed data using Redis.
- Reduces database load and speeds up page loading times.
- Frontend: React.js, Tailwind CSS
- Backend: Node.js, Express.js
- Database: MongoDB, Redis
- Payments: Stripe
- Authentication: JWT (JSON Web Tokens)
- Deployment: Render
-
Clone the repository.
-
Install dependencies using
npm install
. -
Create a
.env
file in the root directory and add the following environment variables:PORT=5000 MONGO_URI=<Your MongoDB Connection String> UPSTASH_REDIS_URL=<Your Redis URL> ACCESS_TOKEN_SECRET=<Your Access Token Secret> REFRESH_TOKEN_SECRET=<Your Refresh Token Secret> CLOUDINARY_CLOUD_NAME=<Your Cloudinary Cloud Name> CLOUDINARY_API_KEY=<Your Cloudinary API Key> CLOUDINARY_API_SECRET=<Your Cloudinary API Secret> STRIPE_SECRET_KEY=<Your Stripe Secret Key> CLIENT_URL=http://localhost:5173 NODE_ENV=development
-
Run the backend server:
npm start
. -
Access the application in your browser at
http://localhost:3000
.
This project is licensed under the MIT License.