Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/marijatopalova/hrmanagementsystem

The HR Management System is a web-based application built using ASP.NET Core Web API. It follows Clean Architecture principles with the implementation of CQRS and MediatR patterns to ensure separation of concerns, scalability, and maintainability.
https://github.com/marijatopalova/hrmanagementsystem

asp-net-core clean-architecture cqrs dockerfile dotnet dotnetcore entity-framework-core hexagonal-architecture mediator-pattern mediatr onion-architecture rest-api sqlserver vertical-slice-architecture

Last synced: 17 days ago
JSON representation

The HR Management System is a web-based application built using ASP.NET Core Web API. It follows Clean Architecture principles with the implementation of CQRS and MediatR patterns to ensure separation of concerns, scalability, and maintainability.

Awesome Lists containing this project

README

        

# HR Management System

## Overview

The **HR Management System** is a robust and scalable solution for managing employee data, leave requests, payroll, and department organization within an organization. Built using **ASP.NET Core Web API**, it follows best practices like **Clean Architecture**, **CQRS (Command Query Responsibility Segregation)**, and **MediatR** to ensure high maintainability, testability, and separation of concerns.

This project is designed to meet the essential needs of HR departments, ensuring efficient employee management, secure access control, and easy extendibility for future features.

## Key Features

- **Employee Management**: Manage employee records, roles, and track performance across departments.
- **Leave Management**: Allows employees to submit leave requests and managers to approve/reject them.
- **Payroll System**: Automates payroll calculations based on employee attendance and leave.
- **Department Management**: Organize employees into departments, manage department-specific settings.
- **Extensible Design**: Easily extend the application with new features using CQRS and MediatR patterns.
- **Fluent Validation**: Ensures consistent and centralized validation of inputs, making the application secure and user-friendly.

## Architecture

The system is based on the **Clean Architecture** principles, ensuring separation of concerns and facilitating test-driven development.

### Layers:

1. **Domain Layer**: Contains core business logic and entity definitions.
2. **Application Layer**: Implements use cases (commands/queries) and validation. Includes business rules using CQRS and MediatR.
3. **Infrastructure Layer**: Contains data access (EF Core) and repository implementations.
4. **API Layer**: The entry point of the system, exposes RESTful endpoints to handle requests, and interacts with the Application layer.

### Technologies Used

- **.NET 8**
- **Entity Framework Core**
- **CQRS and MediatR**
- **FluentValidation**
- **SQL Server**
- **Docker** support for containerized deployment

## Getting Started

### Prerequisites

- [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
- SQL Server
- Docker (optional)

### Running the Application

1. Clone the repository:

```bash
git clone https://github.com/marijatopalova/HRManagementSystem.git
cd HRManagementSystem