HRMS Backend is a secure, scalable, and enterprise-grade Human Resource Management System developed using Spring Boot. The application exposes RESTful APIs for managing core Human Resource operations such as Employees, Departments, Designations, Users, and Roles.
The project follows enterprise software development best practices, including Layered Architecture, DTO Pattern, JWT Authentication, Role-Based Authorization (RBAC), Bean Validation, Global Exception Handling, and RESTful API design.
Interactive API documentation is provided using Swagger OpenAPI, allowing developers to explore and test secured REST endpoints.
- JWT Authentication
- Role-Based Authorization (RBAC)
- Spring Security 6 Integration
- Employee Management
- Department Management
- Designation Management
- User Management
- Role Management
- BCrypt Password Encryption
- RESTful API Design
- DTO Pattern
- Entity-DTO Mapping using MapStruct
- Bean Validation (Jakarta Validation)
- Global Exception Handling
- Swagger OpenAPI Documentation
- Layered Architecture
- MySQL Database Integration
| Technology | Version |
|---|---|
| Java | 21 |
| Spring Boot | 3.5.16 |
| Spring Security | 3.5.16 |
| Spring Data JPA | 3.5.16 |
| Hibernate | 6.5.53 |
| MySQL | 9.7 |
| Maven | Latest |
| JWT (JJWT) | 0.12.7 |
| Swagger OpenAPI | springdoc-openapi 2.8.9 |
| MapStruct | 1.6.3 |
| Lombok | 1.18.38 |
| Jakarta Validation | 3.0.2 |
The application follows a layered architecture to maintain separation of concerns and improve maintainability.
Client
β
βΌ
Controller Layer
β
βΌ
Service Layer
β
βΌ
Repository Layer
β
βΌ
MySQL Database
src/main/java
β
βββ config
βββ controller
βββ dto
β βββ request
β βββ response
βββ entity
βββ enums
βββ exception
βββ mapper
βββ repository
βββ security
βββ service
βββ util
The application uses JWT (JSON Web Token) based authentication.
User Login
β
βΌ
Authentication API
β
βΌ
JWT Token Generated
β
βΌ
Swagger / Client
β
Authorization: Bearer <JWT_TOKEN>
β
βΌ
Protected APIs
| Role | Access |
|---|---|
| ADMIN | Full System Access |
| HR | Employee & Master Data Management |
| MANAGER | Employee Operations & Leave Management |
| EMPLOYEE | Self-Service APIs |
- Authentication
- User Management
- Role Management
- Employee Management
- Department Management
- Designation Management
Additional HR modules such as Leave Management, Attendance, Payroll, and Recruitment can be integrated in future releases.
Swagger UI is available after starting the application.
http://localhost:8080/swagger-ui/index.html
git clone https://github.com/balajidigitalnomad/hrms-backend.gitcd hrms-backendUpdate the following properties inside:
src/main/resources/application.properties
Example:
spring.datasource.url=jdbc:mysql://localhost:3306/hrms
spring.datasource.username=your_username
spring.datasource.password=your_passwordConfigure your JWT properties:
jwt.secret=your-secret-key
jwt.expiration=86400000Using Maven
mvn spring-boot:runor
Run the HrmsBackendApplication class directly from your IDE.
- Leave Management
- Attendance Management
- Payroll Management
- Recruitment Module
- Employee Document Management
- Email Notifications
- File Upload
- Audit Logging
- Docker Support
- CI/CD Pipeline
- Unit Testing
- Integration Testing
- AWS Deployment
- Microservices Migration
This project demonstrates practical implementation of:
- Enterprise Spring Boot Development
- Spring Security
- JWT Authentication & Authorization
- REST API Design
- DTO Pattern
- Repository Pattern
- Layered Architecture
- Validation
- Exception Handling
- Git & GitHub Workflow
- API Documentation
Balaji V. S.
Senior Java Solutions Architect & Full-Stack Engineering Lead
Experience: 19+ Years
- Java
- Spring Boot
- Microservices
- Spring Security
- React
- AWS
- REST APIs
- System Design
- Enterprise Application Development
This project is intended for learning, demonstration, and portfolio purposes.