diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..8b36a07ba88a21178621f5d93398142898276c5f
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,11 @@
+# Use an official OpenJDK image as the base image
+FROM openjdk:17-jdk-slim
+
+# Set the working directory inside the container
+WORKDIR /app
+
+# Copy the JAR file into the container
+COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
+
+# Set the entrypoint to run the JAR
+ENTRYPOINT ["java", "-jar", "app.jar"]
diff --git a/deployment.yaml b/deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6819b4b51cfc0504c58afe94ca57615ff6a96d7f
--- /dev/null
+++ b/deployment.yaml
@@ -0,0 +1,32 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: springboot-app-deployment
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: springboot-app
+  template:
+    metadata:
+      labels:
+        app: springboot-app
+    spec:
+      containers:
+        - name: springboot-container
+          image: us-central1-docker.pkg.dev/java-training-project-456905/springboot-repo/springboot-app
+          ports:
+            - containerPort: 8080
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: springboot-service
+spec:
+  type: LoadBalancer
+  selector:
+    app: springboot-app
+  ports:
+    - protocol: TCP
+      port: 80
+      targetPort: 8080
diff --git a/src/main/java/org/example/Queries/Screenshots/img_1.png b/src/main/java/org/example/Queries/Screenshots/img_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..caddd0bb4469bb108b023fb28d918cdedd916c93
Binary files /dev/null and b/src/main/java/org/example/Queries/Screenshots/img_1.png differ
diff --git a/src/main/java/org/example/Queries/Screenshots/img_2.png b/src/main/java/org/example/Queries/Screenshots/img_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..81933214907b34139f6fca75ca641ae951c9f336
Binary files /dev/null and b/src/main/java/org/example/Queries/Screenshots/img_2.png differ
diff --git a/src/main/java/org/example/Queries/Screenshots/img_3.png b/src/main/java/org/example/Queries/Screenshots/img_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..e8c0e84376f9786eeab50dbb6d6741e74e823639
Binary files /dev/null and b/src/main/java/org/example/Queries/Screenshots/img_3.png differ
diff --git a/src/main/java/org/example/Queries/Screenshots/img_4.png b/src/main/java/org/example/Queries/Screenshots/img_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..295dbe6b2c0bb6d8158b986f03650ac472e9a961
Binary files /dev/null and b/src/main/java/org/example/Queries/Screenshots/img_4.png differ
diff --git a/src/test/java/org/example/Controller/EmployeeControllerDiffblueTest.java b/src/test/java/org/example/Controller/EmployeeControllerDiffblueTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..e873886738c0a5fad49d6024da4d6ca906b8d861
--- /dev/null
+++ b/src/test/java/org/example/Controller/EmployeeControllerDiffblueTest.java
@@ -0,0 +1,167 @@
+package org.example.Controller;
+
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.when;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.example.entity.Employees;
+import org.example.services.EmployeeService;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mockito;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.MediaType;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
+import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+
+@ContextConfiguration(classes = {EmployeeController.class})
+@ExtendWith(SpringExtension.class)
+class EmployeeControllerDiffblueTest {
+    @Autowired
+    private EmployeeController employeeController;
+
+    @MockBean
+    private EmployeeService employeeService;
+
+    /**
+     * Test {@link EmployeeController#getEmployees(int)}.
+     * <p>
+     * Method under test: {@link EmployeeController#getEmployees(int)}
+     */
+    @Test
+    @DisplayName("Test getEmployees(int)")
+    @Tag("MaintainedByDiffblue")
+    void testGetEmployees() throws Exception {
+        // Arrange
+        Employees employees = new Employees();
+        employees.setAge(1);
+        employees.setId(1);
+        employees.setName("Name");
+        employees.setSalary(1);
+        when(employeeService.getEmployees(anyInt())).thenReturn(employees);
+        MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/employee/{id}", 1);
+
+        // Act and Assert
+        MockMvcBuilders.standaloneSetup(employeeController)
+                .build()
+                .perform(requestBuilder)
+                .andExpect(MockMvcResultMatchers.status().isOk())
+                .andExpect(MockMvcResultMatchers.content().contentType("application/json"))
+                .andExpect(MockMvcResultMatchers.content().string("{\"id\":1,\"name\":\"Name\",\"age\":1,\"salary\":1}"));
+    }
+
+    /**
+     * Test {@link EmployeeController#addEmployees(Employees)}.
+     * <p>
+     * Method under test: {@link EmployeeController#addEmployees(Employees)}
+     */
+    @Test
+    @DisplayName("Test addEmployees(Employees)")
+    @Tag("MaintainedByDiffblue")
+    void testAddEmployees() throws Exception {
+        // Arrange
+        Employees employees = new Employees();
+        employees.setAge(1);
+        employees.setId(1);
+        employees.setName("Name");
+        employees.setSalary(1);
+        when(employeeService.save(Mockito.<Employees>any())).thenReturn(employees);
+
+        Employees employees2 = new Employees();
+        employees2.setAge(1);
+        employees2.setId(1);
+        employees2.setName("Name");
+        employees2.setSalary(1);
+        String content = (new ObjectMapper()).writeValueAsString(employees2);
+        MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/employee")
+                .contentType(MediaType.APPLICATION_JSON)
+                .content(content);
+
+        // Act and Assert
+        MockMvcBuilders.standaloneSetup(employeeController)
+                .build()
+                .perform(requestBuilder)
+                .andExpect(MockMvcResultMatchers.status().isOk())
+                .andExpect(MockMvcResultMatchers.content().contentType("application/json"))
+                .andExpect(MockMvcResultMatchers.content().string("{\"id\":1,\"name\":\"Name\",\"age\":1,\"salary\":1}"));
+    }
+
+    /**
+     * Test {@link EmployeeController#updateEmployees(Employees)}.
+     * <p>
+     * Method under test: {@link EmployeeController#updateEmployees(Employees)}
+     */
+    @Test
+    @DisplayName("Test updateEmployees(Employees)")
+    @Tag("MaintainedByDiffblue")
+    void testUpdateEmployees() throws Exception {
+        // Arrange
+        Employees employees = new Employees();
+        employees.setAge(1);
+        employees.setId(1);
+        employees.setName("Name");
+        employees.setSalary(1);
+        when(employeeService.update(Mockito.<Employees>any())).thenReturn(employees);
+
+        Employees employees2 = new Employees();
+        employees2.setAge(1);
+        employees2.setId(1);
+        employees2.setName("Name");
+        employees2.setSalary(1);
+        String content = (new ObjectMapper()).writeValueAsString(employees2);
+        MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/employee")
+                .contentType(MediaType.APPLICATION_JSON)
+                .content(content);
+
+        // Act and Assert
+        MockMvcBuilders.standaloneSetup(employeeController)
+                .build()
+                .perform(requestBuilder)
+                .andExpect(MockMvcResultMatchers.status().isOk())
+                .andExpect(MockMvcResultMatchers.content().contentType("application/json"))
+                .andExpect(MockMvcResultMatchers.content().string("{\"id\":1,\"name\":\"Name\",\"age\":1,\"salary\":1}"));
+    }
+
+    /**
+     * Test {@link EmployeeController#deleteEmployees(Employees)}.
+     * <p>
+     * Method under test: {@link EmployeeController#deleteEmployees(Employees)}
+     */
+    @Test
+    @DisplayName("Test deleteEmployees(Employees)")
+    @Tag("MaintainedByDiffblue")
+    void testDeleteEmployees() throws Exception {
+        // Arrange
+        Employees employees = new Employees();
+        employees.setAge(1);
+        employees.setId(1);
+        employees.setName("Name");
+        employees.setSalary(1);
+        when(employeeService.delete(anyInt())).thenReturn(employees);
+
+        Employees employees2 = new Employees();
+        employees2.setAge(1);
+        employees2.setId(1);
+        employees2.setName("Name");
+        employees2.setSalary(1);
+        String content = (new ObjectMapper()).writeValueAsString(employees2);
+        MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.delete("/employee")
+                .contentType(MediaType.APPLICATION_JSON)
+                .content(content);
+
+        // Act and Assert
+        MockMvcBuilders.standaloneSetup(employeeController)
+                .build()
+                .perform(requestBuilder)
+                .andExpect(MockMvcResultMatchers.status().isOk())
+                .andExpect(MockMvcResultMatchers.content().contentType("application/json"))
+                .andExpect(MockMvcResultMatchers.content().string("{\"id\":1,\"name\":\"Name\",\"age\":1,\"salary\":1}"));
+    }
+}
diff --git a/src/test/java/org/example/entity/EmployeesDiffblueTest.java b/src/test/java/org/example/entity/EmployeesDiffblueTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..892fc598efa7d1ad287eb27e06d3bde4929af68c
--- /dev/null
+++ b/src/test/java/org/example/entity/EmployeesDiffblueTest.java
@@ -0,0 +1,47 @@
+package org.example.entity;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+class EmployeesDiffblueTest {
+    /**
+     * Test getters and setters.
+     * <p>
+     * Methods under test:
+     * <ul>
+     *   <li>{@link Employees#setAge(int)}
+     *   <li>{@link Employees#setId(int)}
+     *   <li>{@link Employees#setName(String)}
+     *   <li>{@link Employees#setSalary(int)}
+     *   <li>{@link Employees#getAge()}
+     *   <li>{@link Employees#getId()}
+     *   <li>{@link Employees#getName()}
+     *   <li>{@link Employees#getSalary()}
+     * </ul>
+     */
+    @Test
+    @DisplayName("Test getters and setters")
+    @Tag("MaintainedByDiffblue")
+    void testGettersAndSetters() {
+        // Arrange
+        Employees employees = new Employees();
+
+        // Act
+        employees.setAge(1);
+        employees.setId(1);
+        employees.setName("Name");
+        employees.setSalary(1);
+        int actualAge = employees.getAge();
+        int actualId = employees.getId();
+        String actualName = employees.getName();
+
+        // Assert
+        assertEquals("Name", actualName);
+        assertEquals(1, actualAge);
+        assertEquals(1, actualId);
+        assertEquals(1, employees.getSalary());
+    }
+}
diff --git a/src/test/java/org/example/services/EmployeeServiceDiffblueTest.java b/src/test/java/org/example/services/EmployeeServiceDiffblueTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..baeb54f9ff2681437228b97a847ac90b04d6ee3c
--- /dev/null
+++ b/src/test/java/org/example/services/EmployeeServiceDiffblueTest.java
@@ -0,0 +1,188 @@
+package org.example.services;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isA;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Optional;
+
+import org.example.entity.Employees;
+import org.example.repository.EmployeeRepository;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mockito;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+@ContextConfiguration(classes = {EmployeeService.class})
+@ExtendWith(SpringExtension.class)
+class EmployeeServiceDiffblueTest {
+    @MockBean
+    private EmployeeRepository employeeRepository;
+
+    @Autowired
+    private EmployeeService employeeService;
+
+    /**
+     * Test {@link EmployeeService#save(Employees)}.
+     * <p>
+     * Method under test: {@link EmployeeService#save(Employees)}
+     */
+    @Test
+    @DisplayName("Test save(Employees)")
+    @Tag("MaintainedByDiffblue")
+    void testSave() {
+        // Arrange
+        Employees employees = new Employees();
+        employees.setAge(1);
+        employees.setId(1);
+        employees.setName("Name");
+        employees.setSalary(1);
+        when(employeeRepository.save(Mockito.<Employees>any())).thenReturn(employees);
+
+        Employees employee = new Employees();
+        employee.setAge(1);
+        employee.setId(1);
+        employee.setName("Name");
+        employee.setSalary(1);
+
+        // Act
+        Employees actualSaveResult = employeeService.save(employee);
+
+        // Assert
+        verify(employeeRepository).save(isA(Employees.class));
+        assertSame(employees, actualSaveResult);
+    }
+
+    /**
+     * Test {@link EmployeeService#getEmployees(int)}.
+     * <ul>
+     *   <li>Given {@link Employees} (default constructor) Age is one.</li>
+     *   <li>Then return {@link Employees} (default constructor).</li>
+     * </ul>
+     * <p>
+     * Method under test: {@link EmployeeService#getEmployees(int)}
+     */
+    @Test
+    @DisplayName("Test getEmployees(int); given Employees (default constructor) Age is one; then return Employees (default constructor)")
+    @Tag("MaintainedByDiffblue")
+    void testGetEmployees_givenEmployeesAgeIsOne_thenReturnEmployees() {
+        // Arrange
+        Employees employees = new Employees();
+        employees.setAge(1);
+        employees.setId(1);
+        employees.setName("Name");
+        employees.setSalary(1);
+        Optional<Employees> ofResult = Optional.of(employees);
+        when(employeeRepository.findById(Mockito.<Integer>any())).thenReturn(ofResult);
+
+        // Act
+        Employees actualEmployees = employeeService.getEmployees(1);
+
+        // Assert
+        verify(employeeRepository).findById(eq(1));
+        assertSame(employees, actualEmployees);
+    }
+
+    /**
+     * Test {@link EmployeeService#update(Employees)}.
+     * <ul>
+     *   <li>Given {@link EmployeeRepository} {@link CrudRepository#findById(Object)} return of {@link Employees} (default constructor).</li>
+     *   <li>Then return {@link Employees} (default constructor).</li>
+     * </ul>
+     * <p>
+     * Method under test: {@link EmployeeService#update(Employees)}
+     */
+    @Test
+    @DisplayName("Test update(Employees); given EmployeeRepository findById(Object) return of Employees (default constructor); then return Employees (default constructor)")
+    @Tag("MaintainedByDiffblue")
+    void testUpdate_givenEmployeeRepositoryFindByIdReturnOfEmployees_thenReturnEmployees() {
+        // Arrange
+        Employees employees = new Employees();
+        employees.setAge(1);
+        employees.setId(1);
+        employees.setName("Name");
+        employees.setSalary(1);
+        Optional<Employees> ofResult = Optional.of(employees);
+
+        Employees employees2 = new Employees();
+        employees2.setAge(1);
+        employees2.setId(1);
+        employees2.setName("Name");
+        employees2.setSalary(1);
+        when(employeeRepository.save(Mockito.<Employees>any())).thenReturn(employees2);
+        when(employeeRepository.findById(Mockito.<Integer>any())).thenReturn(ofResult);
+
+        Employees employee = new Employees();
+        employee.setAge(1);
+        employee.setId(1);
+        employee.setName("Name");
+        employee.setSalary(1);
+
+        // Act
+        Employees actualUpdateResult = employeeService.update(employee);
+
+        // Assert
+        verify(employeeRepository).findById(eq(1));
+        verify(employeeRepository).save(isA(Employees.class));
+        assertSame(employees2, actualUpdateResult);
+    }
+
+    /**
+     * Test {@link EmployeeService#delete(int)}.
+     * <p>
+     * Method under test: {@link EmployeeService#delete(int)}
+     */
+    @Test
+    @DisplayName("Test delete(int)")
+    @Tag("MaintainedByDiffblue")
+    void testDelete() {
+        // Arrange
+        doNothing().when(employeeRepository).deleteById(Mockito.<Integer>any());
+
+        // Act
+        Employees actualDeleteResult = employeeService.delete(1);
+
+        // Assert
+        verify(employeeRepository).deleteById(eq(1));
+        assertNull(actualDeleteResult.getName());
+        assertEquals(0, actualDeleteResult.getAge());
+        assertEquals(0, actualDeleteResult.getId());
+        assertEquals(0, actualDeleteResult.getSalary());
+    }
+
+    /**
+     * Test getters and setters.
+     * <p>
+     * Methods under test:
+     * <ul>
+     *   <li>{@link EmployeeService#setEmployeeRepository(EmployeeRepository)}
+     *   <li>{@link EmployeeService#getEmployeeRepository()}
+     * </ul>
+     */
+    @Test
+    @DisplayName("Test getters and setters")
+    @Tag("MaintainedByDiffblue")
+    void testGettersAndSetters() {
+        // Arrange
+        EmployeeService employeeService = new EmployeeService();
+        EmployeeRepository employeeRepository = mock(EmployeeRepository.class);
+
+        // Act
+        employeeService.setEmployeeRepository(employeeRepository);
+
+        // Assert
+        assertSame(employeeRepository, employeeService.getEmployeeRepository());
+    }
+}