Table of contents
Overview
Submission Category
Video
Link to the application
Link to code
Architecture
How the data is stored
Functionalities
Overview of My Submission
eOffice is human resources platform that provides processes to onboard a new employee and to manage the benefits of the employees distributing the responsibilities between the different rolls.
Submission Category
The submission category is Microservices Mavens using for communication between services the pubSub feature from Redis.
Video
Architecture & Technologies
Link to the application
The application is hosted in Azure.
Link to the application
Link to Code
e-office | Redis Hackathon on Dev
Link to the application
Overview video
Project description
eOffice is human resources platform that provides processes to onboard a new employee and to manage the benefits of the employees distributing the responsibilities between the different rolls.
Functionalities
- See all onboardings
- Create an onboarding
- See details of an onboarding
- See all system accounts requests
- Resolve a system account request
Architecture and technologies
- Presentation project: Server Blazor Application using .Net 6.0
- Microservices: Web API using .Net 6.0
- Databases: SQL Server
- Microservices communication: Redis pub/sub
Flow diagrams:
How to run it locally?
Prerequisites
- .Net 6.0
- 3 SQL server databases
- A redis database
Local installation
- Add the connection strings in the appsettings.josn for each module for the databases
- Set as startup projects: eOffice, eOffice.Onboardings.API, eOffice.Leave.API, eOffice.SystemAccounts.API
- Run the projects
How it works
How the data is
…Architecture
- Presentation project: Server Blazor Application using .Net 6.0
- Microservices: Web API using .Net 6.0
- Databases: SQL Server
- Microservices communication: Redis pub/sub
Language Used
C# - .Net 6.0
Flow diagrams
How the data is stored
The microservices are communicating with each other using the pub/sub from Redis, for each type of communication a different channel will be used.
3 channels
- SystemAccount_Channel
- Publisher: Onboardings Module
- Subscriber: SystemAccounts Module
- Leave_Channel
- Publisher: Onboardings Module
- Subscriber: LeaveBalance Module
- Onboarding_Channel
- Publisher: SystemAccounts Module, LeaveBalance Module
- Subscriber: Onboardings Module
Publis code
var modelAsString = JsonConvert.SerializeObject(model);
_pubSub.Publish("channel_name", modelAsString);
Subscribe code
connection.GetSubscriber()
.Subscribe("channel_name", (channel, message) =>
{
// DO something
});
Functionalities
- Dashboard
- See all onboardings
- Create an onboarding
- See details of an onboarding
- See all system accounts requests
- Resolve a system account request
- Check out Redis OM, client libraries for working with Redis as a multi-model database.
- Use RedisInsight to visualize your data in Redis.
- Sign up for a free Redis database.
Top comments (0)