Blood donation management app using Redis JSON, Redis Search and C# Blazor
- .NET Blazor - Server Side
- Telerik - Blazor Components, using trail version.
- Redis Modules Used:
- Redis JSON - Storing and retrieving requests, user information
- Redis Search - Searching requests
- Redis Pub/Sub - Sending notifications in background
- Mediator
- Domain Driven Design (partially)
-
The request data is stored in various keys and various data types.
- For each of request:
- ID :
Guid
as a string - Blood Group, Donation Type, Priority, Status: C#
ENUM
- ID :
- For each of request:
-
Redis JSON
-
User Profile Key: prefix:
USER_PROFILE
postfix: Auth0 name identifier -
Request Key: prefix:
BLOOD_REQUEST
postfix: Guid string
-
-
Redis Publish:
- Requests: any new blood request will publish request id as message to topic
URN:BLOODREQUESTS:NEW
- Requests: any new blood request will publish request id as message to topic
- C# Repository pattern is used, every call will create an instance using Connection Multiplexer
- .NET Core - v5.0.x (latest patch version)
- Visual Studio 2019 16.9 or Visual Studio Code 1.55
- Docker - v19.03.13 (optional)
- Auth0:
- Domain
- Client ID
- Client Secret
- SMTP (Optional): This is an optional feature, there are multiple providers for SMTP. We can use one based on need and pricing, below are few of them:
- SMS: SMS feature code is not yet implemented. However, it is planned. Below are some of popular providers:
Clone the project
Go to /src/Zindagi
folder, update appsettings.json
with below details
- Auth0 (refer for detailed steps)
- Redis Connection String
- SMTP details (optional)
run dotnet run
visit application using localhost with SSL or localhost
Application will be up and running
Clone the project
Update .env
file with Auth0 and SMTP details
From terminal/command prompt run docker compose up -d
Application can be accessing using localhost