SpringBootHRApp is a high-performance RESTful API designed for Enterprise Human Resources management. It provides a robust backend to orchestrate the complex relationships between Departments, Employees, and Projects.
- Employee Lifecycle Management: Comprehensive CRUD operations including complex project assignments and department filtering.
- Organizational Hierarchy: Managed One-to-Many relationships between Departments and Employees.
- Project Orchestration: Implementation of Many-to-Many bidirectional relationships (Employees ↔ Projects) with JPA.
- Professional Architecture:
- DTO Pattern: Strict separation between Data Entities and API Presentation layer.
- Global Exception Handling: Centralized
@RestControllerAdviceensuring consistent JSON error responses. - Server-side Validation: Robust data integrity via
Jakarta Validation.
- Interactive API Documentation: Full OpenAPI 3 / Swagger UI integration for real-time endpoint testing.
- Backend: Java 17+, Spring Boot 3 (Data JPA, Web, Validation).
- Build Tool: Maven.
- Database: PostgreSQL / MySQL compatible.
- Documentation: SpringDoc OpenAPI (Swagger UI).
- Clone the repository:
git clone [https://github.com/your-username/SpringBootHRApp.git](https://github.com/your-username/SpringBootHRApp.git)
- Database Configuration: Update the
src/main/resources/application.propertiesfile with your database credentials. - Run the application:
mvn spring-boot:run
Once the server is running, explore and test the endpoints via Swagger UI at:
http://localhost:8080/swagger-ui/index.html
This project is under active development. The following modules are planned for the next releases:
- Phase 1: Clean API & Robustness (Global Exception Handling, DTO Pattern, Validations).
- Phase 2: Complex Relational Mapping (Many-to-Many & One-to-Many implementation).
- Phase 3: Security Layer (High Priority)
- Implementing Spring Security 6 with JWT for stateless authentication.
- Role-Based Access Control (RBAC): Admin vs. User permissions.
- Phase 4: Testing Suite
- Unit testing for Service Layer using JUnit 5 and Mockito.
- Integration testing for REST Endpoints.
- Phase 5: DevOps & Deployment
- Containerization with Docker and Docker Compose.
- CI/CD pipeline setup for automated deployment.
- Phase 6: External Integration (Optional)
- Connecting to a Currency Exchange API for dynamic salary calculations.
Developed as a high-quality portfolio piece focusing on Clean Code and SOLID principles.