This is a sample project for Microservices Architecture that I've developed just to learn by practice!
Since I've been learning by looking at the Microsoft's sample, EShopOnContainers, You'll see many similarities here to that project!
Image | Status |
---|---|
cart-api | |
orders-api | |
orders-singalR | |
payments-api | |
catalog-api | |
identity-api | |
apiggateway | |
healthchecksui | |
view | |
admin |
- #Docker
- #ASP.NET Core
- #SQL Server
- #MongoDB
- #Redis
- #RabbitMQ
- #gRPC
- #OpenIddict
- #Datalust_Seq
- #NLOG
- #DDD
- #EventDrivenArchitecture
- #CQRS
- #ClearnArchitecture
- #YARP
- #Angular
You need docker
, Visual Studio 2022
, .NET 7.0 SDK
and node.js
installed to run this project.
First replace your machine's IP in the .env
file.
In this path: Src/View/Admin/ClientApp
run this command: npm install -f
In Visual Studio Simply hit F5
to run and debug.
Note: Admin takes a lot of time to start but it generally depends on your machine's speed. When it gets started, replace the localhost in the address bar with your machine's IP and hit refresh.
To login use UserName/Password : hesam/hesam
Service | Address |
---|---|
View | https://+:8000 |
Admin | http://+:7011 |
APIGateway | https://+:8001 |
Identity.Api | https://+:8002 |
Catalog.Api | https://+:8003 |
Cart.Api | https://+:8004 |
Orders.Api | https://+:8005 |
Orders.SignalR | https://+:8006 |
Payments.Api | https://+:8007 |
HealthChecks | https://+:8010/hc-ui |
Seq | http://+:5340 |
https://+:8000
View is an AspNetCore UI
http://+:7011
Admin implemented in Angular
https://+:8001
The APIGateway implemented using Yarp.ReverseProxy
https://+:8002
This service is responsible for Authentication.
I've used OpenIddict-Core library to create an openid connect server and SqlServer as the database.
https://+:8003
Maintains a list of products.
Built using CQRS pattern.
MongoDb is used as the database.
https://+:8004
Cart/Basket information.
Redist is used as the database.
https://+:8005
Orders information.
Built using CQRS pattern. SQL Server is used as the database.
http://+:5340
Datalust Seq is used to monitor application logs
https://+:8010/hc-ui
Use to monitor the health of the services