Human Resources Management Project
The Human Resources Management Project is a comprehensive backend-focused application designed to optimize HR management processes. The primary goal of the project is to enable effective handling of employee data, leave requests, performance evaluations, and other administrative tasks in an organization. Leveraging a microservices architecture, the system ensures high scalability, modularity, and maintainability.
Microservices
ConfigServer
The ConfigServer is responsible for centralized configuration management in a microservices architecture. It allows all microservices to dynamically retrieve their configuration properties from a single source, reducing complexity and improving maintainability. Real-time updates can be applied to configurations without restarting services, enabling faster adaptation to changes.

AuthMicroService
Manages user authentication and authorization processes, including user logins, password changes, and permission updates.
UserMicroService
Handles processes related to employees, such as user profiles, leave requests, expense management, and performance evaluations.

MailMicroService
The MailMicroService handles email notifications for processes like user registration and account verification. It uses RabbitMQ-based messaging to process email tasks asynchronously, ensuring high performance and responsiveness. Emails are sent using dynamic templates, allowing for personalized and professional communication. The service also includes error handling and retry mechanisms to improve delivery reliability.
Technologies Used
- Backend Framework: Spring Boot (Web, Data JPA, Data MongoDB, Security, Gateway)
- Database: PostgreSQL, MongoDB, Redis, Elasticsearch
- Message Broker: RabbitMQ
- API Documentation: Swagger (SpringDoc OpenAPI)
- Dependency Management: Gradle
- Security: Spring Security, JWT Authentication
Key Features
Authentication and Authorization
- User authentication and role-based access control are implemented in the AuthMicroService using Spring Security and JWT.
- Supports password management, state updates, and secure login/logout processes.
Employee Management
- Handles user creation, updates, and state management in the UserMicroService.
- Provides functionalities like creating and managing employee profiles, handling leave requests, and updating employee roles.
Configurable and Modular Design
- The ConfigServer provides centralized configuration management, enabling seamless integration and environment-specific setups for all services.
Email Notification System
- The MailMicroService integrates with RabbitMQ to send notifications and updates to employees. It supports transactional emails like registration confirmations, password resets, and administrative alerts.
Expense and Permission Management
- Employees can submit expenses and permissions, which are tracked and managed through dedicated endpoints in the UserMicroService.
Microservices Communication
- The MailMicroService integrates with RabbitMQ to send notifications and updates to employees. It supports transactional emails like registration confirmations, password resets, and administrative alerts.
The project aims to provide a flexible and scalable architecture that enables companies to effectively manage their human resources processes. With this architecture, new features can be easily added, and system performance can be improved in a scalable manner.