Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/jwtDTO/JWTAuthenticationResponseDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/jwtDTO/JWTAuthenticationResponseDTO.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/jwtDTO/JWTAuthenticationResponseDTO.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -18,5 +18,5 @@
 ) {
 
-    public static JWTAuthenticationResponseDTO toCustomer(Customer customer, String jwt) {
+    public static JWTAuthenticationResponseDTO fromCustomer(Customer customer, String jwt) {
         return new JWTAuthenticationResponseDTO(
                 customer.getId(),
@@ -30,5 +30,5 @@
     }
 
-    public static JWTAuthenticationResponseDTO toLocalWorker(LocalWorker localWorker, String jwt) {
+    public static JWTAuthenticationResponseDTO fromLocalWorker(LocalWorker localWorker, String jwt) {
         return new JWTAuthenticationResponseDTO(
                 localWorker.getId(),
@@ -42,5 +42,5 @@
     }
 
-    public static JWTAuthenticationResponseDTO toLocalManager(LocalManager localManager, String jwt) {
+    public static JWTAuthenticationResponseDTO fromLocalManager(LocalManager localManager, String jwt) {
         return new JWTAuthenticationResponseDTO(
                 localManager.getId(),
@@ -54,5 +54,5 @@
     }
 
-    public static JWTAuthenticationResponseDTO toUser(User user, String jwt) {
+    public static JWTAuthenticationResponseDTO fromUser(User user, String jwt) {
         return new JWTAuthenticationResponseDTO(
                 user.getId(),
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/JWTAuthentication.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/JWTAuthentication.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,21 +1,0 @@
-package mk.ukim.finki.it.reservengo.model.domain;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import mk.ukim.finki.it.reservengo.model.enumerations.Role;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class JWTAuthentication {
-    private Long id;
-    private String firstName;
-    private String lastName;
-    private String email;
-    private String password;
-    private String phoneNumber;
-    private Role role;
-    private String token;
-
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/CustomerIdNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/CustomerIdNotFoundException.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/CustomerIdNotFoundException.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class CustomerIdNotFoundException extends RuntimeException {
+    public CustomerIdNotFoundException(Long id) {
+        super("Customer with id: " + id + " not found.");
+    }
+}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/CustomerNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/CustomerNotFoundException.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package mk.ukim.finki.it.reservengo.model.exceptions;
-
-public class CustomerNotFoundException extends RuntimeException {
-    public CustomerNotFoundException(Long id) {
-        super("Customer with: " + id + " was not found.");
-    }
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EmailNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EmailNotFoundException.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EmailNotFoundException.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -3,5 +3,5 @@
 public class EmailNotFoundException extends RuntimeException {
     public EmailNotFoundException(String username) {
-        super("User with email: " + username + " was not found");
+        super("User with email: " + username + " not found");
     }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/LocalIdNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/LocalIdNotFoundException.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/LocalIdNotFoundException.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -3,5 +3,5 @@
 public class LocalIdNotFoundException extends RuntimeException {
     public LocalIdNotFoundException(Long id) {
-        super("Local with ID " + id + " not found.");
+        super("Local with id: " + id + " not found.");
     }
 }
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/LocalNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/LocalNotFoundException.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package mk.ukim.finki.it.reservengo.model.exceptions;
-
-public class LocalNotFoundException extends RuntimeException{
-    public LocalNotFoundException(Long id) {
-        super("Local with: " + id + " was not found.");
-    }
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationIdNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationIdNotFoundException.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationIdNotFoundException.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class ReservationIdNotFoundException extends RuntimeException {
+    public ReservationIdNotFoundException(Long id) {
+        super("Reservation with id: " + id + " not found");
+    }
+}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationNotFoundException.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package mk.ukim.finki.it.reservengo.model.exceptions;
-
-public class ReservationNotFoundException extends RuntimeException {
-    public ReservationNotFoundException(Long id) {
-        super("Reservation with ID " + id + " was not found");
-    }
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/UserIdNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/UserIdNotFoundException.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/UserIdNotFoundException.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class UserIdNotFoundException extends RuntimeException {
+    public UserIdNotFoundException(Long id) {
+        super("User with id: " + id + " not found.");
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AuthServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AuthServiceImpl.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AuthServiceImpl.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -48,5 +48,5 @@
         String jwt = jwtService.generateToken(customer);
 
-        return JWTAuthenticationResponseDTO.toCustomer(customer, jwt);
+        return JWTAuthenticationResponseDTO.fromCustomer(customer, jwt);
     }
 
@@ -58,5 +58,5 @@
         String jwt = jwtService.generateToken(localWorker);
 
-        return JWTAuthenticationResponseDTO.toLocalWorker(localWorker, jwt);
+        return JWTAuthenticationResponseDTO.fromLocalWorker(localWorker, jwt);
     }
 
@@ -68,5 +68,5 @@
         String jwt = jwtService.generateToken(localManager);
 
-        return JWTAuthenticationResponseDTO.toLocalManager(localManager, jwt);
+        return JWTAuthenticationResponseDTO.fromLocalManager(localManager, jwt);
     }
 
@@ -78,5 +78,5 @@
         String jwt = jwtService.generateToken(user);
 
-        return JWTAuthenticationResponseDTO.toUser(user, jwt);
+        return JWTAuthenticationResponseDTO.fromUser(user, jwt);
     }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/CustomerServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/CustomerServiceImpl.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/CustomerServiceImpl.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -3,5 +3,5 @@
 import mk.ukim.finki.it.reservengo.model.domain.Customer;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
-import mk.ukim.finki.it.reservengo.model.exceptions.CustomerNotFoundException;
+import mk.ukim.finki.it.reservengo.model.exceptions.CustomerIdNotFoundException;
 import mk.ukim.finki.it.reservengo.repository.CustomerRepository;
 import mk.ukim.finki.it.reservengo.service.intf.CustomerService;
@@ -22,11 +22,6 @@
 
     @Override
-    public Customer getCustomerProfile(Long id) {
-        return customerRepository.findById(id).orElseThrow(() -> new CustomerNotFoundException(id));
-    }
-
-    @Override
     public List<Local> listFavouriteLocals(Long id) {
-        Customer customer = customerRepository.findById(id).orElseThrow(() -> new CustomerNotFoundException(id));
+        Customer customer = customerRepository.findById(id).orElseThrow(() -> new CustomerIdNotFoundException(id));
         return customer.getFavouriteLocals();
     }
@@ -34,5 +29,5 @@
     @Override
     public void addFavouriteLocal(Long userId, Long localId) {
-        Customer customer = customerRepository.findById(userId).orElseThrow(() -> new CustomerNotFoundException(userId));
+        Customer customer = customerRepository.findById(userId).orElseThrow(() -> new CustomerIdNotFoundException(userId));
         Local local = localService.getLocalById(localId);
 
@@ -46,5 +41,5 @@
     @Override
     public void removeFavouriteLocal(Long userId, Long localId) {
-        Customer customer = customerRepository.findById(userId).orElseThrow(() -> new CustomerNotFoundException(userId));
+        Customer customer = customerRepository.findById(userId).orElseThrow(() -> new CustomerIdNotFoundException(userId));
         Local local = localService.getLocalById(localId);
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -2,5 +2,5 @@
 
 import mk.ukim.finki.it.reservengo.model.domain.Local;
-import mk.ukim.finki.it.reservengo.model.exceptions.LocalNotFoundException;
+import mk.ukim.finki.it.reservengo.model.exceptions.LocalIdNotFoundException;
 import mk.ukim.finki.it.reservengo.repository.LocalRepository;
 import mk.ukim.finki.it.reservengo.service.intf.FileStorageService;
@@ -22,5 +22,5 @@
     @Override
     public void uploadLogo(Long localId, MultipartFile logoFile) {
-        Local local = localRepository.findById(localId).orElseThrow(() -> new LocalNotFoundException(localId));
+        Local local = localRepository.findById(localId).orElseThrow(() -> new LocalIdNotFoundException(localId));
 
         String logoPath = fileStorageService.saveFile(logoFile);
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -2,5 +2,5 @@
 
 import mk.ukim.finki.it.reservengo.model.domain.Reservation;
-import mk.ukim.finki.it.reservengo.model.exceptions.ReservationNotFoundException;
+import mk.ukim.finki.it.reservengo.model.exceptions.ReservationIdNotFoundException;
 import mk.ukim.finki.it.reservengo.repository.ReservationRepository;
 import mk.ukim.finki.it.reservengo.service.intf.ReservationService;
@@ -21,5 +21,5 @@
     @Override
     public Reservation getReservationById(Long id) {
-        return this.reservationRepository.findById(id).orElseThrow(() -> new ReservationNotFoundException(id));
+        return this.reservationRepository.findById(id).orElseThrow(() -> new ReservationIdNotFoundException(id));
     }
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/UserServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/UserServiceImpl.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/UserServiceImpl.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -3,5 +3,5 @@
 import mk.ukim.finki.it.reservengo.dto.userDTO.CreateUserDTO;
 import mk.ukim.finki.it.reservengo.model.domain.User;
-import mk.ukim.finki.it.reservengo.model.exceptions.CustomerNotFoundException;
+import mk.ukim.finki.it.reservengo.model.exceptions.UserIdNotFoundException;
 import mk.ukim.finki.it.reservengo.repository.UserRepository;
 import mk.ukim.finki.it.reservengo.service.intf.UserService;
@@ -22,10 +22,10 @@
     @Override
     public User findUser(Long userId) {
-        return userRepository.findById(userId).orElseThrow(() -> new CustomerNotFoundException(userId));
+        return userRepository.findById(userId).orElseThrow(() -> new UserIdNotFoundException(userId));
     }
 
     @Override
     public User editUserInfo(Long userId, CreateUserDTO createUserDTO) {
-        User user = findUser(userId);
+        User user = userRepository.findById(userId).orElseThrow(() -> new UserIdNotFoundException(userId));
         updateUserFromDto(user, createUserDTO);
         return userRepository.save(user);
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/CustomerService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/CustomerService.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/CustomerService.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.it.reservengo.service.intf;
 
-import mk.ukim.finki.it.reservengo.model.domain.Customer;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 
@@ -7,6 +6,4 @@
 
 public interface CustomerService {
-    Customer getCustomerProfile(Long id);
-
     List<Local> listFavouriteLocals(Long id);
 
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AdminController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AdminController.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package mk.ukim.finki.it.reservengo.web;
-
-import mk.ukim.finki.it.reservengo.dto.localDTO.CreateLocalDTO;
-import mk.ukim.finki.it.reservengo.service.intf.AdminService;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-@RestController
-@RequestMapping("/api/admin")
-@PreAuthorize("hasRole('ADMIN')")
-public class AdminController {
-
-    private final AdminService adminService;
-
-    public AdminController(AdminService adminService) {
-        this.adminService = adminService;
-    }
-
-    @PostMapping("/add")
-    public ResponseEntity<?> addLocal(@RequestBody CreateLocalDTO localDTO) {
-        adminService.addLocal(localDTO);
-        return ResponseEntity.ok().build();
-    }
-
-    @DeleteMapping("/delete/{id}")
-    public ResponseEntity<?> deleteLocal(@PathVariable Long id) {
-        adminService.deleteLocal(id);
-        return ResponseEntity.ok().build();
-    }
-}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AuthController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AuthController.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,42 +1,0 @@
-package mk.ukim.finki.it.reservengo.web;
-
-import mk.ukim.finki.it.reservengo.dto.jwtDTO.JWTAuthenticationRequestDTO;
-import mk.ukim.finki.it.reservengo.dto.jwtDTO.JWTAuthenticationResponseDTO;
-import mk.ukim.finki.it.reservengo.dto.jwtDTO.JWTLoginDTO;
-import mk.ukim.finki.it.reservengo.service.intf.AuthService;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@RequestMapping("/api/auth")
-public class AuthController {
-    private final AuthService authenticationService;
-
-    public AuthController(AuthService authenticationService) {
-        this.authenticationService = authenticationService;
-    }
-
-    @PostMapping(value = "/register/customer")
-    public ResponseEntity<JWTAuthenticationResponseDTO> registerCustomer(@RequestBody JWTAuthenticationRequestDTO jwtAuthenticationRequestDTO) {
-        return new ResponseEntity<>(authenticationService.registerCustomer(jwtAuthenticationRequestDTO), HttpStatus.CREATED);
-    }
-
-    @PostMapping("/register/local-worker")
-    public ResponseEntity<JWTAuthenticationResponseDTO> registerLocalWorker(@RequestBody JWTAuthenticationRequestDTO jwtAuthenticationRequestDTO) {
-        return new ResponseEntity<>(authenticationService.registerLocalWorker(jwtAuthenticationRequestDTO), HttpStatus.CREATED);
-    }
-
-    @PostMapping("/register/local-manager")
-    public ResponseEntity<JWTAuthenticationResponseDTO> registerLocalManager(@RequestBody JWTAuthenticationRequestDTO jwtAuthenticationRequestDTO) {
-        return new ResponseEntity<>(authenticationService.registerLocalManager(jwtAuthenticationRequestDTO), HttpStatus.CREATED);
-    }
-
-    @PostMapping("/login")
-    public ResponseEntity<JWTAuthenticationResponseDTO> login(@RequestBody JWTLoginDTO jwtLoginDTO) {
-        return new ResponseEntity<>(authenticationService.login(jwtLoginDTO), HttpStatus.OK);
-    }
-}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/CustomerController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/CustomerController.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,58 +1,0 @@
-package mk.ukim.finki.it.reservengo.web;
-
-import mk.ukim.finki.it.reservengo.model.domain.Customer;
-import mk.ukim.finki.it.reservengo.model.domain.Local;
-import mk.ukim.finki.it.reservengo.model.domain.Reservation;
-import mk.ukim.finki.it.reservengo.model.domain.User;
-import mk.ukim.finki.it.reservengo.service.intf.CustomerService;
-import mk.ukim.finki.it.reservengo.service.intf.ReservationService;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.security.core.annotation.AuthenticationPrincipal;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("/api/customer")
-@PreAuthorize("hasRole('CUSTOMER')")
-public class CustomerController {
-
-    private final CustomerService customerService;
-    private final ReservationService reservationService;
-
-    public CustomerController(CustomerService customerService, ReservationService reservationService) {
-        this.customerService = customerService;
-        this.reservationService = reservationService;
-    }
-
-    @GetMapping("/profile")
-    public ResponseEntity<?> getUserProfile(@AuthenticationPrincipal User user) {
-        Customer userProfile = customerService.getCustomerProfile(user.getId());
-        return ResponseEntity.ok(userProfile);
-    }
-
-    @GetMapping("/reservations")
-    public ResponseEntity<?> getCustomerReservations(@AuthenticationPrincipal User user) {
-        List<Reservation> customerReservations = reservationService.getCustomerReservations(user.getId());
-        return ResponseEntity.ok(customerReservations);
-    }
-
-    @GetMapping("/favourite-locals")
-    public ResponseEntity<?> listFavouriteLocals(@AuthenticationPrincipal User user) {
-        List<Local> favouriteLocals = customerService.listFavouriteLocals(user.getId());
-        return ResponseEntity.ok(favouriteLocals);
-    }
-
-    @PostMapping("/favourite-locals/add/{id}")
-    public ResponseEntity<?> addFavouriteLocal(@AuthenticationPrincipal User user, @PathVariable Long id) {
-        customerService.addFavouriteLocal(user.getId(), id);
-        return ResponseEntity.ok().build();
-    }
-
-    @PostMapping("/favourite-locals/remove/{id}")
-    public ResponseEntity<?> removeFavouriteLocal(@AuthenticationPrincipal User user, @PathVariable Long id) {
-        customerService.removeFavouriteLocal(user.getId(), id);
-        return ResponseEntity.ok().build();
-    }
-}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/GlobalExceptionHandler.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/GlobalExceptionHandler.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,29 +1,0 @@
-package mk.ukim.finki.it.reservengo.web;
-
-import mk.ukim.finki.it.reservengo.model.exceptions.EmailNotFoundException;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.authentication.BadCredentialsException;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-
-@RestControllerAdvice
-public class GlobalExceptionHandler {
-
-    @ExceptionHandler(BadCredentialsException.class)
-    public ResponseEntity<String> handleBadCredentials(BadCredentialsException ex) {
-        return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(ex.getMessage());
-    }
-
-    @ExceptionHandler(EmailNotFoundException.class)
-    public ResponseEntity<String> handleUserNotFound(EmailNotFoundException ex) {
-        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
-    }
-
-    @ExceptionHandler(AuthenticationException.class)
-    public ResponseEntity<String> handleUserNotFound(AuthenticationException ex) {
-        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
-    }
-}
-
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/LocalController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/LocalController.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,28 +1,0 @@
-package mk.ukim.finki.it.reservengo.web;
-
-import mk.ukim.finki.it.reservengo.model.domain.Local;
-import mk.ukim.finki.it.reservengo.service.intf.LocalService;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-@RestController
-@RequestMapping("/api/locals")
-public class LocalController {
-
-    private final LocalService localService;
-
-    public LocalController(LocalService localService) {
-        this.localService = localService;
-    }
-
-    @GetMapping
-    public ResponseEntity<?> getLocals() {
-        return ResponseEntity.ok(localService.listAll());
-    }
-
-    @GetMapping("/{id}")
-    public ResponseEntity<?> getLocalInformation(@PathVariable Long id) {
-        Local local = localService.getLocalById(id);
-        return ResponseEntity.ok(local);
-    }
-}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/LocalManagerController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/LocalManagerController.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package mk.ukim.finki.it.reservengo.web;
-
-import mk.ukim.finki.it.reservengo.service.intf.LocalManagerService;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-@RestController
-@RequestMapping("/api/local-manager")
-public class LocalManagerController {
-
-    private final LocalManagerService localManagerService;
-
-    public LocalManagerController(LocalManagerService localManagerService) {
-        this.localManagerService = localManagerService;
-    }
-
-    @PostMapping("/{localId}/upload-logo")
-    public ResponseEntity<?> uploadLogo(@PathVariable Long localId,
-                                        @RequestParam("logo") MultipartFile logoFile) {
-        localManagerService.uploadLogo(localId, logoFile);
-        return ResponseEntity.ok().build();
-    }
-    //TODO implement delete logo
-    @PostMapping("/{localId}/upload-photos")
-    //TODO implement this next
-    public ResponseEntity<?> uploadPhotos(@PathVariable Long localId) {
-        return ResponseEntity.ok().build();
-    }
-
-}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/ReservationController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/ReservationController.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,33 +1,0 @@
-package mk.ukim.finki.it.reservengo.web;
-
-import mk.ukim.finki.it.reservengo.model.domain.Reservation;
-import mk.ukim.finki.it.reservengo.model.enumerations.ReservationStatus;
-import mk.ukim.finki.it.reservengo.service.intf.ReservationService;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-@RestController
-@RequestMapping("/api/reservations")
-public class ReservationController {
-    private final ReservationService reservationService;
-
-    public ReservationController(ReservationService reservationService) {
-        this.reservationService = reservationService;
-    }
-
-    //TODO RE-EVALUATE RESERVATIONS ARCHITECTURE
-
-    @GetMapping("/{id}")
-    public ResponseEntity<?> getReservationInformation(@PathVariable Long id) {
-        Reservation reservation = reservationService.getReservationById(id);
-        return ResponseEntity.ok(reservation);
-    }
-
-    @PostMapping("/{id}/status")
-    public ResponseEntity<?> updateReservationStatus(@PathVariable Long id, @RequestParam ReservationStatus status) {
-        Reservation reservation = reservationService.getReservationById(id);
-        reservation.setStatus(status);
-        return ResponseEntity.ok(reservation);
-    }
-
-}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/UserController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/UserController.java	(revision 349551d7d42f23a4339ba379525c62a41d7546ad)
+++ 	(revision )
@@ -1,32 +1,0 @@
-package mk.ukim.finki.it.reservengo.web;
-
-import mk.ukim.finki.it.reservengo.dto.userDTO.CreateUserDTO;
-import mk.ukim.finki.it.reservengo.model.domain.User;
-import mk.ukim.finki.it.reservengo.service.intf.UserService;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.core.annotation.AuthenticationPrincipal;
-import org.springframework.web.bind.annotation.*;
-
-
-@RestController
-@RequestMapping("/api/user")
-public class UserController {
-
-    private final UserService userService;
-
-    public UserController(UserService userService) {
-        this.userService = userService;
-    }
-
-    @GetMapping("/info")
-    public ResponseEntity<?> getUserPersonalInfo(@AuthenticationPrincipal User user) {
-        User u = userService.findUser(user.getId());
-        return ResponseEntity.ok(u);
-    }
-
-    @PutMapping("/{userId}/edit-info")
-    public ResponseEntity<?> editPersonalInfo(@PathVariable Long userId, @RequestBody CreateUserDTO createUserDTO) {
-        User user = userService.editUserInfo(userId, createUserDTO);
-        return ResponseEntity.ok(user);
-    }
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/advice/GlobalExceptionHandler.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/advice/GlobalExceptionHandler.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/advice/GlobalExceptionHandler.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,49 @@
+package mk.ukim.finki.it.reservengo.web.advice;
+
+import mk.ukim.finki.it.reservengo.model.exceptions.*;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+@RestControllerAdvice
+public class GlobalExceptionHandler {
+
+    @ExceptionHandler(BadCredentialsException.class)
+    public ResponseEntity<String> handleBadCredentials(BadCredentialsException ex) {
+        return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(EmailNotFoundException.class)
+    public ResponseEntity<String> handleEmailNotFound(EmailNotFoundException ex) {
+        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(AuthenticationException.class)
+    public ResponseEntity<String> handleAuthenticationError(AuthenticationException ex) {
+        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(UserIdNotFoundException.class)
+    public ResponseEntity<String> handleUserIdNotFound(UserIdNotFoundException ex) {
+        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(LocalIdNotFoundException.class)
+    public ResponseEntity<String> handleLocalIdNotFound(LocalIdNotFoundException ex) {
+        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(CustomerIdNotFoundException.class)
+    public ResponseEntity<String> handleCustomerIdNotFound(CustomerIdNotFoundException ex) {
+        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
+    }
+
+    @ExceptionHandler(ReservationIdNotFoundException.class)
+    public ResponseEntity<String> handleReservationIdNotFound(ReservationIdNotFoundException ex) {
+        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
+    }
+}
+
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/AdminController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/AdminController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/AdminController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,31 @@
+package mk.ukim.finki.it.reservengo.web.controller;
+
+import mk.ukim.finki.it.reservengo.dto.localDTO.CreateLocalDTO;
+import mk.ukim.finki.it.reservengo.service.intf.AdminService;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/api/admin")
+@PreAuthorize("hasRole('ADMIN')")
+public class AdminController {
+
+    private final AdminService adminService;
+
+    public AdminController(AdminService adminService) {
+        this.adminService = adminService;
+    }
+
+    @PostMapping("/add")
+    public ResponseEntity<?> addLocal(@RequestBody CreateLocalDTO localDTO) {
+        adminService.addLocal(localDTO);
+        return ResponseEntity.ok().build();
+    }
+
+    @DeleteMapping("/delete/{id}")
+    public ResponseEntity<?> deleteLocal(@PathVariable Long id) {
+        adminService.deleteLocal(id);
+        return ResponseEntity.ok().build();
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/AuthController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/AuthController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/AuthController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,42 @@
+package mk.ukim.finki.it.reservengo.web.controller;
+
+import mk.ukim.finki.it.reservengo.dto.jwtDTO.JWTAuthenticationRequestDTO;
+import mk.ukim.finki.it.reservengo.dto.jwtDTO.JWTAuthenticationResponseDTO;
+import mk.ukim.finki.it.reservengo.dto.jwtDTO.JWTLoginDTO;
+import mk.ukim.finki.it.reservengo.service.intf.AuthService;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/api/auth")
+public class AuthController {
+    private final AuthService authenticationService;
+
+    public AuthController(AuthService authenticationService) {
+        this.authenticationService = authenticationService;
+    }
+
+    @PostMapping(value = "/register/customer")
+    public ResponseEntity<JWTAuthenticationResponseDTO> registerCustomer(@RequestBody JWTAuthenticationRequestDTO jwtAuthenticationRequestDTO) {
+        return new ResponseEntity<>(authenticationService.registerCustomer(jwtAuthenticationRequestDTO), HttpStatus.CREATED);
+    }
+
+    @PostMapping("/register/local-worker")
+    public ResponseEntity<JWTAuthenticationResponseDTO> registerLocalWorker(@RequestBody JWTAuthenticationRequestDTO jwtAuthenticationRequestDTO) {
+        return new ResponseEntity<>(authenticationService.registerLocalWorker(jwtAuthenticationRequestDTO), HttpStatus.CREATED);
+    }
+
+    @PostMapping("/register/local-manager")
+    public ResponseEntity<JWTAuthenticationResponseDTO> registerLocalManager(@RequestBody JWTAuthenticationRequestDTO jwtAuthenticationRequestDTO) {
+        return new ResponseEntity<>(authenticationService.registerLocalManager(jwtAuthenticationRequestDTO), HttpStatus.CREATED);
+    }
+
+    @PostMapping("/login")
+    public ResponseEntity<JWTAuthenticationResponseDTO> login(@RequestBody JWTLoginDTO jwtLoginDTO) {
+        return new ResponseEntity<>(authenticationService.login(jwtLoginDTO), HttpStatus.OK);
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/CustomerController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/CustomerController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/CustomerController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,51 @@
+package mk.ukim.finki.it.reservengo.web.controller;
+
+import mk.ukim.finki.it.reservengo.model.domain.Local;
+import mk.ukim.finki.it.reservengo.model.domain.Reservation;
+import mk.ukim.finki.it.reservengo.model.domain.User;
+import mk.ukim.finki.it.reservengo.service.intf.CustomerService;
+import mk.ukim.finki.it.reservengo.service.intf.ReservationService;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/api/customer")
+@PreAuthorize("hasRole('CUSTOMER')")
+public class CustomerController {
+
+    private final CustomerService customerService;
+    private final ReservationService reservationService;
+
+    public CustomerController(CustomerService customerService, ReservationService reservationService) {
+        this.customerService = customerService;
+        this.reservationService = reservationService;
+    }
+
+    @GetMapping("/reservations")
+    public ResponseEntity<?> getCustomerReservations(@AuthenticationPrincipal User user) {
+        List<Reservation> customerReservations = reservationService.getCustomerReservations(user.getId());
+        return ResponseEntity.ok(customerReservations);
+    }
+
+    @GetMapping("/favourite-locals")
+    public ResponseEntity<?> listFavouriteLocals(@AuthenticationPrincipal User user) {
+        List<Local> favouriteLocals = customerService.listFavouriteLocals(user.getId());
+        return ResponseEntity.ok(favouriteLocals);
+    }
+
+    @PostMapping("/favourite-locals/add/{id}")
+    public ResponseEntity<?> addFavouriteLocal(@AuthenticationPrincipal User user, @PathVariable Long id) {
+        customerService.addFavouriteLocal(user.getId(), id);
+        return ResponseEntity.ok().build();
+    }
+
+    @PostMapping("/favourite-locals/remove/{id}")
+    public ResponseEntity<?> removeFavouriteLocal(@AuthenticationPrincipal User user, @PathVariable Long id) {
+        customerService.removeFavouriteLocal(user.getId(), id);
+        return ResponseEntity.ok().build();
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,28 @@
+package mk.ukim.finki.it.reservengo.web.controller;
+
+import mk.ukim.finki.it.reservengo.model.domain.Local;
+import mk.ukim.finki.it.reservengo.service.intf.LocalService;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/api/locals")
+public class LocalController {
+
+    private final LocalService localService;
+
+    public LocalController(LocalService localService) {
+        this.localService = localService;
+    }
+
+    @GetMapping
+    public ResponseEntity<?> getLocals() {
+        return ResponseEntity.ok(localService.listAll());
+    }
+
+    @GetMapping("/{id}")
+    public ResponseEntity<?> getLocalInformation(@PathVariable Long id) {
+        Local local = localService.getLocalById(id);
+        return ResponseEntity.ok(local);
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalManagerController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalManagerController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalManagerController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,31 @@
+package mk.ukim.finki.it.reservengo.web.controller;
+
+import mk.ukim.finki.it.reservengo.service.intf.LocalManagerService;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+@RestController
+@RequestMapping("/api/local-manager")
+public class LocalManagerController {
+
+    private final LocalManagerService localManagerService;
+
+    public LocalManagerController(LocalManagerService localManagerService) {
+        this.localManagerService = localManagerService;
+    }
+
+    @PostMapping("/{localId}/upload-logo")
+    public ResponseEntity<?> uploadLogo(@PathVariable Long localId,
+                                        @RequestParam("logo") MultipartFile logoFile) {
+        localManagerService.uploadLogo(localId, logoFile);
+        return ResponseEntity.ok().build();
+    }
+    //TODO implement delete logo
+    @PostMapping("/{localId}/upload-photos")
+    //TODO implement this next
+    public ResponseEntity<?> uploadPhotos(@PathVariable Long localId) {
+        return ResponseEntity.ok().build();
+    }
+
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/ReservationController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/ReservationController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/ReservationController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,33 @@
+package mk.ukim.finki.it.reservengo.web.controller;
+
+import mk.ukim.finki.it.reservengo.model.domain.Reservation;
+import mk.ukim.finki.it.reservengo.model.enumerations.ReservationStatus;
+import mk.ukim.finki.it.reservengo.service.intf.ReservationService;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/api/reservations")
+public class ReservationController {
+    private final ReservationService reservationService;
+
+    public ReservationController(ReservationService reservationService) {
+        this.reservationService = reservationService;
+    }
+
+    //TODO RE-EVALUATE RESERVATIONS ARCHITECTURE
+
+    @GetMapping("/{id}")
+    public ResponseEntity<?> getReservationInformation(@PathVariable Long id) {
+        Reservation reservation = reservationService.getReservationById(id);
+        return ResponseEntity.ok(reservation);
+    }
+
+    @PostMapping("/{id}/status")
+    public ResponseEntity<?> updateReservationStatus(@PathVariable Long id, @RequestParam ReservationStatus status) {
+        Reservation reservation = reservationService.getReservationById(id);
+        reservation.setStatus(status);
+        return ResponseEntity.ok(reservation);
+    }
+
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/UserController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/UserController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/UserController.java	(revision b77dbe862ac0d2501370f3d80f1b5a2445edcedf)
@@ -0,0 +1,31 @@
+package mk.ukim.finki.it.reservengo.web.controller;
+
+import mk.ukim.finki.it.reservengo.dto.userDTO.CreateUserDTO;
+import mk.ukim.finki.it.reservengo.model.domain.User;
+import mk.ukim.finki.it.reservengo.service.intf.UserService;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.*;
+
+
+@RestController
+@RequestMapping("/api/user")
+public class UserController {
+
+    private final UserService userService;
+
+    public UserController(UserService userService) {
+        this.userService = userService;
+    }
+
+    @GetMapping("/profile")
+    public ResponseEntity<?> getProfile(@AuthenticationPrincipal User user) {
+        User u = userService.findUser(user.getId());
+        return ResponseEntity.ok(u);
+    }
+
+    @PutMapping("/edit")
+    public ResponseEntity<?> editProfile(@AuthenticationPrincipal User user, @RequestBody CreateUserDTO createUserDTO) {
+        return ResponseEntity.ok(userService.editUserInfo(user.getId(), createUserDTO));
+    }
+}
