Welcome to my .NET Training Project! This project showcases my expertise in building a microservices-based e-commerce platform using .NET technologies. The platform includes functionalities for catalog management, ordering, discounts, and basket management.
- .NET Core and ASP.NET Core: Frameworks for building the microservices and APIs.
- Entity Framework Core: ORM for data access and database management.
- MongoDB: NoSQL database for storing product catalog data.
- Docker: Containerization of microservices for consistent deployment.
- Ocelot API Gateway: Manages and routes API requests to appropriate services.
- Swagger/OpenAPI: API documentation and testing interface.
- Serilog: Logging library for structured logging.
- ElasticSearch: Search engine for indexing and querying logs.
The project follows a microservices architecture where each service is independent, focusing on a specific business capability. Services communicate over HTTP/REST, and each service implement in clean architecture.
- Catalog.API: Manages product information and catalog.
- Ordering.API: Handles order creation, processing, and management.
- Basket.API: Manages user shopping baskets.
- Discount.API: Manages discount rules and applies discounts to orders.
- Ocelot.ApiGateway: Routes requests to the appropriate microservices and handles cross-cutting concerns.
- Serilog: Used for logging application events.
- ElasticSearch: Stores and indexes logs for querying and monitoring.
To run the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/MsN-12/eShop cd eShop -
Build and run the Docker containers:
docker-compose up --build
-
Access the APIs:
- Catalog API:
http://localhost:9000/swagger - Ordering API:
http://localhost:9001/swagger - Basket API:
http://localhost:9002/swagger - Discount API:
http://localhost:9003/swagger - API Gateway:
http://localhost:7004/swagger
- Catalog API: