diff --git a/pom.xml b/pom.xml
index b0a6389..4365294 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,8 +27,27 @@
spring-boot-starter-test
test
-
+
+ org.projectlombok
+ lombok
+ 1.18.24
+ provided
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ mysql
+ mysql-connector-java
+
+
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/ProjectController.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/ProjectController.java
new file mode 100644
index 0000000..ca01d68
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/ProjectController.java
@@ -0,0 +1,53 @@
+package com.accenture.codingtest.springbootcodingtest.controller;
+
+import java.util.List;
+
+import com.accenture.codingtest.springbootcodingtest.entity.Project;
+import com.accenture.codingtest.springbootcodingtest.model.Role;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import com.accenture.codingtest.springbootcodingtest.entity.Project;
+import com.accenture.codingtest.springbootcodingtest.service.ProjectService;
+
+@RestController
+@RequestMapping("/api")
+public class ProjectController {
+ @Autowired
+ private ProjectService projectService;
+
+ @GetMapping("/v1/projects")
+ public ResponseEntity> getAllProjects() {
+ return projectService.getAllProjects();
+ }
+
+ @PostMapping("/v1/projects/{role}")
+ public ResponseEntity saveProject(@RequestBody Project project,
+ @PathVariable("role") String role) {
+ ResponseEntity response;
+ if(Role.ADMIN.toString().equalsIgnoreCase(role)) {
+ response = projectService.saveProject(project);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
+ }
+ return response;
+ }
+
+ @GetMapping("/v1/projects/{project_id}")
+ public ResponseEntity getProjectById(@PathVariable("project_id") String project_id) {
+ return projectService.getProjectById(project_id);
+ }
+
+ @PutMapping("/v1/projects")
+ public ResponseEntity updateProject(@RequestBody Project project) {
+ return projectService.updateProject(project);
+ }
+
+ @DeleteMapping("/v1/projects/{project_id}")
+ public ResponseEntity deleteProjectById(@PathVariable("project_id") String project_id) {
+ return projectService.deleteProject(project_id);
+ }
+
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/TaskController.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/TaskController.java
new file mode 100644
index 0000000..d897f2b
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/TaskController.java
@@ -0,0 +1,70 @@
+package com.accenture.codingtest.springbootcodingtest.controller;
+
+import java.util.List;
+
+import com.accenture.codingtest.springbootcodingtest.model.Role;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import com.accenture.codingtest.springbootcodingtest.entity.Task;
+import com.accenture.codingtest.springbootcodingtest.service.TaskService;
+
+@RestController
+@RequestMapping("/api")
+public class TaskController {
+ @Autowired
+ private TaskService taskService;
+
+ @GetMapping("/v1/tasks")
+ public ResponseEntity> getAllTasks() {
+ return taskService.getAllTasks();
+ }
+
+ @PostMapping("/v1/tasks/{role}")
+ public ResponseEntity saveTask(@RequestBody Task task, @PathVariable("role") String role) {
+ ResponseEntity response = null;
+ if(Role.PRODUCT_OWNER.toString().equalsIgnoreCase(role)) {
+ response = taskService.saveTask(task);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
+ }
+ return response;
+ }
+
+ @GetMapping("/v1/tasks/{task_id}")
+ public ResponseEntity getTaskById(@PathVariable("task_id") String task_id) {
+ return taskService.getTaskById(task_id);
+ }
+
+ @PatchMapping("/v1/tasks/{role}")
+ public ResponseEntity updateTask(@RequestBody Task task,
+ @PathVariable("userId") String userId,
+ @PathVariable("role") String role) {
+ ResponseEntity response = null;
+ if(Role.PRODUCT_OWNER.toString().equalsIgnoreCase(role)) {
+ response = taskService.updateTask(task, userId);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
+ }
+ return response;
+ }
+
+ @PutMapping("/v1/tasks/{role}")
+ public ResponseEntity updateTask(@RequestBody Task task, @PathVariable("role") String role) {
+ ResponseEntity response = null;
+ if(Role.PRODUCT_OWNER.toString().equalsIgnoreCase(role)) {
+ response = taskService.updateTask(task);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
+ }
+ return response;
+ }
+
+
+ @DeleteMapping("/v1/tasks/{task_id}")
+ public ResponseEntity deleteTaskById(@PathVariable("task_id") String task_id) {
+ return taskService.deleteTask(task_id);
+ }
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/UserController.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/UserController.java
new file mode 100644
index 0000000..65099d1
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/UserController.java
@@ -0,0 +1,77 @@
+package com.accenture.codingtest.springbootcodingtest.controller;
+
+import com.accenture.codingtest.springbootcodingtest.entity.User;
+import com.accenture.codingtest.springbootcodingtest.model.Role;
+import com.accenture.codingtest.springbootcodingtest.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/api")
+public class UserController {
+
+ @Autowired
+ private UserService userService;
+
+ @GetMapping("/v1/users/{role}")
+ public ResponseEntity> getAllUsers(@PathVariable("role") String role) {
+ ResponseEntity> response = null;
+ if(Role.ADMIN.toString().equalsIgnoreCase(role)) {
+ response = userService.getAllUsers();
+ } else {
+ response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
+ }
+ return response;
+ }
+
+ @GetMapping("/v1/users/{user_id}/{role}")
+ public ResponseEntity getUserById(@PathVariable("user_id") String user_id,
+ @PathVariable("role") String role) {
+ ResponseEntity response = null;
+ if(Role.ADMIN.toString().equalsIgnoreCase(role)) {
+ response = userService.getUserById(user_id);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
+ }
+ return response;
+ }
+
+ @PostMapping("/v1/users/{role}")
+ public ResponseEntity saveUser(@RequestBody User user, @PathVariable("role") String role) {
+
+ ResponseEntity response = null;
+ if(Role.ADMIN.toString().equalsIgnoreCase(role)) {
+ response = userService.saveUser(user);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
+ }
+ return response;
+ }
+
+ @PutMapping("/v1/users")
+ public ResponseEntity updateUser(@RequestBody User user, @PathVariable("role") String role) {
+ ResponseEntity response = null;
+ if(Role.ADMIN.toString().equalsIgnoreCase(role)) {
+ response = userService.updateUser(user);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
+ }
+ return response;
+ }
+
+ @DeleteMapping("/v1/users/{user_id}")
+ public ResponseEntity deleteUserById(@PathVariable("user_id") String user_id,
+ @PathVariable("role") String role) {
+ ResponseEntity response;
+ if(Role.ADMIN.toString().equalsIgnoreCase(role)) {
+ response = userService.deleteUser(user_id);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
+ }
+ return response;
+ }
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/package-info.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/controller/package-info.java
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/Project.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/Project.java
new file mode 100644
index 0000000..07dab68
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/Project.java
@@ -0,0 +1,17 @@
+package com.accenture.codingtest.springbootcodingtest.entity;
+
+import lombok.Data;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Data
+@Table(name="Project")
+public class Project {
+
+ @Id
+ private String id;
+ private String name;
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/Task.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/Task.java
new file mode 100644
index 0000000..951c135
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/Task.java
@@ -0,0 +1,21 @@
+package com.accenture.codingtest.springbootcodingtest.entity;
+
+
+import lombok.Data;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Data
+@Entity
+@Table(name="Task")
+public class Task {
+ @Id
+ private String id;// | uuid | required | pk
+ private String title;// | string | required
+ private String description;// | string
+ private String status;// | string | required
+ private String project_id;// | uuid | required
+ private String user_id;// | uuid | required
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/User.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/User.java
new file mode 100644
index 0000000..8afde6f
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/User.java
@@ -0,0 +1,27 @@
+package com.accenture.codingtest.springbootcodingtest.entity;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Required;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Data
+@Entity
+@Table(name="User")
+@JsonSerialize
+public class User {
+
+ @Id
+ private String id;
+
+ // @Required
+ private String username;
+
+ //@Required
+ private String password;
+
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/package-info.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/package-info.java
deleted file mode 100644
index f87ee93..0000000
--- a/src/main/java/com/accenture/codingtest/springbootcodingtest/entity/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package com.accenture.codingtest.springbootcodingtest.entity;
\ No newline at end of file
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/model/Role.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/model/Role.java
new file mode 100644
index 0000000..74379dd
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/model/Role.java
@@ -0,0 +1,6 @@
+package com.accenture.codingtest.springbootcodingtest.model;
+
+public enum Role {
+ ADMIN,
+ PRODUCT_OWNER
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/model/Status.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/model/Status.java
new file mode 100644
index 0000000..5f6313b
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/model/Status.java
@@ -0,0 +1,5 @@
+package com.accenture.codingtest.springbootcodingtest.model;
+
+public enum Status {
+ NOT_STARTED, IN_PROGRESS, READY_FOR_TEST, COMPLETED
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/ProjectRepository.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/ProjectRepository.java
new file mode 100644
index 0000000..b1a9458
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/ProjectRepository.java
@@ -0,0 +1,7 @@
+package com.accenture.codingtest.springbootcodingtest.repository;
+
+import com.accenture.codingtest.springbootcodingtest.entity.Project;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface ProjectRepository extends JpaRepository {
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/TaskRepository.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/TaskRepository.java
new file mode 100644
index 0000000..2cba613
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/TaskRepository.java
@@ -0,0 +1,7 @@
+package com.accenture.codingtest.springbootcodingtest.repository;
+
+import com.accenture.codingtest.springbootcodingtest.entity.Task;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface TaskRepository extends JpaRepository {
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/UserRepository.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/UserRepository.java
new file mode 100644
index 0000000..046e205
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/UserRepository.java
@@ -0,0 +1,7 @@
+package com.accenture.codingtest.springbootcodingtest.repository;
+
+import com.accenture.codingtest.springbootcodingtest.entity.User;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface UserRepository extends JpaRepository {
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/package-info.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/package-info.java
deleted file mode 100644
index 0f16639..0000000
--- a/src/main/java/com/accenture/codingtest/springbootcodingtest/repository/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package com.accenture.codingtest.springbootcodingtest.repository;
\ No newline at end of file
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/service/ProjectService.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/service/ProjectService.java
new file mode 100644
index 0000000..d0deef1
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/service/ProjectService.java
@@ -0,0 +1,65 @@
+package com.accenture.codingtest.springbootcodingtest.service;
+
+import java.util.List;
+import java.util.Optional;
+
+import com.accenture.codingtest.springbootcodingtest.entity.Project;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import com.accenture.codingtest.springbootcodingtest.repository.ProjectRepository;
+
+@Service
+public class ProjectService {
+ @Autowired
+ private ProjectRepository projectRepository;
+
+ public ResponseEntity saveProject(Project project) {
+ ResponseEntity response = null;
+ if (project != null) {
+ response = new ResponseEntity<>(projectRepository.save(project), HttpStatus.OK);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+ return response;
+ }
+ public ResponseEntity> getAllProjects() {
+ return new ResponseEntity<>(projectRepository.findAll(), HttpStatus.OK);
+ }
+
+ public ResponseEntity getProjectById(String id) {
+ return new ResponseEntity<>(projectRepository.findById(id).get(), HttpStatus.OK);
+ }
+
+ public ResponseEntity updateProject(Project project) {
+ ResponseEntity updatedProject = null;
+ String id = project.getId();
+ Optional oldProjectOp = projectRepository.findById(id);
+
+ if(oldProjectOp.isPresent()) {
+ Project oldProject = oldProjectOp.get();
+
+ oldProject.setName(project.getName());
+ // oldProject.setProject_id(project.getProject_id());
+
+ updatedProject = new ResponseEntity<>(projectRepository.save(oldProject), HttpStatus.OK);
+ } else {
+ updatedProject = new ResponseEntity<>(HttpStatus.NOT_FOUND);
+ }
+
+ return updatedProject;
+ }
+
+ public ResponseEntity deleteProject(String id) {
+ ResponseEntity response = null;
+ if (projectRepository.existsById(id)) {
+ projectRepository.deleteById(id);
+ response = new ResponseEntity<>(HttpStatus.OK);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.NOT_FOUND);
+ }
+ return response;
+ }
+
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/service/TaskService.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/service/TaskService.java
new file mode 100644
index 0000000..1d824fd
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/service/TaskService.java
@@ -0,0 +1,84 @@
+package com.accenture.codingtest.springbootcodingtest.service;
+
+import com.accenture.codingtest.springbootcodingtest.entity.Task;
+import com.accenture.codingtest.springbootcodingtest.model.Role;
+import com.accenture.codingtest.springbootcodingtest.model.Status;
+import com.accenture.codingtest.springbootcodingtest.repository.TaskRepository;
+
+import java.util.List;
+import java.util.Optional;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TaskService {
+
+ @Autowired
+ private TaskRepository taskRepository;
+
+ public ResponseEntity saveTask(Task task) {
+ ResponseEntity response = null;
+ if (task != null) {
+ //initial status
+ task.setStatus(Status.NOT_STARTED.toString());
+ response = new ResponseEntity<>(taskRepository.save(task), HttpStatus.OK);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+ return response;
+ }
+ public ResponseEntity> getAllTasks() {
+ return new ResponseEntity<>(taskRepository.findAll(), HttpStatus.OK);
+ }
+
+ public ResponseEntity getTaskById(String id) {
+ return new ResponseEntity<>(taskRepository.findById(id).get(), HttpStatus.OK);
+ }
+
+ public ResponseEntity updateTask(Task task) {
+ ResponseEntity updatedTask = null;
+ String id = task.getId();
+ Optional oldTaskOp = taskRepository.findById(id);
+
+ if(oldTaskOp.isPresent()) {
+ Task oldTask = oldTaskOp.get();
+
+ oldTask.setDescription(task.getDescription());
+ oldTask.setTitle(task.getTitle());
+ oldTask.setStatus(task.getStatus());
+ oldTask.setUser_id(task.getUser_id());
+ // oldTask.setProject_id(task.getProject_id());
+
+ updatedTask = new ResponseEntity<>(taskRepository.save(oldTask), HttpStatus.OK);
+ } else {
+ updatedTask = new ResponseEntity<>(HttpStatus.NOT_FOUND);
+ }
+
+ return updatedTask;
+ }
+ public ResponseEntity updateTask(Task task, String userId) {
+ ResponseEntity response = null;
+ Optional taskRes = taskRepository.findById(task.getId());
+ if (taskRes.isPresent()) {
+ if (taskRes.get().getUser_id().equalsIgnoreCase(userId)) {
+ taskRes.get().setStatus(task.getStatus());
+ response =new ResponseEntity<>(taskRepository.save(taskRes.get()), HttpStatus.OK);
+ }
+ }
+ return response;
+ }
+
+ public ResponseEntity deleteTask(String id) {
+ ResponseEntity response = null;
+ if (taskRepository.existsById(id)) {
+ taskRepository.deleteById(id);
+ response = new ResponseEntity<>(HttpStatus.OK);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.NOT_FOUND);
+ }
+ return response;
+ }
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/service/UserService.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/service/UserService.java
new file mode 100644
index 0000000..9230755
--- /dev/null
+++ b/src/main/java/com/accenture/codingtest/springbootcodingtest/service/UserService.java
@@ -0,0 +1,67 @@
+package com.accenture.codingtest.springbootcodingtest.service;
+
+import com.accenture.codingtest.springbootcodingtest.entity.User;
+import com.accenture.codingtest.springbootcodingtest.repository.UserRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+@Service
+public class UserService {
+
+ @Autowired
+ private UserRepository userRepository;
+
+ public ResponseEntity saveUser(User user) {
+ ResponseEntity response = null;
+ if (user != null) {
+ response = new ResponseEntity<>(userRepository.save(user), HttpStatus.OK);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+ return response;
+ }
+
+
+ public ResponseEntity> getAllUsers() {
+ return new ResponseEntity<>(userRepository.findAll(), HttpStatus.OK);
+ }
+
+ public ResponseEntity getUserById(String id) {
+ return new ResponseEntity<>(userRepository.findById(id).get(), HttpStatus.OK);
+ }
+
+ public ResponseEntity updateUser(User user) {
+ ResponseEntity updatedUser = null;
+ String id = user.getId();
+ Optional oldUserOp = userRepository.findById(id);
+
+ if(oldUserOp.isPresent()) {
+ User oldUser = oldUserOp.get();
+
+ oldUser.setUsername(user.getUsername());
+ oldUser.setPassword(user.getPassword());
+
+ updatedUser = new ResponseEntity<>(userRepository.save(oldUser), HttpStatus.OK);
+ } else {
+ updatedUser = new ResponseEntity<>(HttpStatus.NOT_FOUND);
+ }
+
+ return updatedUser;
+ }
+
+ public ResponseEntity deleteUser(String id) {
+ ResponseEntity response = null;
+ if (userRepository.existsById(id)) {
+ userRepository.deleteById(id);
+ response = new ResponseEntity<>(HttpStatus.OK);
+ } else {
+ response = new ResponseEntity<>(HttpStatus.NOT_FOUND);
+ }
+ return response;
+ }
+}
diff --git a/src/main/java/com/accenture/codingtest/springbootcodingtest/service/package-info.java b/src/main/java/com/accenture/codingtest/springbootcodingtest/service/package-info.java
deleted file mode 100644
index ad5937c..0000000
--- a/src/main/java/com/accenture/codingtest/springbootcodingtest/service/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package com.accenture.codingtest.springbootcodingtest.service;
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 8b13789..f16231d 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1 +1,10 @@
+spring.datasource.url=jdbc:mysql://localhost/accenture
+spring.datasource.driverClassName=com.mysql.jdbc.Driver
+spring.datasource.username=root
+spring.datasource.password=12345Welcome
+
+
+spring.jpa.show-sql=true
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
+spring.jpa.hibernate.ddl-auto= update
diff --git a/src/main/resources/template/create_project.html b/src/main/resources/template/create_project.html
new file mode 100644
index 0000000..415d4c6
--- /dev/null
+++ b/src/main/resources/template/create_project.html
@@ -0,0 +1,10 @@
+
+
+
+
+Insert title here
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/template/create_task.html b/src/main/resources/template/create_task.html
new file mode 100644
index 0000000..415d4c6
--- /dev/null
+++ b/src/main/resources/template/create_task.html
@@ -0,0 +1,10 @@
+
+
+
+
+Insert title here
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/template/create_user.html b/src/main/resources/template/create_user.html
new file mode 100644
index 0000000..415d4c6
--- /dev/null
+++ b/src/main/resources/template/create_user.html
@@ -0,0 +1,10 @@
+
+
+
+
+Insert title here
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/template/edit_project.html b/src/main/resources/template/edit_project.html
new file mode 100644
index 0000000..415d4c6
--- /dev/null
+++ b/src/main/resources/template/edit_project.html
@@ -0,0 +1,10 @@
+
+
+
+
+Insert title here
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/template/edit_task.html b/src/main/resources/template/edit_task.html
new file mode 100644
index 0000000..415d4c6
--- /dev/null
+++ b/src/main/resources/template/edit_task.html
@@ -0,0 +1,10 @@
+
+
+
+
+Insert title here
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/template/edit_user.html b/src/main/resources/template/edit_user.html
new file mode 100644
index 0000000..415d4c6
--- /dev/null
+++ b/src/main/resources/template/edit_user.html
@@ -0,0 +1,10 @@
+
+
+
+
+Insert title here
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/template/project.html b/src/main/resources/template/project.html
new file mode 100644
index 0000000..415d4c6
--- /dev/null
+++ b/src/main/resources/template/project.html
@@ -0,0 +1,10 @@
+
+
+
+
+Insert title here
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/template/task.html b/src/main/resources/template/task.html
new file mode 100644
index 0000000..6f9bc14
--- /dev/null
+++ b/src/main/resources/template/task.html
@@ -0,0 +1,79 @@
+
+
+
+
+Project Management System
+
+
+
+
+
+
+
List Tasks
+
+
+
+
+
+
+ | Task Id |
+ Task Title |
+ Task Description |
+ Task Status |
+ Task Project_Id |
+ Task Task_Id |
+
+
+
+
+
+ |
+ |
+ |
+ |
+ |
+ |
+
+ Update
+
+ Delete
+
+ |
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/template/user.html b/src/main/resources/template/user.html
new file mode 100644
index 0000000..15a88e6
--- /dev/null
+++ b/src/main/resources/template/user.html
@@ -0,0 +1,76 @@
+
+
+
+
+Project Management System
+
+
+
+
+
+
+
List Users
+
+
+
+
+
+
+ | User Id |
+ User Name |
+ Password |
+ Actions |
+
+
+
+
+
+ |
+ |
+ |
+
+ Update
+
+ Delete
+
+ |
+
+
+
+
+
+
+
+
+
\ No newline at end of file