Skip to content

A simple but resilient, observable and cloud ready distributed HR system built with .NET Aspire

License

Notifications You must be signed in to change notification settings

vladislav-karamfilov/HrAspire

Repository files navigation

HrAspire

HrAspire is a simple but resilient, observable, cloud ready distributed HR system. It is built with .NET Aspire - Microsoft's new framework for building observable, production ready, distributed applications.

HrAspire is a project that I built in my spare time with a couple of key goals in mind:

Functionalities

HrAspire is a simple HR system designed to streamline employee management. The system offers role-based functionality for Employees, Managers and HR Managers, enabling efficient handling of common HR tasks.

Employee functionalities

All app users are employees including users in Manager and HR Manager roles. Employees can:

  • log in
  • view own employee details - email, full name, date of birth, position, department, manager, salary, used paid vacation days, etc.
  • view and create/update/delete vacation requests for paid or unpaid leaves
  • change password
  • log out

Manager functionalities

Managers have all the capabilities of an employee plus additional management features:

  • view all managed employees
  • access details of all managed employees
  • view and create/update/delete documents for managed employees
  • view and create/update/delete salary (change) requests for managed employees
  • view and approve/reject vacation requests for managed employees

HR Manager functionalities

HR managers have all the capabilities of an employee plus additional HR-specific management features:

  • view and create/update/delete employees
  • access details of all employees
  • view and create/update/delete documents for all employees
  • view and approve/reject salary (change) requests for all employees
  • view vacation requests for all employees

Architecture

HrAspire is built using the microservice architecture, with multiple (micro)services handling different aspects of HR management and architectural concerns. These services can be divided into 2 groups: frontend and backend. Frontend services are designed to be Internet-facing and backend services are designed to be accessible only within a protected internal network. In addition to these services, a data seeder console app has been implemented to provide a quickstart experience for development environment.

Frontend

Backend

  • The Employees service is the microservice responsible for managing employees and their documents. It's built using the 3-tier architecture. The main data storage is a PostgreSQL database but document files are stored in Azure Blob Storage containers. It exposes employee and document operations through a gRPC-based API. The service is also asynchronously communicating with the other backend services by producing and consuming RabbitMQ messages and is reading and writing specific employee info in a shared Garnet cache.
  • The Salaries service is the microservice responsible for managing salary requests. It's built using the 3-tier architecture. The data is stored in a PostgreSQL database. It exposes salary request operations through a gRPC-based API. The service is also asynchronously communicating with the Employees service by producing and consuming RabbitMQ messages and is reading specific employee info from the shared Garnet cache.
  • The Vacations service is the microservice responsible for managing vacation requests. It's built using the 3-tier architecture. The data is stored in a PostgreSQL database. It exposes vacation request operations through a gRPC-based API. The service is also asynchronously communicating with the Employees service by producing and consuming RabbitMQ messages and is reading specific employee info from the shared Garnet cache.

Architecture diagram:

HrAspire architecture diagram

Solution projects diagram:

HrAspire solution projects diagram

About

A simple but resilient, observable and cloud ready distributed HR system built with .NET Aspire

Topics

Resources

License

Stars

Watchers

Forks