This pull request introduces the SoftwareEngineer entity to the Spring Boot application, enabling the management of software engineer records with full CRUD (Create, Read, Update, Delete) functionality. The changes include:
Entity Creation: Added the SoftwareEngineer class with fields for id, firstName, lastName, email, and programmingLanguages, annotated with JPA annotations for persistence.
Repository Layer: Implemented the SoftwareEngineerRepository interface using Spring Data JPA to handle database operations.
Service Layer: Created the SoftwareEngineerService class to encapsulate business logic for managing software engineer data.
Controller Layer: Developed the SoftwareEngineerController with REST endpoints to support CRUD operations (POST /api/software-engineers, GET /api/software-engineers, GET /api/software-engineers/{id}, PUT /api/software-engineers/{id}, DELETE /api/software-engineers/{id}).
Documentation: Included basic JavaDoc comments for key methods and classes to improve code readability and maintainability.
These changes enhance the application's functionality by providing a structured way to manage software engineer profiles, with proper separation of concerns across the data, service, and presentation layers.
Testing
Verified CRUD operations using Postman to ensure all endpoints function as expected. Implemented the new request inside /requests.http to test without using Postman.
Tested entity persistence with an in-memory H2 database.
Next Steps
Add integration tests for the SoftwareEngineerController.
Consider adding validation annotations (e.g., @NotNull, @Email) to the SoftwareEngineer entity.
Explore adding pagination support for the GET /api/software-engineers endpoint.
Summary
This pull request introduces the SoftwareEngineer entity to the Spring Boot application, enabling the management of software engineer records with full CRUD (Create, Read, Update, Delete) functionality. The changes include:
These changes enhance the application's functionality by providing a structured way to manage software engineer profiles, with proper separation of concerns across the data, service, and presentation layers.
Testing
Next Steps