This is a fully functional Microservices-based E-Commerce Platform built with .NET. The project follows best practices for scalability, security, and maintainability.

- RESTful APIs for seamless communication
- MVC Web Application for a user-friendly experience
- .NET Identity for Authentication & Authorization with JWT & Cookies
- API Gateway with Ocelot to manage microservices
- Secure Payments with Stripe Integration
- Email Service for order confirmations & user notifications
- Message Queue Integration using Azure Service Bus & RabbitMQ
- Event-Driven Architecture for efficient messaging
- 10 Well-Structured Projects ensuring Separation of Concerns
-
Two Branches Available:
main
branch uses Azure Service BusRabbitMQ Implementation
branch uses RabbitMQ
-
Do Not Update Packages: Avoid updating packages like
RabbitMQ
,Identity
, etc., as the application may not work properly. -
Ocelot API Gateway Activation:
- Change every project's port to
:7777
to activate the API Gateway.
- Change every project's port to
-
Ocelot Configuration (
ocelot.json
) in the Gateway Project:"CouponAPI": "https://localhost:7001", "AuthAPI": "https://localhost:7002", "ProductAPI": "https://localhost:7003", "ShoppingCartAPI": "https://localhost:7004", "OrderAPI": "https://localhost:7005"
-
Using the Azure Service Bus Branch?
- You must fill in the secret keys from your Azure account.
- Keys & emails are empty by default, so make sure to set them up correctly.
-
Database Setup:
- Each API has its own EF Core Migrations.
- Run
dotnet ef database update
in each service to apply migrations. - Connection strings should be configured in appsettings.json for each API.
π¦ ECommercePlatform
βββ π FrontEnd
β βββ π WebApp (MVC UI)
β
βββ π Gateway
β βββ π GatewayAPI (Ocelot)
β
βββ π Integration
β βββ π MessageQueue (Azure Service Bus / RabbitMQ)
β
βββ π Services
β βββ π AuthAPI
β βββ π EmailAPI
β βββ π OrderAPI
β βββ π ProductAPI
β βββ π RewardAPI
β βββ π ShoppingCartAPI
β βββ π CouponAPI
- Can be deployed on Azure, Docker, or Kubernetes.
- Update appsettings.json for production configurations.
- Use Docker Compose to run all microservices together.
Feel free to contribute or reach out for any questions! π