Skip to content

This is a simple Employee Management System built with Spring Boot, Spring Data JPA, and H2/MySQL Database. It provides basic CRUD (Create, Read, Update, Delete) operations for managing employee records.

Notifications You must be signed in to change notification settings

Shivamupa48/SpringBoot-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Spring Boot Employee Management System

A simple Employee Management System built with Spring Boot, Spring Data JPA, and H2/MySQL Database. It provides basic CRUD (Create, Read, Update, Delete) operations for managing employee records.

Features Create Employee – Add a new employee Read Employees – List all employees Read Employee by ID – View a single employee’s details Update Employee – Modify existing employee information Delete Employee – Remove an employee safely Transactional operations – Ensures database consistency

Technologies Used Java 17+ Spring Boot 3+ Spring Data JPA H2 Database / MySQL Lombok (optional) Maven

Project Structure springboot-employee-crud/ │ ├── src/main/java/org/codingwallah/em_project/ │ ├── EmployeeManagementApplication.java # Main Spring Boot application class │ ├── controller/ │ │ └── EmpController.java # REST Controller, handles API requests │ ├── entity/ │ │ └── EmployeeEntity.java # Entity mapped to the database table │ ├── model/ │ │ └── Employee.java # DTO / model used in API responses │ ├── repository/ │ │ └── EmployeeRepository.java # Repository interface for DB operations │ ├── service/ │ │ ├── EmployeeService.java # Service interface for business logic │ │ └── EmployeeServiceImpl.java # Implementation of service methods │ └── exception/ │ └── ResourceNotFoundException.java # (Optional) Custom exception for handling errors │ ├── src/main/resources/ │ ├── application.properties # Spring Boot configurations (DB, server, etc.) │ ├── pom.xml # Maven dependencies and project config └── README.md # Project documentation

File Explanations File Purpose / Working EmployeeManagementApplication.java Entry point of the Spring Boot application; starts the embedded server. controller/EmpController.java Handles REST API endpoints (GET, POST, PUT, DELETE). entity/EmployeeEntity.java Maps the Employee table in the database with JPA annotations. model/Employee.java Data Transfer Object (DTO) used in requests/responses; separates DB entity from API. repository/EmployeeRepository.java Interface extending JpaRepository; provides database CRUD operations. service/EmployeeService.java Interface defining business logic methods (create, read, update, delete). service/EmployeeServiceImpl.java Implements service methods; contains transactional logic and uses repository. exception/ResourceNotFoundException.java (Optional) Handles errors like “Employee not found” in a structured way. application.properties Configures DB connection, H2 console, server port, and JPA settings. pom.xml Contains Maven dependencies such as Spring Boot, Lombok, JPA, H2/MySQL. API Endpoints Method Endpoint Description POST /employees Create a new employee GET /employees Get all employees GET /employees/{id} Get employee by ID PUT /employees/{id} Update employee by ID DELETE /employees/{id} Delete employee by ID How the Project Works (Flow)

Controller (EmpController) receives the HTTP request from client (Postman, browser, etc.).

Controller calls Service (EmployeeServiceImpl) to perform business logic.

Service interacts with Repository (EmployeeRepository) to perform database operations.

Repository communicates with Database (H2/MySQL) using JPA.

Result is returned back to the Controller, which sends the response to the client.

Example: When you call GET /employees/1 → Controller calls service.readEmployee(1) → Repository fetches record from DB → Service returns DTO → Controller sends response.

Optional Enhancements

Add validation for employee fields (@NotNull, @Email, etc.)

Integrate Swagger UI for API documentation

Use MySQL/PostgreSQL for persistent storage

Add unit tests with JUnit and Mockito

Use Lombok to reduce boilerplate code

About

This is a simple Employee Management System built with Spring Boot, Spring Data JPA, and H2/MySQL Database. It provides basic CRUD (Create, Read, Update, Delete) operations for managing employee records.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published