REST API for Portfolio Hierarchy Submission REST API
with .Net 8, Clean Architecture, DDD, CQRS + MediatR pattern implementing.
- Microsoft Visual Studio 2022 & VS Code
- ASP.NET Core Web Application Project - The project that includes WEB API. References ASP.NET 8.0.0.
- Entity Framework Core
- MySQL
- Postman
- Docker
docker compose up
Then create a user with permission and role:
{
"Id": "bae93bf5-9e3c-47b3-aace-3034653b6bb2",
"FirstName": "esra",
"LastName": "sertsu",
"Email": "esra@gmail.com",
"Permissions": [
"create:hierarcy",
"get:hierarcy"
],
"Roles": [
"Admin"
]
}
Then submit a hierarcy json
: {
"Equity": "Alex",
"Bonds": "Jordan",
"Alex": "Morgan",
"Morgan": "Casey"
}
Docker Container
![Screenshot 2024-03-22 at 3 08 56 pm](https://private-user-images.githubusercontent.com/9791024/316014593-e7bb57d3-4ce3-423a-9efc-13537cc78ab8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1MDU1MTgsIm5iZiI6MTcyMTUwNTIxOCwicGF0aCI6Ii85NzkxMDI0LzMxNjAxNDU5My1lN2JiNTdkMy00Y2UzLTQyM2EtOWVmYy0xMzUzN2NjNzhhYjgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMTk1MzM4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NWMxZTgyOGU0OTc3YjkyNjRmNTIyNmM5ZGQyODVmOWZiMjRjOGQ4NGNjNGFmNmNiNmFjM2JjMmE1ZTcwNjA5YSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.mjEVlFDcWa7vFFKuegWlcSz55KVp0U6AZONz1b0ZDhA)
Auth Implementation with User Roles and Permissions
![Screenshot 2024-03-22 at 3 08 46 pm](https://private-user-images.githubusercontent.com/9791024/316014750-2dbd3b6d-5e96-4929-8b87-83b7d9150c77.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1MDU1MTgsIm5iZiI6MTcyMTUwNTIxOCwicGF0aCI6Ii85NzkxMDI0LzMxNjAxNDc1MC0yZGJkM2I2ZC01ZTk2LTQ5MjktOGI4Ny04M2I3ZDkxNTBjNzcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjBUMTk1MzM4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NWM4MGViYzkxYTM4YmYzNzJiM2U2MjY1OWQ0YjEzOGJmOTQwNjY3NGFjNDI0M2E0MjY2OTk3ZmVkZDVmM2QyZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.nfjUs1v7hTVM_yWE1p37llWSX7u7SsbAXFuoUzCtJAE)