- Introduction
- Problem Statement
- Features
- Technologies Used
- Setup Instructions
- Project Structure
- Services Breakdown
- Future Enhancements
This project is a capstone e-commerce application built with Spring Boot (version 3.2.*) following a microservices architecture. The system is divided into three core services: User Service, E-commerce Service, and discovery-server Service. Communication between microservices is handled using FeignClient.
The primary objective of this project was to design and develop an e-commerce platform utilizing a microservices architecture. The key services implemented include a User Service for authentication and role-based access, an E-commerce Service for product and order management, and a Eureka Service for service discovery.
- Registration and Authentication: Users can register, log in, and manage their profiles.
- Role-Based Access Control: Users have different roles and permissions based on their privileges (e.g., Admin, Customer).
- Profile Management: Users can update personal information.
- Product Management: Handle product catalogs and categories.
- Cart Functionality: Users can add/remove items to/from their cart.
- Order Processing: Facilitates order placement and fulfillment i.e checkout, cancel.
- Service Discovery: Automates microservices registration and discovery, ensuring seamless interaction between different services.
- Java: 17
- Spring Boot: 3.2.*
- Spring Security: Role-based access control and user authentication
- Spring Data JPA: ORM for data persistence
- MySQL: Relational database management
- Eureka Server: Service registry for microservices
- Spring Devtools: Development-time support
- Spring Validation: Input validation
- FeignClient: For inter-service communication
- JDK 17+
- Maven
- MySQL Database
- Clone the repository:
git clone https://github.com/avyaysingh/Ecommerce-Application.git - Set up your MySQL database and configure the
application.ymlfiles for each service. - Build the project using Maven:
mvn clean install. - Run the services in the following order:
- Eureka Service:
java -jar discovery-server.jar - User Service:
java -jar user-service.jar - E-commerce Service:
java -jar e-commerce.jar
- Eureka Service:
├── eureka-service
│ └── src
├── user-service
│ └── src
├── ecommerce-service
└── src
Handles user registration, authentication, and role-based access control.
Manages product catalog, cart functionality, and order processing.
Provides microservices registration and discovery.
- Add real-time order tracking.
- Enhance product search capabilities.
- Implement payment gateway integration.