Index: src/main/java/it/finki/tinki/web/controller/AccountEditController.java
===================================================================
--- src/main/java/it/finki/tinki/web/controller/AccountEditController.java	(revision 8f1f460ab25fea06236bc61f6c6c2a7a15da2f73)
+++ src/main/java/it/finki/tinki/web/controller/AccountEditController.java	(revision a70db1a27a62efb3c6323fe66d6a06d71206b80f)
@@ -35,9 +35,10 @@
     }
 
-    @PostMapping(path = "/user/{id}")
+    @PostMapping(path = "/user/{id}/{email}")
     public UserResponseDTO editUser(@PathVariable(name = "id") Long id,
+                                    @PathVariable(name = "email") String email,
                                     @RequestBody UserRegisterDTO body){
 
-        Optional<?> a = this.accountService.findByIdAndEmail(id, body.getEmail(), AccountType.USER);
+        Optional<?> a = this.accountService.findByIdAndEmail(id, email, AccountType.USER);
 
         if(a.isPresent()){
@@ -51,9 +52,10 @@
     }
 
-    @PostMapping(path = "/company/{id}")
+    @PostMapping(path = "/company/{id}/{email}")
     public CompanyResponseDTO editCompany(@PathVariable(name = "id") Long id,
+                                          @PathVariable(name = "email") String email,
                                           @RequestBody CompanyRegisterDTO body){
 
-        Optional<?> a = this.accountService.findByIdAndEmail(id, body.getEmail(), AccountType.COMPANY);
+        Optional<?> a = this.accountService.findByIdAndEmail(id, email, AccountType.COMPANY);
 
         if(a.isPresent()){
@@ -65,9 +67,10 @@
     }
 
-    @PostMapping(path = "/team/{id}")
+    @PostMapping(path = "/team/{id}/{email}")
     public TeamResponseDTO editTeam(@PathVariable(name = "id") Long id,
+                                    @PathVariable(name = "email") String email,
                                     @RequestBody TeamRegisterDTO body){
 
-        Optional<?> a = this.accountService.findByIdAndEmail(id, body.getEmail(), AccountType.TEAM);
+        Optional<?> a = this.accountService.findByIdAndEmail(id, email, AccountType.TEAM);
 
         if(a.isPresent()){
Index: src/main/java/it/finki/tinki/web/controller/AccountRegisterController.java
===================================================================
--- src/main/java/it/finki/tinki/web/controller/AccountRegisterController.java	(revision 8f1f460ab25fea06236bc61f6c6c2a7a15da2f73)
+++ src/main/java/it/finki/tinki/web/controller/AccountRegisterController.java	(revision a70db1a27a62efb3c6323fe66d6a06d71206b80f)
@@ -7,7 +7,5 @@
 import it.finki.tinki.model.dto.register.account.UserRegisterDTO;
 import it.finki.tinki.service.AccountService;
-import it.finki.tinki.service.MatchmakerService;
 import it.finki.tinki.service.SkillService;
-import it.finki.tinki.service.WorkService;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,12 +21,8 @@
     AccountService accountService;
     SkillService skillService;
-    WorkService workService;
-    MatchmakerService matchmakerService;
 
-    public AccountRegisterController(AccountService accountService, SkillService skillService, WorkService workService, MatchmakerService matchmakerService) {
+    public AccountRegisterController(AccountService accountService, SkillService skillService) {
         this.accountService = accountService;
         this.skillService = skillService;
-        this.workService = workService;
-        this.matchmakerService = matchmakerService;
     }
 
Index: src/main/java/it/finki/tinki/web/controller/LoginController.java
===================================================================
--- src/main/java/it/finki/tinki/web/controller/LoginController.java	(revision 8f1f460ab25fea06236bc61f6c6c2a7a15da2f73)
+++ src/main/java/it/finki/tinki/web/controller/LoginController.java	(revision a70db1a27a62efb3c6323fe66d6a06d71206b80f)
@@ -1,23 +1,11 @@
 package it.finki.tinki.web.controller;
 
-import it.finki.tinki.model.Work.Internship;
-import it.finki.tinki.model.Work.Job;
-import it.finki.tinki.model.Work.Project;
 import it.finki.tinki.model.Users.Account;
-import it.finki.tinki.model.Users.Company;
 import it.finki.tinki.model.Users.Team;
 import it.finki.tinki.model.Users.User;
 import it.finki.tinki.model.dto.*;
 import it.finki.tinki.model.dto.response.account.LoginResponseDTO;
-import it.finki.tinki.model.dto.response.account.CompanyResponseDTO;
-import it.finki.tinki.model.dto.response.account.TeamResponseDTO;
-import it.finki.tinki.model.dto.response.account.UserResponseDTO;
-import it.finki.tinki.model.dto.response.work.InternshipResponseDTO;
-import it.finki.tinki.model.dto.response.work.JobResponseDTO;
-import it.finki.tinki.model.dto.response.work.ProjectResponseDTO;
-import it.finki.tinki.model.enumerator.AccountType;
 import it.finki.tinki.service.AccountService;
 import it.finki.tinki.service.BuilderService;
-import it.finki.tinki.service.MatchmakerService;
 import it.finki.tinki.service.WorkService;
 import org.springframework.web.bind.annotation.*;
@@ -32,10 +20,8 @@
 
     AccountService accountService;
-    WorkService workService;
     BuilderService builderService;
 
-    public LoginController(AccountService accountService, WorkService workService, BuilderService builderService) {
+    public LoginController(AccountService accountService, BuilderService builderService) {
         this.accountService = accountService;
-        this.workService = workService;
         this.builderService = builderService;
     }
@@ -58,18 +44,3 @@
         return new LoginResponseDTO();
     }
-
-    @GetMapping(path = "/job/search")
-    public List<JobResponseDTO> jobRes(@RequestParam(name = "text") String text){
-        return this.workService.fullTextJobSearch(text);
-    }
-
-    @GetMapping(path = "/internship/search")
-    public List<InternshipResponseDTO> internshipRes(@RequestParam(name = "text") String text){
-        return this.workService.fullTextInternshipSearch(text);
-    }
-
-    @GetMapping(path = "/project/search")
-    public List<ProjectResponseDTO> projectRes(@RequestParam(name = "text") String text){
-        return this.workService.fullTextProjectSearch(text);
-    }
 }
Index: src/main/java/it/finki/tinki/web/controller/SearchController.java
===================================================================
--- src/main/java/it/finki/tinki/web/controller/SearchController.java	(revision a70db1a27a62efb3c6323fe66d6a06d71206b80f)
+++ src/main/java/it/finki/tinki/web/controller/SearchController.java	(revision a70db1a27a62efb3c6323fe66d6a06d71206b80f)
@@ -0,0 +1,36 @@
+package it.finki.tinki.web.controller;
+
+import it.finki.tinki.model.dto.response.work.InternshipResponseDTO;
+import it.finki.tinki.model.dto.response.work.JobResponseDTO;
+import it.finki.tinki.model.dto.response.work.ProjectResponseDTO;
+import it.finki.tinki.service.WorkService;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@CrossOrigin("http://localhost:3000")
+@RequestMapping("/api/search")
+public class SearchController {
+
+    WorkService workService;
+
+    public SearchController(WorkService workService) {
+        this.workService = workService;
+    }
+
+    @GetMapping(path = "/job")
+    public List<JobResponseDTO> jobRes(@RequestParam(name = "text") String text){
+        return this.workService.fullTextJobSearch(text);
+    }
+
+    @GetMapping(path = "/internship")
+    public List<InternshipResponseDTO> internshipRes(@RequestParam(name = "text") String text){
+        return this.workService.fullTextInternshipSearch(text);
+    }
+
+    @GetMapping(path = "/project")
+    public List<ProjectResponseDTO> projectRes(@RequestParam(name = "text") String text){
+        return this.workService.fullTextProjectSearch(text);
+    }
+}
Index: src/main/java/it/finki/tinki/web/controller/WorkEditController.java
===================================================================
--- src/main/java/it/finki/tinki/web/controller/WorkEditController.java	(revision 8f1f460ab25fea06236bc61f6c6c2a7a15da2f73)
+++ src/main/java/it/finki/tinki/web/controller/WorkEditController.java	(revision a70db1a27a62efb3c6323fe66d6a06d71206b80f)
@@ -14,4 +14,7 @@
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
+import java.util.Map;
+
 @RestController
 @CrossOrigin(origins = "http://localhost:3000")
@@ -26,34 +29,55 @@
 
     @PostMapping("/job/{id}")
-    public JobResponseDTO editJob(@PathVariable Long id,
-                                  @RequestBody JobRegisterDTO body){
+    public Map<String, String> editJob(@PathVariable Long id,
+                                       @RequestBody JobRegisterDTO body){
+
+        Map<String, String> response = new HashMap<>();
 
         if(body.getAccountId().equals(this.workService.getJobById(id).getAccount().getId())) {
             Job k = this.workService.editJob(id, body.getTitle(), body.getDescription(), body.getSalary());
-            return new JobResponseDTO(k);
+            if(k!=null){
+                response.put("success", "Job edited successfully!");
+                return response;
+            }
         }
-        return null;
+
+        response.put("error", "Internship edit failed!");
+        return response;
     }
 
     @PostMapping("/internship/{id}")
-    public InternshipResponseDTO editInternship(@PathVariable Long id,
+    public Map<String, String> editInternship(@PathVariable Long id,
                                                 @RequestBody InternshipRegisterDTO body){
+
+        Map<String, String> response = new HashMap<>();
 
         if(body.getAccountId().equals(this.workService.getInternshipById(id).getAccount().getId())){
             Internship k = this.workService.editInternship(id, body.getTitle(), body.getDescription(), body.getSalary(), body.getOpenSpots());
-            return new InternshipResponseDTO(k);
+            if(k!=null){
+                response.put("success", "Internship edited successfully!");
+                return response;
+            }
         }
-        return null;
+
+        response.put("error", "Internship edit failed!");
+        return response;
     }
 
     @PostMapping("/project/{id}")
-    public ProjectResponseDTO editProject(@PathVariable Long id,
+    public Map<String, String> editProject(@PathVariable Long id,
                                           @RequestBody ProjectRegisterDTO body){
+
+        Map<String, String> response = new HashMap<>();
 
         if(body.getAccountId().equals(this.workService.getProjectById(id).getAccount().getId())) {
             Project k = this.workService.editProject(id, body.getTitle(), body.getDescription(), body.getSalary());
-            return new ProjectResponseDTO(k);
+            if(k!=null){
+                response.put("success", "Project edited successfully!");
+                return response;
+            }
         }
-        return null;
+
+        response.put("error", "Project edit failed!");
+        return response;
     }
 }
Index: src/main/java/it/finki/tinki/web/controller/WorkRegisterController.java
===================================================================
--- src/main/java/it/finki/tinki/web/controller/WorkRegisterController.java	(revision 8f1f460ab25fea06236bc61f6c6c2a7a15da2f73)
+++ src/main/java/it/finki/tinki/web/controller/WorkRegisterController.java	(revision a70db1a27a62efb3c6323fe66d6a06d71206b80f)
@@ -1,4 +1,5 @@
 package it.finki.tinki.web.controller;
 
+import it.finki.tinki.model.Users.Account;
 import it.finki.tinki.model.Work.Internship;
 import it.finki.tinki.model.Work.Job;
@@ -10,4 +11,5 @@
 import it.finki.tinki.model.dto.response.work.JobResponseDTO;
 import it.finki.tinki.model.dto.response.work.ProjectResponseDTO;
+import it.finki.tinki.model.enumerator.AccountType;
 import it.finki.tinki.service.WorkService;
 import org.springframework.web.bind.annotation.*;
@@ -26,21 +28,35 @@
     @PostMapping("/job")
     public JobResponseDTO registerJob(@RequestBody JobRegisterDTO body){
-        Job j = this.workService.insertJob(body.getTitle(),
-                body.getDescription(), body.getAccountId(), body.getSalary(), body.getSkillsRequired(), body.getType());
-        return new JobResponseDTO(j);
+
+        if(body.getType() != AccountType.USER){
+            Job j = this.workService.insertJob(body.getTitle(),
+                    body.getDescription(), body.getAccountId(), body.getSalary(), body.getSkillsRequired(), body.getType());
+            return new JobResponseDTO(j);
+        }
+
+        return new JobResponseDTO();
     }
 
     @PostMapping("/internship")
     public InternshipResponseDTO registerInternship(@RequestBody InternshipRegisterDTO body){
-        Internship j = this.workService.insertInternship(body.getTitle(),
-                body.getDescription(), body.getAccountId(), body.getSalary(), body.getSkillsTrained(), body.getOpenSpots(), body.getType());
-        return new InternshipResponseDTO(j);
+        if(body.getType() == AccountType.COMPANY){
+            Internship j = this.workService.insertInternship(body.getTitle(),
+                    body.getDescription(), body.getAccountId(), body.getSalary(), body.getSkillsTrained(), body.getOpenSpots(), body.getType());
+            return new InternshipResponseDTO(j);
+        }
+
+        return new InternshipResponseDTO();
     }
 
     @PostMapping("/project")
     public ProjectResponseDTO registerProject(@RequestBody ProjectRegisterDTO body){
-        Project j = this.workService.insertProject(body.getTitle(),
-                body.getDescription(), body.getAccountId(), body.getSalary(), body.getSkillsRequired(), body.getValidUntil(), body.getType());
-        return new ProjectResponseDTO(j);
+
+        if(body.getType() == AccountType.TEAM){
+            Project j = this.workService.insertProject(body.getTitle(),
+                    body.getDescription(), body.getAccountId(), body.getSalary(), body.getSkillsRequired(), body.getValidUntil(), body.getType());
+            return new ProjectResponseDTO(j);
+        }
+
+        return new ProjectResponseDTO();
     }
 }
