Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/ArticleDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/ArticleDto.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/ArticleDto.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -3,5 +3,4 @@
 import lombok.AllArgsConstructor;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
@@ -9,5 +8,4 @@
 @Data
 @AllArgsConstructor
-@NoArgsConstructor
 public class ArticleDto {
     private Long id;
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/ArticleUnitDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/ArticleUnitDto.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/ArticleUnitDto.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -9,5 +9,4 @@
 @Data
 @AllArgsConstructor
-@NoArgsConstructor
 public class ArticleUnitDto {
     private Long id;
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/CategoryDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/CategoryDto.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/CategoryDto.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -7,5 +7,4 @@
 @Data
 @AllArgsConstructor
-@NoArgsConstructor
 public class CategoryDto {
     private Long id;
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/CityDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/CityDto.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/CityDto.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -7,5 +7,4 @@
 @Data
 @AllArgsConstructor
-@NoArgsConstructor
 public class CityDto {
     private Long id;
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/CustomerDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/CustomerDto.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/CustomerDto.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -9,5 +9,4 @@
 @Data
 @AllArgsConstructor
-@NoArgsConstructor
 public class CustomerDto {
     private Long id;
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/DeliveryDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/DeliveryDto.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/DeliveryDto.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -9,5 +9,4 @@
 
 @Data
-@NoArgsConstructor
 @AllArgsConstructor
 public class DeliveryDto {
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UserDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UserDto.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UserDto.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -0,0 +1,18 @@
+package mk.ukim.finki.db.distributorapp.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class UserDto {
+    private Long id;
+    private String firstName;
+    private String lastName;
+    private String email;
+    private String phone;
+    private String image;
+    private Long cityId;
+    private String cityName;
+    private String regionName;
+}
Index: ckend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UsersDto.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/dto/UsersDto.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package mk.ukim.finki.db.distributorapp.model.dto;
-
-import lombok.Data;
-
-@Data
-public class UsersDto {
-    private Long id;
-    private String firstName;
-    private String lastName;
-    private String email;
-    private String phone;
-    private String image;
-    private Long cityId;
-    private String cityName;
-    private String regionName;
-}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/ArticleUnit.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/ArticleUnit.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/ArticleUnit.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -33,8 +33,10 @@
     private Article article;
 
-    @ManyToOne
+    @ManyToOne(fetch = FetchType.LAZY)
+    @JoinColumn(name = "wh_id",nullable = false)
     private Warehouse warehouse;
 
-    @ManyToOne
+    @ManyToOne(fetch = FetchType.LAZY)
+    @JoinColumn(name = "ord_id")
     private Orders order;
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/City.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/City.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/City.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -14,9 +13,7 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "city_id")
-    @JsonProperty("cityId")
     private Long cityId;
 
     @Column(name = "city_name", nullable = false)
-    @JsonProperty("cityName")
     private String cityName;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Customer.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Customer.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Customer.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,9 +1,5 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.OneToMany;
-import jakarta.persistence.Table;
+import jakarta.persistence.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -16,27 +12,22 @@
 @Data
 @Table(name = "customer")
+@DiscriminatorValue(value = "Customer")
 public class Customer extends Users {
     @Column(name = "cust_EDB", nullable = false, length = 13)
-    @JsonProperty("customerEDB")
     private String customerEDB;
 
     @Column(name = "cust_company_name", nullable = false)
-    @JsonProperty("customerCompanyName")
     private String customerCompanyName;
 
     @Column(name = "cust_address", nullable = false)
-    @JsonProperty("customerAddress")
     private String customerAddress;
 
     @Column(name = "cust_open_time", nullable = false)
-    @JsonProperty("customerOpenDate")
     private LocalTime customerOpenTime;
 
     @Column(name = "cust_close_time", nullable = false)
-    @JsonProperty("customerCloseTime")
     private LocalTime customerCloseTime;
 
     @Column(name = "cust_representative_img", nullable = false)
-    @JsonProperty("customerRepresentativeImage")
     private String customerRepresentativeImage;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Delivery.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Delivery.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Delivery.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -16,29 +15,22 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "del_id")
-    @JsonProperty("deliveryId")
     private Long deliveryId;
 
     @Column(name = "del_date_created", nullable = false)
-    @JsonProperty("deliveryDateCreated")
     private LocalDate deliveryDateCreated;
 
     @Column(name = "del_date", nullable = false)
-    @JsonProperty("deliveryDate")
     private LocalDate deliveryDate;
 
     @Column(name = "del_start_km")
-    @JsonProperty("deliveryStartKm")
     private Integer deliveryStartKm;
 
     @Column(name = "del_end_km")
-    @JsonProperty("deliveryEndKm")
     private Integer deliveryEndKm;
 
     @Column(name = "del_start_time")
-    @JsonProperty("deliveryStartTime")
     private LocalTime deliveryStartTime;
 
     @Column(name = "del_end_time")
-    @JsonProperty("deliveryEndTime")
     private LocalTime deliveryEndTime;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/DeliveryStatus.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/DeliveryStatus.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/DeliveryStatus.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -13,13 +12,10 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "del_status_id")
-    @JsonProperty("deliveryStatusId")
     private Short deliveryStatusId;
 
     @Column(name = "del_status_name", nullable = false)
-    @JsonProperty("deliveryStatusName")
     private String deliveryStatusName;
 
     @Column(name = "del_status_desc", nullable = false)
-    @JsonProperty("deliveryStatusDescription")
     private String deliveryStatusDescription;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Driver.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Driver.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Driver.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,8 +1,5 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import jakarta.persistence.Entity;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.OneToOne;
-import jakarta.persistence.Table;
+import jakarta.persistence.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -12,4 +9,5 @@
 @Data
 @Table(name = "driver")
+@DiscriminatorValue(value = "Driver")
 public class Driver extends Users {
     @OneToOne
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Manager.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Manager.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Manager.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,8 +1,5 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import jakarta.persistence.Entity;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.OneToOne;
-import jakarta.persistence.Table;
+import jakarta.persistence.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -12,4 +9,5 @@
 @Data
 @Table(name = "manager")
+@DiscriminatorValue(value = "Manager")
 public class Manager extends Users {
     @OneToOne
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/OrderStatus.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/OrderStatus.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/OrderStatus.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -13,13 +12,10 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "ord_status_id")
-    @JsonProperty("orderStatusId")
     private Short orderStatusId;
 
     @Column(name = "ord_status_name", nullable = false)
-    @JsonProperty("orderStatusName")
     private String orderStatusName;
 
     @Column(name = "ord_status_desc", nullable = false)
-    @JsonProperty("orderStatusDescription")
     private String orderStatusDescription;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Price.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Price.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Price.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -15,13 +14,10 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "price_id")
-    @JsonProperty("priceId")
     private Integer priceId;
 
     @Column(name = "price", nullable = false)
-    @JsonProperty("price")
     private BigDecimal price;
 
     @Column(name = "price_eff_date", nullable = false)
-    @JsonProperty("priceEffectiveDate")
     private LocalDateTime priceEffectiveDate;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/ProForma.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/ProForma.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/ProForma.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -14,13 +13,10 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "pf_id")
-    @JsonProperty("proFormaId")
     private Long proFormaId;
 
     @Column(name = "pf_deadline", nullable = false)
-    @JsonProperty("proFormaDeadline")
     private LocalDate proFormaDeadline;
 
     @Column(name = "pf_date_created", nullable = false)
-    @JsonProperty("proFormaDateCreated")
     private LocalDate proFormaDateCreated;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/ProFormaStatus.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/ProFormaStatus.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/ProFormaStatus.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -13,13 +12,10 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "pf_status_id")
-    @JsonProperty("proFormaStatusId")
     private Short proFormaStatusId;
 
     @Column(name = "pf_status_name", nullable = false)
-    @JsonProperty("proFormaStatusName")
     private String proFormaStatusName;
 
     @Column(name = "pf_status_desc", nullable = false)
-    @JsonProperty("proFormaStatusDescription")
     private String proFormaStatusDescription;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Region.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Region.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Region.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -14,9 +13,7 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "region_id", nullable = false)
-    @JsonProperty("regionId")
     private Integer regionId;
 
     @Column(name = "region_name", nullable = false)
-    @JsonProperty("regionName")
     private String regionName;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Vehicle.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Vehicle.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Vehicle.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -15,37 +14,28 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "veh_id")
-    @JsonProperty("vehicleId")
     private Integer vehicleId;
 
     @Column(name = "veh_carry_weight", nullable = false)
-    @JsonProperty("vehicleCarryWeight")
     private Integer vehicleCarryWeight;
 
     @Column(name = "veh_service_interval", nullable = false)
-    @JsonProperty("vehicleServiceInterval")
     private Short vehicleServiceInterval;
 
     @Column(name = "veh_kilometers", nullable = false)
-    @JsonProperty("vehicleKilometers")
     private Integer vehicleKilometers;
 
     @Column(name = "veh_last_service")
-    @JsonProperty("vehicleLastService")
     private LocalDate vehicleLastService;
 
     @Column(name = "veh_last_service_km")
-    @JsonProperty("vehicleLastServiceKm")
     private Integer vehicleLastServiceKm;
 
     @Column(name = "veh_plate", nullable = false, length = 8)
-    @JsonProperty("vehiclePlate")
     private String vehiclePlate;
 
     @Column(name = "veh_vin", nullable = false, length = 17)
-    @JsonProperty("vehicleVin")
     private String vehicleVin;
 
     @Column(name = "veh_reg", nullable = false)
-    @JsonProperty("vehicleRegDate")
     private LocalDate vehicleRegDate;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Warehouse.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Warehouse.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/entities/Warehouse.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,5 +1,4 @@
 package mk.ukim.finki.db.distributorapp.model.entities;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.persistence.*;
 import lombok.Data;
@@ -14,9 +13,7 @@
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "wh_id")
-    @JsonProperty("warehouseId")
     private Integer warehouseId;
 
     @Column(name = "wh_address", nullable = false)
-    @JsonProperty("warehouseAddress")
     private String warehouseAddress;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CategoryRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CategoryRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CategoryRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -17,7 +16,7 @@
             value = "select * " +
                     "from category c " +
-                    "where c.ctg_name like :name",
+                    "where c.ctg_name like ?1",
             nativeQuery = true)
-    List<Category> findAllByName(@NonNull @Param("name") String name);
+    List<Category> findAllByName(@NonNull String name);
 
     @Query(
@@ -30,8 +29,8 @@
             value = "select * " +
                     "from category c " +
-                    "where c.ctg_id=:id",
+                    "where c.ctg_id=?1",
             nativeQuery = true
     )
-    Optional<Category> findById(@NonNull @Param("id") Long id);
+    Optional<Category> findById(@NonNull Long id);
 
     @Modifying
@@ -39,8 +38,8 @@
     @Query(
             value = "insert into category(ctg_name) " +
-                    "values (:name)",
+                    "values (?1)",
             nativeQuery = true
     )
-    Integer create(@NonNull @Param("name") String name);
+    Integer create(@NonNull String name);
 
     @Modifying
@@ -49,9 +48,9 @@
             nativeQuery = true,
             value = "update category " +
-                    "set ctg_name=:name " +
-                    "where ctg_id=:id"
+                    "set ctg_name=?2 " +
+                    "where ctg_id=?1"
     )
-    Integer edit(@NonNull @Param("id") Long id,
-                 @NonNull @Param("name") String name);
+    Integer edit(@NonNull Long id,
+                 @NonNull String name);
 
     @Modifying
@@ -59,6 +58,6 @@
     @Query(
             value = "delete from category " +
-                    "where ctg_id = :id",
+                    "where ctg_id = ?1",
             nativeQuery = true)
-    void deleteById(@NonNull @Param("id") Long id);
+    void deleteById(@NonNull Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CityRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CityRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CityRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -25,7 +24,7 @@
             value = "select * " +
                     "from city c " +
-                    "where c.city_id = :id"
+                    "where c.city_id = ?1"
     )
-    Optional<City> findById(@NonNull @Param("id") Long id);
+    Optional<City> findById(@NonNull Long id);
 
     @Query(
@@ -33,7 +32,7 @@
             value = "select * " +
                     "from city c " +
-                    "where c.city_name like :name"
+                    "where c.city_name like ?1"
     )
-    List<City> findByName(@NonNull @Param("name") String name);
+    List<City> findByName(@NonNull String name);
 
     @Modifying
@@ -42,9 +41,9 @@
             nativeQuery = true,
             value = "insert into city(city_name, region_id) " +
-                    "values (:name,:region)"
+                    "values (?1,?2)"
     )
     Integer create(
-            @NonNull @Param("name") String name,
-            @NonNull @Param("region") Integer region);
+            @NonNull String name,
+            @NonNull Integer region);
 
     @Modifying
@@ -53,11 +52,11 @@
             nativeQuery = true,
             value = "update city " +
-                    "set city_name=:name, region_id=:region " +
-                    "where city_id=:id"
+                    "set city_name=?2, region_id=?3 " +
+                    "where city_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("name") String name,
-            @NonNull @Param("region") Integer region);
+            @NonNull Long id,
+            @NonNull String name,
+            @NonNull Integer region);
 
     @Modifying
@@ -66,6 +65,6 @@
             nativeQuery = true,
             value = "delete from city c " +
-                    "where c.city_id=:id"
+                    "where c.city_id=?1"
     )
-    void deleteById(@NonNull @Param("id") Long id);
+    void deleteById(@NonNull Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ConfirmationTokenRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ConfirmationTokenRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ConfirmationTokenRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -5,5 +5,4 @@
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 
 public interface ConfirmationTokenRepository extends JpaRepository<ConfirmationToken, Long> {
@@ -13,6 +12,6 @@
             value = "select * " +
                     "from token " +
-                    "where t_value=:token"
+                    "where t_value=?1"
     )
-    ConfirmationToken findConfirmationTokenByToken(@NonNull @Param("token") String token);
+    ConfirmationToken findConfirmationTokenByToken(@NonNull String token);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CustomerRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CustomerRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/CustomerRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -17,5 +16,5 @@
             nativeQuery = true,
             value = "select * " +
-                    "from customer"
+                    "from customer c join users u on c.user_id = u.user_id"
     )
     List<Customer> listAll();
@@ -25,7 +24,7 @@
             value = "select * " +
                     "from customer c " +
-                    "where cust_company_name like :name"
+                    "where cust_company_name like ?1"
     )
-    List<Customer> findAllByName(@NonNull @Param("name") String name);
+    List<Customer> findAllByName(@NonNull String name);
 
     @Query(
@@ -33,7 +32,7 @@
             value = "select * " +
                     "from customer " +
-                    "where user_id=:id"
+                    "where user_id=?1"
     )
-    Optional<Customer> findById(@NonNull @Param("id") Long id);
+    Optional<Customer> findById(@NonNull Long id);
 
     @Modifying
@@ -42,14 +41,14 @@
             nativeQuery = true,
             value = "insert into customer(user_id, cust_edb, cust_company_name, cust_address, cust_open_time, cust_close_time, cust_representative_img) " +
-                    "values (:id,:edb,:name,:adr,:oTime,:cTime,:img)"
+                    "values (?1,?2,?3,?4,?5,?6,?7)"
     )
     Integer create(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("edb") String customerEDB,
-            @NonNull @Param("name") String customerName,
-            @NonNull @Param("adr") String customerStreet,
-            @NonNull @Param("oTime") LocalTime openTime,
-            @NonNull @Param("cTime") LocalTime closeTime,
-            @NonNull @Param("img") String customerImage);
+            @NonNull Long id,
+            @NonNull String customerEDB,
+            @NonNull String customerName,
+            @NonNull String customerStreet,
+            @NonNull LocalTime openTime,
+            @NonNull LocalTime closeTime,
+            @NonNull String customerImage);
 
     @Modifying
@@ -58,15 +57,15 @@
             nativeQuery = true,
             value = "update customer " +
-                    "set cust_edb=:edb,cust_company_name=:name,cust_address=:adr,cust_open_time=:oTime,cust_close_time=:cTime,cust_representative_img=:img " +
-                    "where user_id=:id"
+                    "set cust_edb=?2,cust_company_name=?3,cust_address=?4,cust_open_time=?5,cust_close_time=?6,cust_representative_img=?7 " +
+                    "where user_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("edb") String customerEDB,
-            @NonNull @Param("name") String customerName,
-            @NonNull @Param("adr") String customerStreet,
-            @NonNull @Param("oTime") LocalTime openTime,
-            @NonNull @Param("cTime") LocalTime closeTime,
-            @NonNull @Param("img") String customerImage);
+            @NonNull Long id,
+            @NonNull String customerEDB,
+            @NonNull String customerName,
+            @NonNull String customerStreet,
+            @NonNull LocalTime openTime,
+            @NonNull LocalTime closeTime,
+            @NonNull String customerImage);
 
     @Modifying
@@ -75,6 +74,6 @@
             nativeQuery = true,
             value = "delete from customer " +
-                    "where user_id=:id"
+                    "where user_id=?!"
     )
-    void delete(@NonNull @Param("id") Long id);
+    void delete(@NonNull Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -24,13 +23,13 @@
             nativeQuery = true,
             value = "select * from delivery " +
-                    "where veh_id=:veh"
+                    "where veh_id=?1"
     )
-    List<Delivery> findAllByVehicle(@NonNull @Param("veh") Integer veh_id);
+    List<Delivery> findAllByVehicle(@NonNull Integer veh_id);
 
     @Query(
             nativeQuery = true,
-            value = "select * from delivery where del_id=:id"
+            value = "select * from delivery where del_id=?1"
     )
-    Optional<Delivery> findById(@NonNull @Param("id") Long id);
+    Optional<Delivery> findById(@NonNull Long id);
 
     @Query(
@@ -39,7 +38,7 @@
                     "from delivery d join vehicle v on d.veh_id = v.veh_id " +
                     "join driver dr on v.veh_id = dr.veh_id " +
-                    "where dr.user_id=:driver"
+                    "where dr.user_id=?1"
     )
-    List<Delivery> findDeliveriesByDriver(@NonNull @Param("driver") Long driver_id);
+    List<Delivery> findDeliveriesByDriver(@NonNull Long driver_id);
 
     @Modifying
@@ -48,15 +47,15 @@
             nativeQuery = true,
             value = "insert into delivery(del_date_created, del_date, del_start_km, del_end_km, del_start_time, del_end_time, del_status_id, veh_id) " +
-                    "values (:dCreated,:dDel,:startKm,:endKm,:startT,:endT,:status,:veh)"
+                    "values (?1,?2,?3,?4,?5,?6,?7,?8)"
     )
     Integer create(
-            @NonNull @Param("dCreated") LocalDate del_date_created,
-            @NonNull @Param("dDel") LocalDate del_date,
-            @NonNull @Param("startKm") Integer del_start_km,
-            @NonNull @Param("endKm") Integer del_end_km,
-            @NonNull @Param("startT") LocalTime del_start_time,
-            @NonNull @Param("endT") LocalTime del_end_time,
-            @NonNull @Param("status") Short del_status_id,
-            @NonNull @Param("veh") Integer veh_id
+            @NonNull LocalDate del_date_created,
+            @NonNull LocalDate del_date,
+            @NonNull Integer del_start_km,
+            @NonNull Integer del_end_km,
+            @NonNull LocalTime del_start_time,
+            @NonNull LocalTime del_end_time,
+            @NonNull Short del_status_id,
+            @NonNull Integer veh_id
     );
 
@@ -66,17 +65,17 @@
             nativeQuery = true,
             value = "update delivery " +
-                    "set del_date_created=:dCreated,del_date=:dDel,del_start_km=:startKm,del_end_km=:endKm,del_start_time=:startTime,del_end_time=:endT,del_status_id=:status,veh_id=:veh " +
-                    "where del_id=:id"
+                    "set del_date_created=?2,del_date=?3,del_start_km=?4,del_end_km=?5,del_start_time=?6,del_end_time=?7,del_status_id=?8,veh_id=?9 " +
+                    "where del_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("dCreated") LocalDate del_date_created,
-            @NonNull @Param("dDel") LocalDate del_date,
-            @NonNull @Param("startKm") Integer del_start_km,
-            @NonNull @Param("endKm") Integer del_end_km,
-            @NonNull @Param("startT") LocalTime del_start_time,
-            @NonNull @Param("endT") LocalTime del_end_time,
-            @NonNull @Param("status") Short del_status_id,
-            @NonNull @Param("veh") Integer veh_id
+            @NonNull Long id,
+            @NonNull LocalDate del_date_created,
+            @NonNull LocalDate del_date,
+            @NonNull Integer del_start_km,
+            @NonNull Integer del_end_km,
+            @NonNull LocalTime del_start_time,
+            @NonNull LocalTime del_end_time,
+            @NonNull Short del_status_id,
+            @NonNull Integer veh_id
     );
 
@@ -85,6 +84,6 @@
     @Query(
             nativeQuery = true,
-            value = "delete from delivery where del_id=:id"
+            value = "delete from delivery where del_id=?1"
     )
-    void delete(@NonNull @Param("id") Long id);
+    void delete(@NonNull Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryStatusRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryStatusRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryStatusRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,5 +22,5 @@
             value = "select * from delivery_status where del_status_name like ?1"
     )
-    List<DeliveryStatus> findAllByName(@NonNull @Param("name") String name);
+    List<DeliveryStatus> findAllByName(@NonNull String name);
 
     @Query(
@@ -29,5 +28,5 @@
             value = "select * from delivery_status where del_status_id=?1"
     )
-    Optional<DeliveryStatus> findById(@NonNull @Param("id") Short id);
+    Optional<DeliveryStatus> findById(@NonNull Short id);
 
     @Modifying
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DriverRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DriverRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DriverRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -15,5 +14,5 @@
     @Query(
             nativeQuery = true,
-            value = "select * from driver"
+            value = "select * from driver d join users u on d.user_id = u.user_id"
     )
     List<Driver> listAll();
@@ -22,13 +21,13 @@
             nativeQuery = true,
             value = "select d.* from driver d join users u on d.user_id = u.user_id " +
-                    "where u.user_name like :name"
+                    "where u.user_name like ?1"
     )
-    List<Driver> findAllByName(@NonNull @Param("name") String name);
+    List<Driver> findAllByName(@NonNull String name);
 
     @Query(
             nativeQuery = true,
-            value = "select * from driver where user_id=:id"
+            value = "select * from driver where user_id=?1"
     )
-    Optional<Driver> findById(@NonNull @Param("id") Long id);
+    Optional<Driver> findById(@NonNull Long id);
 
     @Modifying
@@ -37,9 +36,9 @@
             nativeQuery = true,
             value = "insert into driver(user_id, veh_id) " +
-                    "values (:id,:veh)"
+                    "values (?1,?2)"
     )
     Integer create(
-            @NonNull @Param("id") Long usr_id,
-            @NonNull @Param("veh") Integer veh_id);
+            @NonNull Long usr_id,
+            @NonNull Integer veh_id);
 
     @Modifying
@@ -48,10 +47,10 @@
             nativeQuery = true,
             value = "update driver " +
-                    "set veh_id=:veh " +
-                    "where user_id=:id"
+                    "set veh_id=?2 " +
+                    "where user_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Long usr_id,
-            @NonNull @Param("veh") Integer veh_id);
+            @NonNull Long usr_id,
+            @NonNull Integer veh_id);
 
     @Modifying
@@ -59,6 +58,6 @@
     @Query(
             nativeQuery = true,
-            value = "delete from driver where user_id=:id"
+            value = "delete from driver where user_id=?1"
     )
-    void delete(@NonNull @Param("id") Long id);
+    void delete(@NonNull Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ManagerRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ManagerRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ManagerRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -15,5 +14,5 @@
     @Query(
             nativeQuery = true,
-            value = "select * from manager"
+            value = "select * from manager m join users u on m.user_id = u.user_id"
     )
     List<Manager> listAll();
@@ -22,13 +21,13 @@
             nativeQuery = true,
             value = "select * from manager m join users u on m.user_id = u.user_id " +
-                    "where user_name like :name"
+                    "where user_name like ?1"
     )
-    List<Manager> findAllByName(@NonNull @Param("name") String name);
+    List<Manager> findAllByName(@NonNull String name);
 
     @Query(
             nativeQuery = true,
-            value = "select * from manager where user_id=:id"
+            value = "select * from manager where user_id=?1"
     )
-    Optional<Manager> findById(@NonNull @Param("id") Long id);
+    Optional<Manager> findById(@NonNull Long id);
 
     @Modifying
@@ -37,9 +36,9 @@
             nativeQuery = true,
             value = "insert into manager(user_id, wh_id) " +
-                    "values (:id,:wh)"
+                    "values (?1,?2)"
     )
     Integer create(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("wh") Integer whId);
+            @NonNull Long id,
+            @NonNull Integer whId);
 
     @Modifying
@@ -48,10 +47,10 @@
             nativeQuery = true,
             value = "update manager " +
-                    "set wh_id=:wh " +
-                    "where user_id=:id"
+                    "set wh_id=?2 " +
+                    "where user_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("wh") Integer whId);
+            @NonNull Long id,
+            @NonNull Integer whId);
 
     @Modifying
@@ -59,6 +58,6 @@
     @Query(
             nativeQuery = true,
-            value = "delete from manager where user_id=:id"
+            value = "delete from manager where user_id=?1"
     )
-    void delete(@NonNull @Param("id") Long id);
+    void delete(@NonNull Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ManufacturerRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ManufacturerRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ManufacturerRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -21,13 +20,13 @@
     @Query(
             nativeQuery = true,
-            value = "select * from manufacturer where man_name like :name"
+            value = "select * from manufacturer where man_name like ?1"
     )
-    List<Manufacturer> findAllByName(@NonNull @Param("name") String name);
+    List<Manufacturer> findAllByName(@NonNull String name);
 
     @Query(
             nativeQuery = true,
-            value = "select * from manufacturer where man_id=:id"
+            value = "select * from manufacturer where man_id=?1"
     )
-    Optional<Manufacturer> findById(@NonNull @Param("id") Long id);
+    Optional<Manufacturer> findById(@NonNull Long id);
 
     @Modifying
@@ -36,11 +35,11 @@
             nativeQuery = true,
             value = "insert into manufacturer(man_name, man_address, man_mobile, man_email) " +
-                    "values (:name,:adr,:mob,:email)"
+                    "values (?1,?2,?3,?4)"
     )
     Integer create(
-            @NonNull @Param("name") String name,
-            @NonNull @Param("adr") String address,
-            @NonNull @Param("mob") String mobile,
-            @NonNull @Param("email") String email);
+            @NonNull String name,
+            @NonNull String address,
+            @NonNull String mobile,
+            @NonNull String email);
 
     @Modifying
@@ -49,13 +48,13 @@
             nativeQuery = true,
             value = "update manufacturer " +
-                    "set man_name=:name,man_address=:adr,man_mobile=:mob,man_email=:email " +
-                    "where man_id=:id"
+                    "set man_name=?2,man_address=?3,man_mobile=?4,man_email=?5 " +
+                    "where man_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("name") String name,
-            @NonNull @Param("adr") String address,
-            @NonNull @Param("mob") String mobile,
-            @NonNull @Param("email") String email);
+            @NonNull Long id,
+            @NonNull String name,
+            @NonNull String address,
+            @NonNull String mobile,
+            @NonNull String email);
 
     @Modifying
@@ -63,6 +62,6 @@
     @Query(
             nativeQuery = true,
-            value = "delete from manufacturer where man_id=:id"
+            value = "delete from manufacturer where man_id=?1"
     )
-    void delete(@NonNull @Param("id") Long id);
+    void delete(@NonNull Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/OrderStatusRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/OrderStatusRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/OrderStatusRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,5 +22,5 @@
             value = "select * from order_status where ord_status_name like ?1"
     )
-    List<OrderStatus> findAllByName(@NonNull @Param("name") String name);
+    List<OrderStatus> findAllByName(@NonNull String name);
 
     @Query(
@@ -29,5 +28,5 @@
             value = "select * from order_status where ord_status_id=?1"
     )
-    Optional<OrderStatus> findById(@NonNull @Param("id") Short id);
+    Optional<OrderStatus> findById(@NonNull Short id);
 
     @Modifying
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/OrdersRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/OrdersRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/OrdersRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,13 +22,13 @@
     @Query(
             nativeQuery = true,
-            value = "select * from orders where cust_id=:cust"
+            value = "select * from orders where cust_id=?1"
     )
-    List<Orders> findByCustomer(@NonNull @Param("cust") Long id);
+    List<Orders> findByCustomer(@NonNull Long id);
 
     @Query(
             nativeQuery = true,
-            value = "select * from orders where ord_id=:id"
+            value = "select * from orders where ord_id=?1"
     )
-    Optional<Orders> findById(@NonNull @Param("id") Long id);
+    Optional<Orders> findById(@NonNull Long id);
 
     @Modifying
@@ -38,15 +37,15 @@
             nativeQuery = true,
             value = "insert into orders (ord_date, ord_sum, ord_fulfillment_date, ord_comment, ord_status_id, cust_id, del_id, pf_id) " +
-                    "values (:date,:sum,:fulDate,:comment,:status,:cust,:del,:pf)"
+                    "values (?1,?2,?3,?4,?5,?6,?7,?8)"
     )
     Integer create(
-            @NonNull @Param("date") LocalDate ord_date,
-            @NonNull @Param("sum") Integer ord_sum,
-            @Param("fulDate") LocalDateTime ord_fulfillment_date,
-            @Param("comment") String ord_comment,
-            @NonNull @Param("status") Short ord_status_id,
-            @NonNull @Param("cust") Long cust_id,
-            @NonNull @Param("del") Long del_id,
-            @NonNull @Param("pf") Long pf_id
+            @NonNull LocalDate ord_date,
+            @NonNull Integer ord_sum,
+            LocalDateTime ord_fulfillment_date,
+            String ord_comment,
+            @NonNull Short ord_status_id,
+            @NonNull Long cust_id,
+            @NonNull Long del_id,
+            @NonNull Long pf_id
     );
 
@@ -56,17 +55,17 @@
             nativeQuery = true,
             value = "update orders " +
-                    "set ord_date=:date,ord_sum=:sum,ord_fulfillment_date=:fulDate,ord_comment=:comment,ord_status_id=:status,cust_id=:cust,del_id=:del,pf_id=:pf " +
-                    "where ord_id=:id"
+                    "set ord_date=?2,ord_sum=?3,ord_fulfillment_date=?4,ord_comment=?5,ord_status_id=?6,cust_id=?7,del_id=?8,pf_id=?9 " +
+                    "where ord_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Long id,
-            @NonNull @Param("date") LocalDate ord_date,
-            @NonNull @Param("sum") Integer ord_sum,
-            @Param("fulDate") LocalDateTime ord_fulfillment_date,
-            @Param("comment") String ord_comment,
-            @NonNull @Param("status") Short ord_status_id,
-            @NonNull @Param("cust") Long cust_id,
-            @NonNull @Param("del") Long del_id,
-            @NonNull @Param("pf") Long pf_id
+            @NonNull Long id,
+            @NonNull LocalDate ord_date,
+            @NonNull Integer ord_sum,
+            LocalDateTime ord_fulfillment_date,
+            String ord_comment,
+            @NonNull Short ord_status_id,
+            @NonNull Long cust_id,
+            @NonNull Long del_id,
+            @NonNull Long pf_id
     );
 
@@ -75,6 +74,6 @@
     @Query(
             nativeQuery = true,
-            value = "delete from orders where ord_id=:id"
+            value = "delete from orders where ord_id=?1"
     )
-    void delete(@NonNull @Param("id") Long id);
+    void delete(@NonNull Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/PriceRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/PriceRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/PriceRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,13 +22,13 @@
     @Query(
             nativeQuery = true,
-            value = "select * from price where art_id=:art"
+            value = "select * from price where art_id=?1"
     )
-    List<Price> findAllByArticleId(@NonNull @Param("art") Long id);
+    List<Price> findAllByArticleId(@NonNull Long id);
 
     @Query(
             nativeQuery = true,
-            value = "select * from price where price_id=:id"
+            value = "select * from price where price_id=?1"
     )
-    Optional<Price> findById(@NonNull @Param("id") Short id);
+    Optional<Price> findById(@NonNull Short id);
 
     @Modifying
@@ -38,10 +37,10 @@
             nativeQuery = true,
             value = "insert into price(price, price_eff_date, art_id) " +
-                    "values (:price,:effD,:art)"
+                    "values (?1,?2,?3)"
     )
     Integer create(
-            @NonNull @Param("price") BigDecimal price,
-            @NonNull @Param("effD") LocalDateTime price_eff_date,
-            @NonNull @Param("art") Long art_id);
+            @NonNull BigDecimal price,
+            @NonNull LocalDateTime price_eff_date,
+            @NonNull Long art_id);
 
     @Modifying
@@ -50,12 +49,12 @@
             nativeQuery = true,
             value = "update price " +
-                    "set price=:price,price_eff_date=:effD,art_id=:art " +
-                    "where price_id=:id"
+                    "set price=?2,price_eff_date=?3,art_id=?4 " +
+                    "where price_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Integer id,
-            @NonNull @Param("price") BigDecimal price,
-            @NonNull @Param("effD") LocalDateTime price_eff_date,
-            @NonNull @Param("art") Long art_id);
+            @NonNull Integer id,
+            @NonNull BigDecimal price,
+            @NonNull LocalDateTime price_eff_date,
+            @NonNull Long art_id);
 
     @Modifying
@@ -63,6 +62,6 @@
     @Query(
             nativeQuery = true,
-            value = "delete from price where price_id=:id"
+            value = "delete from price where price_id=?1"
     )
-    void delete(@NonNull @Param("id") Integer id);
+    void delete(@NonNull Integer id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -22,7 +21,7 @@
     @Query(
             nativeQuery = true,
-            value = "select * from pro_forma where pf_id=:id"
+            value = "select * from pro_forma where pf_id=?1"
     )
-    Optional<ProForma> findById(@NonNull @Param("id") Short id);
+    Optional<ProForma> findById(@NonNull Short id);
 
     @Modifying
@@ -31,10 +30,10 @@
             nativeQuery = true,
             value = "insert into pro_forma(pf_deadline, pf_date_created, pf_status_id) " +
-                    "values (:ddl,:createD,:status)"
+                    "values (?1,?2,?3)"
     )
     Integer create(
-            @NonNull @Param("ddl") LocalDate pf_deadline,
-            @NonNull @Param("createD") LocalDate pf_create_date,
-            @NonNull @Param("status") Short pf_status_id);
+            @NonNull LocalDate pf_deadline,
+            @NonNull LocalDate pf_create_date,
+            @NonNull Short pf_status_id);
 
     @Modifying
@@ -43,12 +42,12 @@
             nativeQuery = true,
             value = "update pro_forma " +
-                    "set pf_deadline=:ddl,pf_date_created=:createD,pf_status_id=:status " +
-                    "where pf_id=:id"
+                    "set pf_deadline=?2,pf_date_created=?3,pf_status_id=?4 " +
+                    "where pf_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Long pf_id,
-            @NonNull @Param("ddl") LocalDate pf_deadline,
-            @NonNull @Param("createD") LocalDate pf_create_date,
-            @NonNull @Param("status") Short pf_status_id);
+            @NonNull Long pf_id,
+            @NonNull LocalDate pf_deadline,
+            @NonNull LocalDate pf_create_date,
+            @NonNull Short pf_status_id);
 
     @Modifying
@@ -56,6 +55,6 @@
     @Query(
             nativeQuery = true,
-            value = "delete from pro_forma where pf_id=:id"
+            value = "delete from pro_forma where pf_id=?1"
     )
-    void delete(@NonNull @Param("id") Long id);
+    void delete(@NonNull Long id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaStatusRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaStatusRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaStatusRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,5 +22,5 @@
             value = "select * from pro_forma_status where pf_status_name like ?1"
     )
-    List<ProFormaStatus> findAllByName(@NonNull @Param("name") String name);
+    List<ProFormaStatus> findAllByName(@NonNull String name);
 
     @Query(
@@ -29,5 +28,5 @@
             value = "select * from pro_forma_status where pf_status_id=?1"
     )
-    Optional<ProFormaStatus> findById(@NonNull @Param("id") Short id);
+    Optional<ProFormaStatus> findById(@NonNull Short id);
 
     @Modifying
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/RegionRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/RegionRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/RegionRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -24,7 +23,7 @@
             value = "select * " +
                     "from region " +
-                    "where region_id=:id"
+                    "where region_id=?1"
     )
-    Optional<Region> findById(@NonNull @Param("id") Integer id);
+    Optional<Region> findById(@NonNull Integer id);
 
     @Query(
@@ -32,7 +31,7 @@
             value = "select * " +
                     "from region " +
-                    "where region.region_name like :name"
+                    "where region.region_name like ?1"
     )
-    List<Region> findByName(@NonNull @Param("name") String name);
+    List<Region> findByName(@NonNull String name);
 
     @Modifying
@@ -41,8 +40,8 @@
             nativeQuery = true,
             value = "insert into region(region_name) " +
-                    "values (:name)"
+                    "values (?1)"
     )
     Integer create(
-            @NonNull @Param("name") String name);
+            @NonNull String name);
 
     @Modifying
@@ -51,10 +50,10 @@
             nativeQuery = true,
             value = "update region " +
-                    "set region_name=:name " +
-                    "where region_id=:id"
+                    "set region_name=?2 " +
+                    "where region_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Integer id,
-            @NonNull @Param("name") String name);
+            @NonNull Integer id,
+            @NonNull String name);
 
     @Modifying
@@ -63,6 +62,6 @@
             nativeQuery = true,
             value = "delete from region " +
-                    "where region_id=:id"
+                    "where region_id=?1"
     )
-    void deleteById(@NonNull @Param("id") Integer id);
+    void deleteById(@NonNull Integer id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/UsersRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/UsersRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/UsersRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -15,5 +15,10 @@
     @Query(
             nativeQuery = true,
-            value = "select * from users"
+            value = "select u.*,c.*,d.*,m.*, 0 AS clazz_ " +
+                    "from users u " +
+                    "left join customer c on u.user_id = c.user_id " +
+                    "left join driver d on u.user_id = d.user_id " +
+                    "left join manager m on u.user_id = m.user_id " +
+                    "order by u.user_id"
     )
     List<Users> listAll();
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/VehicleRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/VehicleRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/VehicleRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -22,13 +21,13 @@
     @Query(
             nativeQuery = true,
-            value = "select * from vehicle where wh_id=:wh"
+            value = "select * from vehicle where wh_id=?1"
     )
-    List<Vehicle> findAllByWarehouse(@NonNull @Param("wh") Integer warehouseId);
+    List<Vehicle> findAllByWarehouse(@NonNull Integer warehouseId);
 
     @Query(
             nativeQuery = true,
-            value = "select * from vehicle where veh_id=:id"
+            value = "select * from vehicle where veh_id=?1"
     )
-    Optional<Vehicle> findById(@NonNull @Param("id") Integer id);
+    Optional<Vehicle> findById(@NonNull Integer id);
 
     @Modifying
@@ -37,16 +36,16 @@
             nativeQuery = true,
             value = "insert into vehicle(veh_carry_weight, veh_service_interval, veh_kilometers, veh_last_service, veh_last_service_km, veh_plate, veh_vin, veh_reg, wh_id) " +
-                    "values (:carryW,:serInterval,:vehKm,:lastSerD,:lastSerKm,:plate,:vin,:vehRegD,:wh)"
+                    "values (?1,?2,?3,?4,?5,?6,?7,?8,?9)"
     )
     Integer create(
-            @NonNull @Param("carryW") Integer vehicleCarryWeight,
-            @NonNull @Param("serInterval") Short vehicleServiceInterval,
-            @NonNull @Param("vehKm") Integer vehicleKilometers,
-            @NonNull @Param("lastSerD") LocalDate vehicleLastService,
-            @NonNull @Param("lastSerKm") Integer vehicleLastServiceKm,
-            @NonNull @Param("plate") String vehiclePlate,
-            @NonNull @Param("vin") String vehicleVIN,
-            @NonNull @Param("vehRegD") LocalDate vehicleRegDate,
-            @NonNull @Param("wh") Integer whId);
+            @NonNull Integer vehicleCarryWeight,
+            @NonNull Short vehicleServiceInterval,
+            @NonNull Integer vehicleKilometers,
+            @NonNull LocalDate vehicleLastService,
+            @NonNull Integer vehicleLastServiceKm,
+            @NonNull String vehiclePlate,
+            @NonNull String vehicleVIN,
+            @NonNull LocalDate vehicleRegDate,
+            @NonNull Integer whId);
 
     @Modifying
@@ -55,19 +54,19 @@
             nativeQuery = true,
             value = "update vehicle " +
-                    "set veh_carry_weight=:carryW,veh_service_interval=:serInterval,veh_kilometers=:vehKm," +
-                    "veh_last_service=:lastSerD,veh_last_service_km=:lastSerKm,veh_plate=:plate,veh_vin=:vin,veh_reg=:vehRegD,wh_id=:wh " +
-                    "where veh_id=:id"
+                    "set veh_carry_weight=?2,veh_service_interval=?3,veh_kilometers=?4," +
+                    "veh_last_service=?5,veh_last_service_km=?6,veh_plate=?7,veh_vin=?8,veh_reg=?9,wh_id=?10 " +
+                    "where veh_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Integer id,
-            @NonNull @Param("carryW") Integer vehicleCarryWeight,
-            @NonNull @Param("serInterval") Short vehicleServiceInterval,
-            @NonNull @Param("vehKm") Integer vehicleKilometers,
-            @NonNull @Param("lastSerD") LocalDate vehicleLastService,
-            @NonNull @Param("lastSerKm") Integer vehicleLastServiceKm,
-            @NonNull @Param("plate") String vehiclePlate,
-            @NonNull @Param("vin") String vehicleVIN,
-            @NonNull @Param("vehRegD") LocalDate vehicleRegDate,
-            @NonNull @Param("wh") Integer whId);
+            @NonNull Integer id,
+            @NonNull Integer vehicleCarryWeight,
+            @NonNull Short vehicleServiceInterval,
+            @NonNull Integer vehicleKilometers,
+            @NonNull LocalDate vehicleLastService,
+            @NonNull Integer vehicleLastServiceKm,
+            @NonNull String vehiclePlate,
+            @NonNull String vehicleVIN,
+            @NonNull LocalDate vehicleRegDate,
+            @NonNull Integer whId);
 
     @Modifying
@@ -75,6 +74,6 @@
     @Query(
             nativeQuery = true,
-            value = "delete from vehicle where veh_id=:id"
+            value = "delete from vehicle where veh_id=?1"
     )
-    void delete(@NonNull @Param("id") Integer id);
+    void delete(@NonNull Integer id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/WarehouseRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/WarehouseRepository.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/WarehouseRepository.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -6,5 +6,4 @@
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -21,13 +20,13 @@
     @Query(
             nativeQuery = true,
-            value = "select * from warehouse where city_id=:city"
+            value = "select * from warehouse where city_id=?1"
     )
-    List<Warehouse> findAllByCity(@NonNull @Param("city") Long city);
+    List<Warehouse> findAllByCity(@NonNull Long city);
 
     @Query(
             nativeQuery = true,
-            value = "select * from warehouse where wh_id=:id"
+            value = "select * from warehouse where wh_id=?1"
     )
-    Optional<Warehouse> findById(@NonNull @Param("id") Short id);
+    Optional<Warehouse> findById(@NonNull Short id);
 
     @Modifying
@@ -36,9 +35,9 @@
             nativeQuery = true,
             value = "insert into warehouse(wh_address, city_id) " +
-                    "values (:adr,:cty)"
+                    "values (?1,?2)"
     )
     Integer create(
-            @NonNull @Param("adr") String whAddress,
-            @NonNull @Param("cty") Long city);
+            @NonNull String whAddress,
+            @NonNull Long city);
 
     @Modifying
@@ -47,11 +46,11 @@
             nativeQuery = true,
             value = "update warehouse " +
-                    "set wh_address=:adr,city_id=:cty " +
-                    "where wh_id=:id"
+                    "set wh_address=?2,city_id=?3 " +
+                    "where wh_id=?1"
     )
     Integer edit(
-            @NonNull @Param("id") Integer id,
-            @NonNull @Param("adr") String whAddress,
-            @NonNull @Param("cty") Long city);
+            @NonNull Integer id,
+            @NonNull String whAddress,
+            @NonNull Long city);
 
     @Modifying
@@ -59,6 +58,6 @@
     @Query(
             nativeQuery = true,
-            value = "delete from warehouse where wh_id=:id"
+            value = "delete from warehouse where wh_id=?1"
     )
-    void delete(@NonNull @Param("id") Integer id);
+    void delete(@NonNull Integer id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/AuthController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/AuthController.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/AuthController.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -0,0 +1,15 @@
+package mk.ukim.finki.db.distributorapp.security.auth;
+
+import mk.ukim.finki.db.distributorapp.service.UsersService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/auth")
+public class AuthController {
+    private final UsersService usersService;
+
+    public AuthController(UsersService usersService) {
+        this.usersService = usersService;
+    }
+}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/AuthService.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/AuthService.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/AuthService.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -0,0 +1,20 @@
+package mk.ukim.finki.db.distributorapp.security.auth;
+
+import mk.ukim.finki.db.distributorapp.model.entities.City;
+import mk.ukim.finki.db.distributorapp.model.entities.Users;
+import org.springframework.http.ResponseEntity;
+
+import java.util.Optional;
+
+public interface AuthService {
+    String getUserSalt(String username);
+
+    Optional<Users> getUserByEmail(String email);
+
+    ResponseEntity<?> confirmEmail(String confirmationToken);
+
+    Users register(String name, String surname, String email,
+                   String password, String mobile, String image, City city);
+
+    Users login(String username, String password);
+}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/AuthServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/AuthServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/AuthServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -0,0 +1,89 @@
+package mk.ukim.finki.db.distributorapp.security.auth;
+
+import mk.ukim.finki.db.distributorapp.model.entities.City;
+import mk.ukim.finki.db.distributorapp.model.entities.Users;
+import mk.ukim.finki.db.distributorapp.model.exceptions.InvalidArgumentsException;
+import mk.ukim.finki.db.distributorapp.model.exceptions.InvalidUserCredentialsException;
+import mk.ukim.finki.db.distributorapp.repository.ConfirmationTokenRepository;
+import mk.ukim.finki.db.distributorapp.repository.UsersRepository;
+import mk.ukim.finki.db.distributorapp.security.ConfirmationToken;
+import mk.ukim.finki.db.distributorapp.security.EmailService;
+import mk.ukim.finki.db.distributorapp.security.PassEncryption;
+import mk.ukim.finki.db.distributorapp.security.PassEncryptionPasswordEncoder;
+import org.springframework.http.ResponseEntity;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.stereotype.Service;
+
+import java.util.Optional;
+
+@Service
+public class AuthServiceImpl implements AuthService {
+
+    private final UsersRepository usersRepository;
+    private final ConfirmationTokenRepository confirmationTokenRepository;
+    private final EmailService emailService;
+    private final PassEncryptionPasswordEncoder passwordEncoder;
+
+    public AuthServiceImpl(UsersRepository usersRepository, ConfirmationTokenRepository confirmationTokenRepository, EmailService emailService, PassEncryptionPasswordEncoder passwordEncoder) {
+        this.usersRepository = usersRepository;
+        this.confirmationTokenRepository = confirmationTokenRepository;
+        this.emailService = emailService;
+        this.passwordEncoder = passwordEncoder;
+    }
+
+    @Override
+    public String getUserSalt(String username) {
+        return usersRepository.findUserByUserName(username).get().getUserSalt();
+    }
+
+    @Override
+    public Optional<Users> getUserByEmail(String email) {
+        return this.usersRepository.findUserByUserEmailIgnoreCase(email);
+    }
+
+    @Override
+    public ResponseEntity<?> confirmEmail(String confirmationToken) {
+        ConfirmationToken token = this.confirmationTokenRepository.findConfirmationTokenByToken(confirmationToken);
+
+        if (token != null) {
+            Users user = this.usersRepository.findUserByUserEmailIgnoreCase(token.getUser().getUserEmail()).get();
+//            this.usersRepository.edit(user);
+            return ResponseEntity.ok("Email verified successfully!");
+        }
+
+        return ResponseEntity.badRequest().body("Error: Couldn't verify email");
+    }
+
+    @Override
+    public Users register(String name, String surname, String email, String password, String mobile, String image, City city) {
+        String saltValue = PassEncryption.genSaltValue(30);
+        String safePass = passwordEncoder.encodeWithSalt(password, saltValue);
+
+        this.usersRepository.create(name, surname, safePass, email, mobile, saltValue, false, image, city.getCityId());
+        Users user = this.usersRepository.findUserByUserEmailIgnoreCase(email).orElseThrow(InvalidUserCredentialsException::new);
+
+        ConfirmationToken confirmationToken = new ConfirmationToken(user);
+        confirmationTokenRepository.save(confirmationToken);
+
+        SimpleMailMessage mailMessage = new SimpleMailMessage();
+        mailMessage.setTo(email);
+        mailMessage.setSubject("Complete Registration!");
+        mailMessage.setText(("To confirm your account, please click here: " +
+                "https://localhost:8080/register/confirm-account?token=" + confirmationToken.getConfirmationToken()));
+        System.out.println("Confirmation Token: " + confirmationToken.getConfirmationToken());
+        emailService.sendEmail(mailMessage);
+
+        return user;
+    }
+
+    @Override
+    public Users login(String username, String password) {
+        if (username == null || username.isEmpty() || password == null || password.isEmpty()) {
+            throw new InvalidArgumentsException();
+        }
+
+        String secPassword = passwordEncoder.encodeWithSalt(password, usersRepository.findUserByUserName(username).get().getUserSalt());
+
+        return usersRepository.findUserByUserNameAndUserPassword(username, secPassword).orElseThrow(InvalidUserCredentialsException::new);
+    }
+}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/LoginController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/LoginController.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/LoginController.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -0,0 +1,39 @@
+//package mk.ukim.finki.db.distributorapp.web;
+//
+//import jakarta.servlet.http.HttpServletRequest;
+//import mk.ukim.finki.db.distributorapp.model.entities.Users;
+//import mk.ukim.finki.db.distributorapp.model.exceptions.InvalidUserCredentialsException;
+//import mk.ukim.finki.db.distributorapp.service.UsersService;
+//import org.springframework.stereotype.Controller;
+//import org.springframework.ui.Model;
+//import org.springframework.web.bind.annotation.GetMapping;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//
+//@Controller
+//@RequestMapping("/login")
+//public class LoginController {
+//    private final UsersService usersService;
+//
+//    public LoginController(UsersService usersService) {
+//        this.usersService = usersService;
+//    }
+//
+//    @GetMapping
+//    public String getLoginPage() {
+//        return "login";
+//    }
+//
+//    @PostMapping
+//    public String login(HttpServletRequest req, Model model) {
+//        Users user = null;
+//        try {
+//            user = this.usersService.login(req.getParameter("email"), req.getParameter("password"));
+//            return "redirect:/home";
+//        } catch (InvalidUserCredentialsException e) {
+//            model.addAttribute("hasError", true);
+//            model.addAttribute("error", e.getMessage());
+//            return "login";
+//        }
+//    }
+//}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/RegisterController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/RegisterController.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/security/auth/RegisterController.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -0,0 +1,55 @@
+//package mk.ukim.finki.db.distributorapp.web;
+//
+//import mk.ukim.finki.db.distributorapp.model.entities.City;
+//import mk.ukim.finki.db.distributorapp.model.exceptions.InvalidArgumentsException;
+//import mk.ukim.finki.db.distributorapp.service.CityService;
+//import mk.ukim.finki.db.distributorapp.service.UsersService;
+//import org.springframework.stereotype.Controller;
+//import org.springframework.ui.Model;
+//import org.springframework.web.bind.annotation.GetMapping;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RequestParam;
+//
+//@Controller
+//@RequestMapping("/register")
+//public class RegisterController {
+//    private final UsersService usersService;
+//    private final CityService cityService;
+//
+//    public RegisterController(UsersService usersService, CityService cityService) {
+//        this.usersService = usersService;
+//        this.cityService = cityService;
+//    }
+//
+//    @GetMapping
+//    public String getRegisterPage(@RequestParam(required = false) String error, Model model) {
+//        if (error != null && !error.isEmpty()) {
+//            model.addAttribute("hasError", true);
+//            model.addAttribute("error", error);
+//        }
+//
+//        model.addAttribute("bodyContent", "register");
+//        model.addAttribute("cities", cityService.listCities());
+//        return "register";
+//    }
+//
+//    @PostMapping
+//    public String register(
+//            @RequestParam String email,
+//            @RequestParam String password,
+//            @RequestParam String repeatedPassword,
+//            @RequestParam String name,
+//            @RequestParam String surname,
+//            @RequestParam String mobile,
+//            @RequestParam Long city
+//    ) {
+//        try {
+//            City selectedCity = this.cityService.getCityObjById(city).get();
+//            this.usersService.register(name, surname, email, password, repeatedPassword, mobile, selectedCity);
+//            return "redirect:/login";
+//        } catch (InvalidArgumentsException exception) {
+//            return "redirect:/register?error=" + exception.getMessage();
+//        }
+//    }
+//}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleUnitService.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleUnitService.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/ArticleUnitService.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/CategoryService.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/CategoryService.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/CategoryService.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -2,8 +2,6 @@
 
 import mk.ukim.finki.db.distributorapp.model.dto.CategoryDto;
-import mk.ukim.finki.db.distributorapp.model.entities.Category;
 
 import java.util.List;
-import java.util.Optional;
 
 public interface CategoryService {
@@ -11,5 +9,7 @@
     List<CategoryDto> listCategories();
 
-    Optional<Category> getCategoryById(Long id);
+    CategoryDto getCategoryById(Long id);
+
+    List<CategoryDto> searchCategories(String text);
 
     Integer create(CategoryDto categoryDto);
@@ -18,5 +18,3 @@
 
     void deleteById(Long id);
-
-    List<CategoryDto> searchCategories(String text);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/CustomerWeekdayService.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/CustomerWeekdayService.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/CustomerWeekdayService.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -14,4 +14,4 @@
     Integer edit(CustomerWeekdayDto customerWeekdayDto);
 
-    void delete(Long customerWeekdayId);
+    void deleteById(Long customerWeekdayId);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/UsersService.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/UsersService.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/UsersService.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,23 +1,11 @@
 package mk.ukim.finki.db.distributorapp.service;
 
-import mk.ukim.finki.db.distributorapp.model.entities.City;
 import mk.ukim.finki.db.distributorapp.model.entities.Users;
-import org.springframework.http.ResponseEntity;
 
 import java.util.List;
-import java.util.Optional;
 
 public interface UsersService {
-    Users register(String name, String surname, String email,
-                   String password, String mobile, String image, City city);
-
     List<Users> findAllUsers();
 
-    ResponseEntity<?> confirmEmail(String confirmationToken);
 
-    Users login(String username, String password);
-
-    String getUserSalt(String username);
-
-    Optional<Users> getUserByEmail(String email);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CategoryServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CategoryServiceImpl.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CategoryServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -9,5 +9,4 @@
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Optional;
 
 @Service
@@ -32,8 +31,4 @@
     }
 
-    private boolean categoryInvalid(String name) {
-        return name == null || name.isEmpty();
-    }
-
     @Override
     public List<CategoryDto> listCategories() {
@@ -43,6 +38,10 @@
 
     @Override
-    public Optional<Category> getCategoryById(Long id) {
-        return this.categoryRepository.findById(id);
+    public CategoryDto getCategoryById(Long id) {
+        Category ctg = this.categoryRepository.findById(id).get();
+        return new CategoryDto(
+                ctg.getCategoryId(),
+                ctg.getCategoryName()
+        );
     }
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CityServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CityServiceImpl.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CityServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -43,4 +43,5 @@
         City city = cityRepository.findById(id).orElse(null);
 
+        assert city != null;
         return new CityDto(
                 city.getCityId(),
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CustomerServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CustomerServiceImpl.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CustomerServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -47,5 +47,5 @@
     @Override
     public List<CustomerDto> findCustomerByName(String name) {
-        List<Customer> customers = this.customerRepository.findAllByName(name);
+        List<Customer> customers = this.customerRepository.findAllByName("'"+name+"'");
         return buildDto(customers);
     }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CustomerWeekdayServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CustomerWeekdayServiceImpl.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/CustomerWeekdayServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -67,5 +67,5 @@
 
     @Override
-    public void delete(Long customerWeekdayId) {
+    public void deleteById(Long customerWeekdayId) {
         this.customerWeekdayRepository.deleteById(customerWeekdayId);
     }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/DeliveryStatusServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/DeliveryStatusServiceImpl.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/DeliveryStatusServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -64,5 +64,5 @@
     @Override
     public List<DeliveryStatusDto> getDeliveryStatusByName(String name) {
-        List<DeliveryStatus> deliveryStatuses = this.deliveryStatusRepository.findAllByName(name);
+        List<DeliveryStatus> deliveryStatuses = this.deliveryStatusRepository.findAllByName("'"+name+"'");
         return buildDto(deliveryStatuses);
     }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ManufacturerServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ManufacturerServiceImpl.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ManufacturerServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -41,5 +41,5 @@
     @Override
     public List<ManufacturerDto> findAllManufacturersByName(String name) {
-        List<Manufacturer> manufacturers = this.manufacturerRepository.findAllByName(name);
+        List<Manufacturer> manufacturers = this.manufacturerRepository.findAllByName("'"+name+"'");
         return buildDto(manufacturers);
     }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ProFormaStatusServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ProFormaStatusServiceImpl.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/ProFormaStatusServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -66,5 +66,5 @@
     @Override
     public List<ProFormaStatusDto> getProFormaStatusByName(String name) {
-        List<ProFormaStatus> statuses = this.proFormaStatusRepository.findAllByName(name);
+        List<ProFormaStatus> statuses = this.proFormaStatusRepository.findAllByName("'"+name+"'");
         return buildDto(statuses);
     }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/UsersServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/UsersServiceImpl.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/UsersServiceImpl.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,21 +1,10 @@
 package mk.ukim.finki.db.distributorapp.service.impl;
 
-import mk.ukim.finki.db.distributorapp.model.entities.City;
 import mk.ukim.finki.db.distributorapp.model.entities.Users;
-import mk.ukim.finki.db.distributorapp.model.exceptions.InvalidArgumentsException;
-import mk.ukim.finki.db.distributorapp.model.exceptions.InvalidUserCredentialsException;
-import mk.ukim.finki.db.distributorapp.repository.ConfirmationTokenRepository;
 import mk.ukim.finki.db.distributorapp.repository.UsersRepository;
-import mk.ukim.finki.db.distributorapp.security.ConfirmationToken;
-import mk.ukim.finki.db.distributorapp.security.EmailService;
-import mk.ukim.finki.db.distributorapp.security.PassEncryption;
-import mk.ukim.finki.db.distributorapp.security.PassEncryptionPasswordEncoder;
 import mk.ukim.finki.db.distributorapp.service.UsersService;
-import org.springframework.http.ResponseEntity;
-import org.springframework.mail.SimpleMailMessage;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
-import java.util.Optional;
 
 @Service
@@ -23,56 +12,7 @@
 
     private final UsersRepository usersRepository;
-    private final ConfirmationTokenRepository confirmationTokenRepository;
-    private final EmailService emailService;
-    private final PassEncryptionPasswordEncoder passwordEncoder;
 
-    public UsersServiceImpl(UsersRepository usersRepository, ConfirmationTokenRepository confirmationTokenRepository, EmailService emailService, PassEncryptionPasswordEncoder passwordEncoder) {
+    public UsersServiceImpl(UsersRepository usersRepository) {
         this.usersRepository = usersRepository;
-        this.confirmationTokenRepository = confirmationTokenRepository;
-        this.emailService = emailService;
-        this.passwordEncoder = passwordEncoder;
-    }
-
-    @Override
-    public String getUserSalt(String username) {
-        return usersRepository.findUserByUserName(username).get().getUserSalt();
-    }
-
-    @Override
-    public Optional<Users> getUserByEmail(String email) {
-        return this.usersRepository.findUserByUserEmailIgnoreCase(email);
-    }
-
-    @Override
-    public Users login(String username, String password) {
-        if (username == null || username.isEmpty() || password == null || password.isEmpty()) {
-            throw new InvalidArgumentsException();
-        }
-
-        String secPassword = passwordEncoder.encodeWithSalt(password, usersRepository.findUserByUserName(username).get().getUserSalt());
-
-        return usersRepository.findUserByUserNameAndUserPassword(username, secPassword).orElseThrow(InvalidUserCredentialsException::new);
-    }
-
-    @Override
-    public Users register(String name, String surname, String email, String password, String mobile, String image, City city) {
-        String saltValue = PassEncryption.genSaltValue(30);
-        String safePass = passwordEncoder.encodeWithSalt(password, saltValue);
-
-        this.usersRepository.create(name, surname, safePass, email, mobile, saltValue, false, image, city.getCityId());
-        Users user = this.usersRepository.findUserByUserEmailIgnoreCase(email).orElseThrow(InvalidUserCredentialsException::new);
-
-        ConfirmationToken confirmationToken = new ConfirmationToken(user);
-        confirmationTokenRepository.save(confirmationToken);
-
-        SimpleMailMessage mailMessage = new SimpleMailMessage();
-        mailMessage.setTo(email);
-        mailMessage.setSubject("Complete Registration!");
-        mailMessage.setText(("To confirm your account, please click here: " +
-                "https://localhost:8080/register/confirm-account?token=" + confirmationToken.getConfirmationToken()));
-        System.out.println("Confirmation Token: " + confirmationToken.getConfirmationToken());
-        emailService.sendEmail(mailMessage);
-
-        return user;
     }
 
@@ -81,16 +21,3 @@
         return this.usersRepository.listAll();
     }
-
-    @Override
-    public ResponseEntity<?> confirmEmail(String confirmationToken) {
-        ConfirmationToken token = this.confirmationTokenRepository.findConfirmationTokenByToken(confirmationToken);
-
-        if (token != null) {
-            Users user = this.usersRepository.findUserByUserEmailIgnoreCase(token.getUser().getUserEmail()).get();
-//            this.usersRepository.edit(user);
-            return ResponseEntity.ok("Email verified successfully!");
-        }
-
-        return ResponseEntity.badRequest().body("Error: Couldn't verify email");
-    }
 }
Index: ckend/src/main/java/mk/ukim/finki/db/distributorapp/web/LoginController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/LoginController.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ 	(revision )
@@ -1,39 +1,0 @@
-package mk.ukim.finki.db.distributorapp.web;
-
-import jakarta.servlet.http.HttpServletRequest;
-import mk.ukim.finki.db.distributorapp.model.entities.Users;
-import mk.ukim.finki.db.distributorapp.model.exceptions.InvalidUserCredentialsException;
-import mk.ukim.finki.db.distributorapp.service.UsersService;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-@Controller
-@RequestMapping("/login")
-public class LoginController {
-    private final UsersService usersService;
-
-    public LoginController(UsersService usersService) {
-        this.usersService = usersService;
-    }
-
-    @GetMapping
-    public String getLoginPage() {
-        return "login";
-    }
-
-    @PostMapping
-    public String login(HttpServletRequest req, Model model) {
-        Users user = null;
-        try {
-            user = this.usersService.login(req.getParameter("email"), req.getParameter("password"));
-            return "redirect:/home";
-        } catch (InvalidUserCredentialsException e) {
-            model.addAttribute("hasError", true);
-            model.addAttribute("error", e.getMessage());
-            return "login";
-        }
-    }
-}
Index: ckend/src/main/java/mk/ukim/finki/db/distributorapp/web/RegisterController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/RegisterController.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ 	(revision )
@@ -1,55 +1,0 @@
-package mk.ukim.finki.db.distributorapp.web;
-
-import mk.ukim.finki.db.distributorapp.model.entities.City;
-import mk.ukim.finki.db.distributorapp.model.exceptions.InvalidArgumentsException;
-import mk.ukim.finki.db.distributorapp.service.CityService;
-import mk.ukim.finki.db.distributorapp.service.UsersService;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-@Controller
-@RequestMapping("/register")
-public class RegisterController {
-    private final UsersService usersService;
-    private final CityService cityService;
-
-    public RegisterController(UsersService usersService, CityService cityService) {
-        this.usersService = usersService;
-        this.cityService = cityService;
-    }
-
-    @GetMapping
-    public String getRegisterPage(@RequestParam(required = false) String error, Model model) {
-        if (error != null && !error.isEmpty()) {
-            model.addAttribute("hasError", true);
-            model.addAttribute("error", error);
-        }
-
-        model.addAttribute("bodyContent", "register");
-        model.addAttribute("cities", cityService.listCities());
-        return "register";
-    }
-
-    @PostMapping
-    public String register(
-            @RequestParam String email,
-            @RequestParam String password,
-            @RequestParam String repeatedPassword,
-            @RequestParam String name,
-            @RequestParam String surname,
-            @RequestParam String mobile,
-            @RequestParam Long city
-    ) {
-        try {
-            City selectedCity = this.cityService.getCityObjById(city).get();
-            this.usersService.register(name, surname, email, password, repeatedPassword, mobile, selectedCity);
-            return "redirect:/login";
-        } catch (InvalidArgumentsException exception) {
-            return "redirect:/register?error=" + exception.getMessage();
-        }
-    }
-}
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/web/UsersController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/UsersController.java	(revision aa2935819fdc9dad9171dae4c990af1f0bf5c342)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/web/UsersController.java	(revision a846630b9a763380297b3f930191dc930be61ebe)
@@ -1,10 +1,17 @@
 package mk.ukim.finki.db.distributorapp.web;
 
+import mk.ukim.finki.db.distributorapp.model.dto.UserDto;
+import mk.ukim.finki.db.distributorapp.model.entities.Users;
 import mk.ukim.finki.db.distributorapp.service.UsersService;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @RestController()
-@RequestMapping("/api/users")
+@RequestMapping("/users")
 public class UsersController {
 
@@ -15,4 +22,28 @@
     }
 
+    private List<UserDto> buildDto(List<mk.ukim.finki.db.distributorapp.model.entities.Users> users) {
+        List<UserDto> dtos = new ArrayList<>();
+        for (mk.ukim.finki.db.distributorapp.model.entities.Users user : users) {
+            UserDto dto = new UserDto(
+                    user.getUserId(),
+                    user.getUsername(),
+                    user.getUserSurname(),
+                    user.getUserEmail(),
+                    user.getUserMobile(),
+                    user.getUserImage(),
+                    user.getCity().getCityId(),
+                    user.getCity().getCityName(),
+                    user.getCity().getRegion().getRegionName()
+            );
+            dtos.add(dto);
+        }
+        return dtos;
+    }
+
+    @GetMapping("/all")
+    public ResponseEntity<List<UserDto>> getAllUsers(){
+        List<Users> users = this.usersService.findAllUsers();
+        return ResponseEntity.ok(buildDto(users));
+    }
 
 }
