The eCommerceBackend is a comprehensive backend solution for an eCommerce platform. This project consists of multiple services that are responsible for different functions in the ecosystem, from product catalog management to user authentication, payment processing, and more.
-
Product Catalog Service
- Manages product data, including listing, sorting, and searching.
- Integrates with other services like
Payment Servicefor transactions.
-
User Authentication Service
- Handles user signups, logins, and authentication via JWT and OAuth2.
- Secures APIs and protects sensitive user data.
-
Email Service
- Sends transactional and promotional emails to users.
- Integrates with the user authentication.
-
Payment Integration
- Razorpay and Stripe are integrated for handling secure payments and payment gateway reconciliation.
-
Search, Paging, and Sorting APIs
- Provides APIs for searching, paginating, and sorting product data in the catalog.
-
Kafka Integration
- Used for real-time event streaming and messaging between services.
-
Redis Integration
- Implements caching strategies to optimize performance and reduce database load.
-
Cloud Deployment
- Hosted on AWS with EC2, Elastic Beanstalk, VPC, and RDS for scalability and high availability.
-
Eureka Server
- Utilized for service discovery, allowing
ProductCatalogServiceandUserAuthenticationServiceto communicate and scale independently.
- Utilized for service discovery, allowing
- Spring Boot for backend services.
- JPA/Hibernate for database management.
- JWT/OAuth2 for authentication and security.
- Kafka for messaging and event-driven architecture.
- Redis for caching.
- AWS (EC2, RDS, Elastic Beanstalk) for deployment.
- Stripe & Razorpay for payment integration.
eCommerceBackend/
├── ProductCatalogService/
├── UserAuthenticationService/
├── EmailService/
├── PaymentService/
├── KafkaIntegration/
├── RedisIntegration/
├── CloudDeployment/
└── EurekaServer/
-
Clone this repository:
git clone https://github.com/tanay-vj/eCommerceBackend.git
-
Navigate to the directory of the desired service:
cd ProductCatalogService -
Install dependencies (if any):
mvn install
-
Run the service:
mvn spring-boot:run
Repeat the steps for other services by navigating into their respective directories.
Feel free to fork this repository and submit pull requests for any improvements, bug fixes, or new features.