Index: ReserveNGo-backend/pom.xml
===================================================================
--- ReserveNGo-backend/pom.xml	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/pom.xml	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -34,5 +34,6 @@
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
-            <optional>true</optional>
+            <version>1.18.30</version>
+            <scope>provided</scope>
         </dependency>
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/ApplicationConfig.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/ApplicationConfig.java	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/ApplicationConfig.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -23,7 +23,6 @@
 
     @Bean
-    PasswordEncoder passwordEncoder() {
+    public PasswordEncoder passwordEncoder() {
         return new BCryptPasswordEncoder(10);
-
     }
 
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 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/WebSecurityConfig.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -19,5 +19,4 @@
 public class WebSecurityConfig {
 
-
     private final JWTAuthenticationFilter jwtAuthFilter;
     private final AuthenticationProvider authenticationProvider;
@@ -36,5 +35,5 @@
                 )
                 .authorizeHttpRequests((requests) -> requests
-                        .requestMatchers("/api/auth/**", "/h2/**")
+                        .requestMatchers("/api/auth/**", "/h2/**","/api/locals")
                         .permitAll()
                         .anyRequest()
@@ -51,9 +50,7 @@
                 )
                 .authenticationProvider(authenticationProvider)
-                .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class)
-        ;
+                .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class);
 
         return http.build();
     }
-
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/filter/JWTAuthenticationFilter.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/filter/JWTAuthenticationFilter.java	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/filter/JWTAuthenticationFilter.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -39,6 +39,8 @@
             return;
         }
+
         jwt = authHeader.substring(7);
         userEmail = jwtService.extractUsername(jwt);
+
         if (userEmail != null && SecurityContextHolder.getContext().getAuthentication() == null) {
             UserDetails userDetails = userDetailsService.loadUserByUsername(userEmail);
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Admin.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Admin.java	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Admin.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -4,10 +4,11 @@
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import mk.ukim.finki.it.reservengo.model.enumerations.Role;
 
+@EqualsAndHashCode(callSuper = true)
 @Data
 @Entity
-@AllArgsConstructor
 @NoArgsConstructor
 public class Admin extends User {
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Customer.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Customer.java	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Customer.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -19,10 +19,5 @@
 @NoArgsConstructor
 public class Customer extends User {
-    public Customer(String firstName,
-                    String lastName,
-                    String email,
-                    String password,
-                    String phoneNumber,
-                    Role userRole) {
+    public Customer(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) {
         super(firstName, lastName, email, password, phoneNumber, userRole);
     }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/JWTAuthenticationResponse.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/JWTAuthenticationResponse.java	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/JWTAuthenticationResponse.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -7,5 +7,5 @@
 
 @Data
-//@AllArgsConstructor
+@AllArgsConstructor
 @NoArgsConstructor
 public class JWTAuthenticationResponse {
@@ -14,18 +14,6 @@
     private String lastName;
     private String email;
-    private String password;
     private String phoneNumber;
     private Role role;
     private String token;
-
-
-    public JWTAuthenticationResponse(Long id, String firstName, String lastName, String email, String phoneNumber, Role role, String token) {
-        this.id = id;
-        this.firstName = firstName;
-        this.lastName = lastName;
-        this.email = email;
-        this.phoneNumber = phoneNumber;
-        this.role = role;
-        this.token = token;
-    }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/LocalManager.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/LocalManager.java	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/LocalManager.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -12,7 +12,6 @@
 @Data
 @Entity
-@AllArgsConstructor
 @NoArgsConstructor
-public class LocalManager extends LocalWorker{
+public class LocalManager extends LocalWorker {
     public LocalManager(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) {
         super(firstName, lastName, email, password, phoneNumber, userRole);
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/User.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/User.java	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/User.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -14,5 +14,5 @@
 import java.util.List;
 
-//@Data
+@Data
 @Entity
 @AllArgsConstructor
@@ -30,7 +30,4 @@
     }
 
-
-
-    @Getter
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -86,39 +83,39 @@
     }
 
-    public Long getId() {
-        return id;
-    }
+//    public Long getId() {
+//        return id;
+//    }
+//
+//    public String getFirstName() {
+//        return firstName;
+//    }
+//
+//    public String getLastName() {
+//        return lastName;
+//    }
+//
+//    public String getEmail() {
+//        return email;
+//    }
+//
+//    public String getPhoneNumber() {
+//        return phoneNumber;
+//    }
+//
+//    public Role getUserRole() {
+//        return userRole;
+//    }
 
-    public String getFirstName() {
-        return firstName;
-    }
-
-    public String getLastName() {
-        return lastName;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public String getPhoneNumber() {
-        return phoneNumber;
-    }
-
-    public Role getUserRole() {
-        return userRole;
-    }
-
-    @Override
-    public String toString() {
-        return "User{" +
-                "id=" + id +
-                ", firstName='" + firstName + '\'' +
-                ", lastName='" + lastName + '\'' +
-                ", email='" + email + '\'' +
-                ", password='" + password + '\'' +
-                ", phoneNumber='" + phoneNumber + '\'' +
-                ", userRole=" + userRole +
-                '}';
-    }
+//    @Override
+//    public String toString() {
+//        return "User{" +
+//                "id=" + id +
+//                ", firstName='" + firstName + '\'' +
+//                ", lastName='" + lastName + '\'' +
+//                ", email='" + email + '\'' +
+//                ", password='" + password + '\'' +
+//                ", phoneNumber='" + phoneNumber + '\'' +
+//                ", userRole=" + userRole +
+//                '}';
+//    }
 }
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 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AuthServiceImpl.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -39,14 +39,15 @@
         Customer customer = new Customer(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.CUSTOMER);
         customerRepository.save(customer);
-        Customer customer1 = customerRepository.findByEmail(email).orElseThrow(() -> new EmailNotFoundException(email));
         String jwt = jwtService.generateTokenNoClaims(customer);
+
         System.out.println(jwt);
-        System.out.println(customer1);
+        System.out.println(customer);
+
         return new JWTAuthenticationResponse(
-                customer1.getId(),
-                customer1.getFirstName(),
-                customer1.getLastName(),
-                customer1.getEmail(),
-                customer1.getPhoneNumber(),
+                customer.getId(),
+                customer.getFirstName(),
+                customer.getLastName(),
+                customer.getEmail(),
+                customer.getPhoneNumber(),
                 Role.CUSTOMER,
                 jwt);
@@ -57,13 +58,12 @@
         LocalWorker localWorker = new LocalWorker(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.LOCAL_WORKER);
         localWorkerRepository.save(localWorker);
-        LocalWorker localWorker1 = localWorkerRepository.findByEmail(email).orElseThrow(() -> new EmailNotFoundException(email));
         String jwt = jwtService.generateTokenNoClaims(localWorker);
 
         return new JWTAuthenticationResponse(
-                localWorker1.getId(),
-                localWorker1.getFirstName(),
-                localWorker1.getLastName(),
-                localWorker1.getEmail(),
-                localWorker1.getPhoneNumber(),
+                localWorker.getId(),
+                localWorker.getFirstName(),
+                localWorker.getLastName(),
+                localWorker.getEmail(),
+                localWorker.getPhoneNumber(),
                 Role.LOCAL_WORKER,
                 jwt);
@@ -74,13 +74,12 @@
         LocalManager localManager = new LocalManager(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.LOCAL_MANAGER);
         localManagerRepository.save(localManager);
-        LocalManager localManager1 = localManagerRepository.findByEmail(email).orElseThrow(() -> new EmailNotFoundException(email));
         String jwt = jwtService.generateTokenNoClaims(localManager);
 
         return new JWTAuthenticationResponse(
-                localManager1.getId(),
-                localManager1.getFirstName(),
-                localManager1.getLastName(),
-                localManager1.getEmail(),
-                localManager1.getPhoneNumber(),
+                localManager.getId(),
+                localManager.getFirstName(),
+                localManager.getLastName(),
+                localManager.getEmail(),
+                localManager.getPhoneNumber(),
                 Role.LOCAL_MANAGER,
                 jwt);
@@ -89,9 +88,11 @@
     @Override
     public JWTAuthenticationResponse login(String email, String password) {
-        authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(email,password));
+        authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(email, password));
         User user = userRepository.findByEmail(email).orElseThrow(() -> new EmailNotFoundException(email));
         String jwt = jwtService.generateTokenNoClaims(user);
+
         System.out.println(jwt);
         System.out.println(user);
+
         return new JWTAuthenticationResponse(
                 user.getId(),
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -1,8 +1,26 @@
 package mk.ukim.finki.it.reservengo.service.impl;
 
+import mk.ukim.finki.it.reservengo.model.Local;
+import mk.ukim.finki.it.reservengo.repository.LocalRepository;
 import mk.ukim.finki.it.reservengo.service.intf.LocalService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class LocalServiceImpl implements LocalService {
+
+    private final LocalRepository localRepository;
+
+    public LocalServiceImpl(LocalRepository localRepository) {
+        this.localRepository = localRepository;
+    }
+
+    @Override
+    public List<Local> listAll() {
+        return localRepository.findAll();
+    }
+
+    
+
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java	(revision 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -1,4 +1,9 @@
 package mk.ukim.finki.it.reservengo.service.intf;
 
+import mk.ukim.finki.it.reservengo.model.Local;
+
+import java.util.List;
+
 public interface LocalService {
+    List<Local> listAll();
 }
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 5b3215369620db627572d46d140dc76d2ba25b8c)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AuthController.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -25,5 +25,5 @@
                                                                       @RequestParam String password,
                                                                       @RequestParam String phoneNumber) {
-        return new ResponseEntity<>(authenticationService.registerCustomer(firstName, lastName, email, password, phoneNumber), HttpStatus.OK);
+        return new ResponseEntity<>(authenticationService.registerCustomer(firstName, lastName, email, password, phoneNumber), HttpStatus.CREATED);
     }
 
Index: ReserveNGo-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 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/LocalController.java	(revision 4446c6f1a98d080a7c8ad0fe599e8ce1d4eb55d6)
@@ -0,0 +1,25 @@
+package mk.ukim.finki.it.reservengo.web;
+
+import mk.ukim.finki.it.reservengo.service.intf.LocalService;
+import org.springframework.http.ResponseEntity;
+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")
+@CrossOrigin("*")
+public class LocalController {
+
+    private final LocalService localService;
+
+    public LocalController(LocalService localService) {
+        this.localService = localService;
+    }
+
+    @GetMapping("/locals")
+    public ResponseEntity<?> getLocals(){
+        return ResponseEntity.ok(localService.listAll());
+    }
+}
