Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/bootstrap/DataHolder.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/bootstrap/DataHolder.java	(revision ff641e1ec407eec2b9e087c17997051078cfd90e)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/bootstrap/DataHolder.java	(revision 34aa6cc1a466efb154a3ab16d2cdd99c3d9f50e4)
@@ -40,5 +40,5 @@
     public void init() {
         // Admin
-        admin = new Admin("admin", passwordEncoder.encode("admin"), Role.ADMIN);
+        admin = new Admin("admin", passwordEncoder.encode("admin"), Role.ROLE_ADMIN);
         adminRepository.save(admin);
 
@@ -51,5 +51,5 @@
                     passwordEncoder.encode("password" + i),
                     "Phone" + i,
-                    Role.CUSTOMER
+                    Role.ROLE_CUSTOMER
             );
             customers.add(customer);
@@ -65,5 +65,5 @@
                     "Password" + i,
                     "PhoneNumber" + i,
-                    Role.LOCAL_WORKER
+                    Role.ROLE_LOCAL_WORKER
             );
             workers.add(localWorker);
@@ -79,5 +79,5 @@
                     "Password" + i,
                     "PhoneNumber" + i,
-                    Role.LOCAL_MANAGER
+                    Role.ROLE_LOCAL_MANAGER
             );
             managers.add(manager);
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/WebSecurityConfig.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/WebSecurityConfig.java	(revision ff641e1ec407eec2b9e087c17997051078cfd90e)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/WebSecurityConfig.java	(revision 34aa6cc1a466efb154a3ab16d2cdd99c3d9f50e4)
@@ -2,4 +2,5 @@
 
 import mk.ukim.finki.it.reservengo.config.filter.JWTAuthenticationFilter;
+import mk.ukim.finki.it.reservengo.model.enumerations.Role;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -41,4 +42,5 @@
                                 "/favicon.ico")
                         .permitAll()
+                        .requestMatchers("/api/customer/**").hasRole("CUSTOMER")
                         .anyRequest()
                         .authenticated()
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/RegisterRequest.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/RegisterRequest.java	(revision ff641e1ec407eec2b9e087c17997051078cfd90e)
+++ 	(revision )
@@ -1,74 +1,0 @@
-package mk.ukim.finki.it.reservengo.model;
-
-import mk.ukim.finki.it.reservengo.model.enumerations.Role;
-
-public class RegisterRequest {
-    private String firstName;
-    private String lastName;
-    private String email;
-    private String password;
-    private String phoneNumber;
-    private Role role;
-
-    // Constructors
-    public RegisterRequest() {
-    }
-
-    public RegisterRequest(String firstName, String lastName, String email, String password, String phoneNumber, Role role) {
-        this.firstName = firstName;
-        this.lastName = lastName;
-        this.email = email;
-        this.password = password;
-        this.phoneNumber = phoneNumber;
-        this.role = role;
-    }
-
-    // Getters and Setters
-    public String getFirstName() {
-        return firstName;
-    }
-
-    public void setFirstName(String firstName) {
-        this.firstName = firstName;
-    }
-
-    public String getLastName() {
-        return lastName;
-    }
-
-    public void setLastName(String lastName) {
-        this.lastName = lastName;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public void setEmail(String email) {
-        this.email = email;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public void setPassword(String password) {
-        this.password = password;
-    }
-
-    public String getPhoneNumber() {
-        return phoneNumber;
-    }
-
-    public void setPhoneNumber(String phoneNumber) {
-        this.phoneNumber = phoneNumber;
-    }
-
-    public Role getRole() {
-        return role;
-    }
-
-    public void setRole(Role role) {
-        this.role = role;
-    }
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/Role.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/Role.java	(revision ff641e1ec407eec2b9e087c17997051078cfd90e)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/Role.java	(revision 34aa6cc1a466efb154a3ab16d2cdd99c3d9f50e4)
@@ -2,7 +2,7 @@
 
 public enum Role {
-    ADMIN,
-    CUSTOMER,
-    LOCAL_MANAGER,
-    LOCAL_WORKER
+    ROLE_ADMIN,
+    ROLE_CUSTOMER,
+    ROLE_LOCAL_MANAGER,
+    ROLE_LOCAL_WORKER
 }
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 ff641e1ec407eec2b9e087c17997051078cfd90e)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AuthServiceImpl.java	(revision 34aa6cc1a466efb154a3ab16d2cdd99c3d9f50e4)
@@ -37,5 +37,5 @@
     @Override
     public JWTAuthenticationResponse registerCustomer(String firstName, String lastName, String email, String password, String phoneNumber) {
-        Customer customer = new Customer(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.CUSTOMER);
+        Customer customer = new Customer(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.ROLE_CUSTOMER);
         customerRepository.save(customer);
         String jwt = jwtService.generateTokenNoClaims(customer);
@@ -50,5 +50,5 @@
                 customer.getEmail(),
                 customer.getPhoneNumber(),
-                Role.CUSTOMER,
+                Role.ROLE_CUSTOMER,
                 jwt);
     }
@@ -56,5 +56,5 @@
     @Override
     public JWTAuthenticationResponse registerLocalWorker(String firstName, String lastName, String email, String password, String phoneNumber) {
-        LocalWorker localWorker = new LocalWorker(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.LOCAL_WORKER);
+        LocalWorker localWorker = new LocalWorker(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.ROLE_LOCAL_WORKER);
         localWorkerRepository.save(localWorker);
         String jwt = jwtService.generateTokenNoClaims(localWorker);
@@ -66,5 +66,5 @@
                 localWorker.getEmail(),
                 localWorker.getPhoneNumber(),
-                Role.LOCAL_WORKER,
+                Role.ROLE_LOCAL_WORKER,
                 jwt);
     }
@@ -72,5 +72,5 @@
     @Override
     public JWTAuthenticationResponse registerLocalManager(String firstName, String lastName, String email, String password, String phoneNumber) {
-        LocalManager localManager = new LocalManager(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.LOCAL_MANAGER);
+        LocalManager localManager = new LocalManager(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.ROLE_LOCAL_MANAGER);
         localManagerRepository.save(localManager);
         String jwt = jwtService.generateTokenNoClaims(localManager);
@@ -82,5 +82,5 @@
                 localManager.getEmail(),
                 localManager.getPhoneNumber(),
-                Role.LOCAL_MANAGER,
+                Role.ROLE_LOCAL_MANAGER,
                 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 ff641e1ec407eec2b9e087c17997051078cfd90e)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/CustomerServiceImpl.java	(revision 34aa6cc1a466efb154a3ab16d2cdd99c3d9f50e4)
@@ -1,8 +1,20 @@
 package mk.ukim.finki.it.reservengo.service.impl;
 
-import mk.ukim.finki.it.reservengo.service.intf.AdminService;
+import mk.ukim.finki.it.reservengo.model.Customer;
+import mk.ukim.finki.it.reservengo.repository.CustomerRepository;
+import mk.ukim.finki.it.reservengo.service.intf.CustomerService;
 import org.springframework.stereotype.Service;
 
 @Service
-public class CustomerServiceImpl implements AdminService {
+public class CustomerServiceImpl implements CustomerService {
+    private final CustomerRepository customerRepository;
+
+    public CustomerServiceImpl(CustomerRepository customerRepository) {
+        this.customerRepository = customerRepository;
+    }
+
+    @Override
+    public Customer getCustomerProfile(Long id) {
+        return customerRepository.findById(id).orElseThrow(RuntimeException::new);
+    }
 }
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 ff641e1ec407eec2b9e087c17997051078cfd90e)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/CustomerService.java	(revision 34aa6cc1a466efb154a3ab16d2cdd99c3d9f50e4)
@@ -1,4 +1,7 @@
 package mk.ukim.finki.it.reservengo.service.intf;
 
+import mk.ukim.finki.it.reservengo.model.Customer;
+
 public interface CustomerService {
+    Customer getCustomerProfile(Long id);
 }
Index: ReserveNGo-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 ff641e1ec407eec2b9e087c17997051078cfd90e)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AuthController.java	(revision 34aa6cc1a466efb154a3ab16d2cdd99c3d9f50e4)
@@ -2,5 +2,4 @@
 
 import mk.ukim.finki.it.reservengo.model.JWTAuthenticationResponse;
-import mk.ukim.finki.it.reservengo.model.RegisterRequest;
 import mk.ukim.finki.it.reservengo.service.intf.AuthService;
 import org.springframework.http.HttpStatus;
Index: ReserveNGo-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 34aa6cc1a466efb154a3ab16d2cdd99c3d9f50e4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/CustomerController.java	(revision 34aa6cc1a466efb154a3ab16d2cdd99c3d9f50e4)
@@ -0,0 +1,35 @@
+package mk.ukim.finki.it.reservengo.web;
+
+import mk.ukim.finki.it.reservengo.model.Customer;
+import mk.ukim.finki.it.reservengo.model.User;
+import mk.ukim.finki.it.reservengo.service.intf.CustomerService;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/api/customer")
+@CrossOrigin(origins = "*")
+public class CustomerController {
+
+    private final CustomerService customerService;
+
+    public CustomerController(CustomerService customerService) {
+        this.customerService = customerService;
+    }
+
+    @GetMapping
+    public ResponseEntity<?> getCustomer() {
+        return ResponseEntity.ok("ok");
+    }
+
+    @GetMapping("/profile")
+    public ResponseEntity<?> getUserProfile(@AuthenticationPrincipal User user) {
+        System.out.println(user.getId());
+        Customer userProfile = customerService.getCustomerProfile(user.getId());
+        return ResponseEntity.ok(userProfile);
+    }
+}
