This project is an application with a microservices architecture developed for a modern e-commerce platform. It allows for the independent development and deployment of different services, providing scalability and ease of maintenance.
The project consists of the following microservices:
- Cart Service: Manages users' carts.
- Inventory Service: Tracks product stock levels.
- Notification Service: Handles notification management.
- User Service: Manages user registration and authentication.
- Review Service: Manages product reviews.
- Product Service: Provides product information.
- Order Service: Manages order processes.
- Payment Service: Handles payment processing.
- Discovery Server: Allows microservices to discover each other (Eureka).
- Backend: Java, Spring Boot, Spring Cloud, Maven
- Frontend: React, Bootstrap, Axios
- Database: MySQL, PostgreSQL, MongoDB
- Communication: RESTful API
- Others: Docker, Git
- Java JDK 17
- Node.js v18
- Maven 3.9.6
- MySQL
- Docker (optional)
-
Clone the Repository
git clone https://github.com/your-username/e-commerce-microservices.git cd e-commerce-microservices
-
Set Up the Database
Create the necessary databases in MySQL and adjust the user credentials in the
application.properties
files according to your settings. -
Start Backend Services
Navigate to each microservice folder and run the project with Maven:
cd reviewservice mvn spring-boot:run
Repeat the same steps for other services.
-
Set Up and Start Frontend
cd frontend npm install npm start
The application will be running at http://localhost:3000.
- Register and Login: Users can register and log in.
- Product Management: Add, edit, and delete products.
- Cart Management: Add products to your cart and view your cart.
- Order and Payment: Place orders and process payments.
- Reviews: Add reviews to products and view existing reviews.
If you wish to contribute, please follow these steps:
- Fork the repository.
- Create a new feature branch (
git checkout -b feature/your-feature
). - Make your changes and commit them (
git commit -m 'Add new feature'
). - Push your branch (
git push origin feature/your-feature
). - Open a Pull Request.
This project is licensed under the Apache License 2.0.