- Project Overview
- Architecture
- Functional Requirements
- High-Level Design
- Technology Stack
- Installation
- Usage
- API Endpoints
- Contributing
- License
- Contact
This project is an e-commerce website that provides a platform for users to browse, search, and purchase products online. The application features user management, product catalog, cart and checkout, order management, and secure payment options.
The architecture is based on a microservices model, leveraging various tools and technologies to ensure scalability, reliability, and performance. The key components include:
- Load Balancers (Amazon Elastic Load Balancing)
- API Gateway (Kong)
- Microservices
- Databases (MySQL, MongoDB)
- Message Broker (Kafka)
- Caching (Redis)
- Search and Analytics (Elasticsearch)
- Registration
- Login
- Profile Management
- Password Reset
- Browsing
- Product Details
- Search
- Add to Cart
- Cart Review
- Checkout
- Order Confirmation
- Order History
- Order Tracking
- Multiple Payment Options
- Secure Transactions
- Payment Receipt
- Secure Authentication
- Session Management
- Load Balancers (LB): Distribute incoming user requests.
- API Gateway: Routes requests, handles rate limiting, and manages authentication.
- Microservices:
- User Management Service
- Product Catalog Service
- Cart Service
- Order Management Service
- Payment Service
- Notification Service
- Databases:
- MySQL
- MongoDB
- Kafka: Central message broker.
- Redis: Caching for fast response times.
- Elasticsearch: Fast product searches.
- User logs in and searches for a product.
- User adds a product to the cart.
- User checks out, triggering the Order Management Service and Payment Service.
- Frontend: React.js
- Backend: Spring Boot
- Database: MySQL, MongoDB
- Messaging: Kafka
- Cache: Redis
- Search: Elasticsearch
- Load Balancing: Amazon ELB
- API Gateway: Kong
- Authentication: JWT
- MySQL
- MongoDB
- Kafka
- Redis
- Elasticsearch
-
Clone the repository:
git clone https://github.com/SubhamKrGuptaDev/Full-stack-Ecommerce cd Full-stack-Ecommerce -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root directory and add the necessary environment variables. -
Run the application:
npm run dev
Instructions on how to use the application once it is up and running.
POST /api/register: Register a new user.POST /api/login: Login a user.GET /api/profile: Get user profile.PUT /api/profile: Update user profile.POST /api/password-reset: Reset password.
GET /api/products: Browse products.GET /api/products/:id: Get product details.GET /api/search: Search products.
POST /api/cart: Add to cart.GET /api/cart: View cart.POST /api/checkout: Checkout.
POST /api/orders: Place an order.GET /api/orders: View order history.GET /api/orders/:id: Track order.
POST /api/payment: Process payment.
If you want to contribute to this project, please follow the CONTRIBUTING.md guidelines.
For any queries or issues, please contact your email.