Index: src/main/java/com/db/finki/www/build_board/controller/thread_controller/ProjectController.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/controller/thread_controller/ProjectController.java	(revision 8b7ce393c3f08bb30ae2bb04dd6f7ac003a8cd01)
+++ src/main/java/com/db/finki/www/build_board/controller/thread_controller/ProjectController.java	(revision 3f5d3b9d25e63a73880ef27267dc03cd0fe91c12)
@@ -27,6 +27,6 @@
     private final ProjectService projectService;
     private final TagService tagService;
-    private final String DUPLICATED_TITLE_MSG="could not execute statement [ERROR: duplicate key value violates unique constraint";
-    private final ProjectAccessManagementService  projectAccessManagementService;
+    private final String DUPLICATED_TITLE_MSG = "could not execute statement [ERROR: duplicate key value violates unique constraint";
+    private final ProjectAccessManagementService projectAccessManagementService;
     private final AddRoleDTOEntitiesMapper mapper;
 
@@ -39,49 +39,77 @@
 
     @GetMapping("/{title}")
-    public String getProjectPage(@PathVariable(name = "title") Project project, Model model, RedirectAttributes redirectAttributes,
-    @RequestParam(required = false) String duplicateTitle) {
-        model.addAttribute("project", project);
-        model.addAttribute("tags", tagService.getAll());
-        model.addAttribute("developers",projectService.getAllDevelopersForProject(project));
+    public String getProjectPage(
+            @PathVariable(name = "title") Project project, Model model, RedirectAttributes redirectAttributes,
+            @RequestParam(required = false) String duplicateTitle
+                                ) {
+        model.addAttribute("project",
+                project);
+        model.addAttribute("tags",
+                tagService.getAll());
+        model.addAttribute("developers",
+                projectService.getAllDevelopersForProject(project));
         String error = (String) redirectAttributes.getAttribute("error");
-        
-        if(error != null){
-            model.addAttribute("error", error);
-        }
-        if(duplicateTitle!=null){
-            model.addAttribute("errMsg","There already exists a project with the provided title" );
-        }
-        
+
+        if (error != null) {
+            model.addAttribute("error",
+                    error);
+        }
+        if (duplicateTitle != null) {
+            model.addAttribute("errMsg",
+                    "There already exists a project with the provided title");
+        }
+
         Hibernate.initialize(project.getTags());
 
         return "project_pages/show-project";
     }
+
+    @GetMapping("/create")
+    public String getCreateProjectPage(Model model, @RequestParam(required = false) String duplicateTitle) {
+        if (duplicateTitle != null) {
+            model.addAttribute("errMsg",
+                    "There already exists a project with the provided title");
+        }
+        model.addAttribute("project",
+                new Project());
+        model.addAttribute("isCreatingProject",
+                tagService.getAll());
+        return "project_pages/project-create";
+    }
+
 
     @PostMapping("/{title}/roles/add")
     public String addProjectRole(@PathVariable(name = "title") String title, @RequestBody AddRoleDTO addRoleDTO) {
         projectAccessManagementService.addRole(mapper.map(addRoleDTO));
-        return  "redirect:/projects/" + title + "/roles";
-    }
-
-    @GetMapping("/create")
-    public String getCreateProjectPage(Model model, @RequestParam(required = false) String duplicateTitle) {
-        if(duplicateTitle!=null){
-            model.addAttribute("errMsg", "There already exists a project with the provided title"); 
-        }
-        model.addAttribute("project", new Project());
-        model.addAttribute("isCreatingProject", tagService.getAll());
-        return "project_pages/project-create";
-    }
-
+        return "redirect:/projects/" + title + "/roles";
+    }
 
     @GetMapping("{title}/roles")
-    public String getRolesPage(@PathVariable(name = "title") Project project, Model model){
-        model.addAttribute("project", project);
-        model.addAttribute("developersRoles",projectAccessManagementService.getRolesForMembersInProject(project));
-        model.addAttribute("perResourcePermissions", List.of("READ","WRITE"));
-        model.addAttribute("globalPermissions", List.of("CREATE","DELETE"));
-        model.addAttribute("errMsg",null);
-        model.addAttribute("overrideTypeDefault","INCLUDE");
+    public String getRolesPage(@PathVariable(name = "title") Project project, Model model) {
+        model.addAttribute("project",
+                project);
+        model.addAttribute("developersRoles",
+                projectAccessManagementService.getRolesForMembersInProject(project));
+        model.addAttribute("perResourcePermissions",
+                List.of("READ",
+                        "WRITE"));
+        model.addAttribute("globalPermissions",
+                List.of("CREATE",
+                        "DELETE"));
+        model.addAttribute("errMsg",
+                null);
+        model.addAttribute("overrideTypeDefault",
+                "INCLUDE");
         return "project_pages/project-roles";
+    }
+
+    //projects/Project 1 Thread/roles/Admin/delete
+    @PostMapping("{project_title}/roles/{role_name}/delete")
+    public String deleteRole(
+            @PathVariable(name = "project_title") Project project,
+            @PathVariable(name = "role_name") String roleName
+                            ){
+        projectAccessManagementService.deleteByRoleNameAndProjectTitle(project,roleName);
+        return String.format("redirect:/projects/%s/roles", project.getTitle());
     }
 
@@ -91,7 +119,8 @@
             @PathVariable String title,
             Model model
-    ){
-        model.addAttribute("project_title",title);
-        return "create-topic" ;
+                                 ) {
+        model.addAttribute("project_title",
+                title);
+        return "create-topic";
     }
 
@@ -100,6 +129,7 @@
             @PathVariable(name = "pr-title") Project project,
             Model model
-    ) {
-        model.addAttribute("project", project);
+                               ) {
+        model.addAttribute("project",
+                project);
         return "project_pages/project-create";
     }
@@ -109,8 +139,9 @@
             Model model,
             @PathVariable(name = "pr-title") Project project
-    )
-    {
-        model.addAttribute("project", project);
-        model.addAttribute("developers", projectService.getAllDevelopersForProject(project));
+                                       ) {
+        model.addAttribute("project",
+                project);
+        model.addAttribute("developers",
+                projectService.getAllDevelopersForProject(project));
         return "project_pages/members";
     }
@@ -118,6 +149,7 @@
     @PreAuthorize("#project.getUser().equals(#user)")
     @PostMapping("/{pr-title}/members/{mem-id}/kick")
-    public String kickMember(@PathVariable(name = "pr-title") @P("project") Project project,@PathVariable(name = "mem-id") int memberId,@SessionAttribute @P("user") BBUser user){
-        projectService.kickMember(project, memberId);
+    public String kickMember(@PathVariable(name = "pr-title") @P("project") Project project, @PathVariable(name = "mem-id") int memberId, @SessionAttribute @P("user") BBUser user) {
+        projectService.kickMember(project,
+                memberId);
         return "redirect:/projects/" + project.getTitle() + "/members";
     }
@@ -132,14 +164,22 @@
             @RequestParam String description,
             RedirectAttributes attributes
-    ){
+                               ) {
         String oldTitle = project.getTitle();
-        try{
-            return "redirect:/projects/" +  projectService.update(project, repoUrl, description, newTitle).getTitle();
-        }catch(org.springframework.dao.DataIntegrityViolationException e){
-            if(e.getMessage().contains(DUPLICATED_TITLE_MSG)){
-                attributes.addAttribute("duplicateTitle", "y");
-                return "redirect:/projects/" + oldTitle; 
+        try {
+            return "redirect:/projects/" + projectService
+                    .update(project,
+                            repoUrl,
+                            description,
+                            newTitle)
+                    .getTitle();
+        } catch (org.springframework.dao.DataIntegrityViolationException e) {
+            if (e
+                    .getMessage()
+                    .contains(DUPLICATED_TITLE_MSG)) {
+                attributes.addAttribute("duplicateTitle",
+                        "y");
+                return "redirect:/projects/" + oldTitle;
             }
-            throw e ; 
+            throw e;
         }
     }
@@ -152,14 +192,20 @@
             @SessionAttribute BBUser user,
             RedirectAttributes redirectAttributes
-    ) {
-        try{
-            projectService.create(title,repoUrl,description,user);
+                               ) {
+        try {
+            projectService.create(title,
+                    repoUrl,
+                    description,
+                    user);
             return "redirect:/";
-        }catch(org.springframework.dao.DataIntegrityViolationException e){
-            if(e.getMessage().contains(DUPLICATED_TITLE_MSG)){
-                redirectAttributes.addAttribute("duplicateTitle", "y");
-                return "redirect:/projects/create"; 
+        } catch (org.springframework.dao.DataIntegrityViolationException e) {
+            if (e
+                    .getMessage()
+                    .contains(DUPLICATED_TITLE_MSG)) {
+                redirectAttributes.addAttribute("duplicateTitle",
+                        "y");
+                return "redirect:/projects/create";
             }
-            throw e ; 
+            throw e;
         }
     }
@@ -172,7 +218,10 @@
             @RequestParam String description,
             @RequestParam @P("username") String username,
-            @SessionAttribute("user") BBUser user 
-    ){
-        projectService.createTopic(project, topicsTitle, description, user);
+            @SessionAttribute("user") BBUser user
+                          ) {
+        projectService.createTopic(project,
+                topicsTitle,
+                description,
+                user);
         return "redirect:/projects/" + project.getTitle();
     }
@@ -183,8 +232,9 @@
             @PathVariable(name = "title") @P("project") Project project,
             @RequestParam @P("username") String username
-    ) {
+                        ) {
         projectService.delete(project);
-        return "redirect:/" ;
-    }
+        return "redirect:/";
+    }
+
 
 }
Index: src/main/java/com/db/finki/www/build_board/repository/access_managment/UserProjectRoleRepository.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/repository/access_managment/UserProjectRoleRepository.java	(revision 8b7ce393c3f08bb30ae2bb04dd6f7ac003a8cd01)
+++ src/main/java/com/db/finki/www/build_board/repository/access_managment/UserProjectRoleRepository.java	(revision 3f5d3b9d25e63a73880ef27267dc03cd0fe91c12)
@@ -13,4 +13,4 @@
 @Repository
 public interface UserProjectRoleRepository extends JpaRepository<UsersProjectRoles, UsersProjectRolesId> {
-    List<UsersProjectRoles> findByIdRoleIdProject(Project project);
+    List<UsersProjectRoles> findByIdRoleIdProjectId(int projectId);
 }
Index: src/main/java/com/db/finki/www/build_board/service/access_managment/ProjectAccessManagementService.java
===================================================================
--- src/main/java/com/db/finki/www/build_board/service/access_managment/ProjectAccessManagementService.java	(revision 8b7ce393c3f08bb30ae2bb04dd6f7ac003a8cd01)
+++ src/main/java/com/db/finki/www/build_board/service/access_managment/ProjectAccessManagementService.java	(revision 3f5d3b9d25e63a73880ef27267dc03cd0fe91c12)
@@ -49,6 +49,5 @@
 
     public List<UsersProjectRoles> getRolesForMembersInProject(Project project) {
-        return userProjectRoleRepository.findByIdRoleIdProject(project);
-
+        return userProjectRoleRepository.findByIdRoleIdProjectId(project.getId());
     }
 
@@ -142,3 +141,7 @@
                                                                                       ));
     }
+
+    public void deleteByRoleNameAndProjectTitle(Project project, String roleName) {
+        projectRoleRepository.deleteById(new ProjectRoleId(roleName,project));
+    }
 }
