Design and Develop a Library Management API using .NET Core with the below features
🧍 User Module:
- Authentication [Users should log in to the application to view the list of books - No UI needed].
- User can select a Book to Read [Favorites].
- User can mark a book read [History].
- User can write a review of the book [Once written the review cannot be changed].
🧍♀️ Admin Module:
- Authentication [Admins should log in to the application to view the list of books - No UI needed]
- Admin Should be able to List, Create, Update and Delete Books.
- Admin Should be able to View all reviews for a Book.
- Identity Service
- Uses Idenity server 4
- Catalog Service
- Sent events via RabbitMQ
- Store information In-Memory, just a matter of time to replace that with any RDDBMS
- Search Service
- Store information in ElasticSearch
- Listens to events in RabbitMQ
- Review Service
♦️ - Store informaiton in MongoDB
- Personalization Service
♦️ - Store informaiton in MongoDB
cd infra
docker-compose up -d
dotnet run --project src/Identity-Server/Identity-Server.csproj
dotnet run --project src/Catalog-Server/Catalog-Server.csproj
dotnet run --project src/Search-Server/Search-Server.csproj
Import postman collections inside docs folder for testing the services. It has the test scripts written, it will be matter of clicking the send button only unless you want to change some values.