Index: backend/pom.xml
===================================================================
--- backend/pom.xml	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/pom.xml	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -65,28 +65,4 @@
         </dependency>
 
-      <dependency>
-        <groupId>com.auth0</groupId>
-        <artifactId>java-jwt</artifactId>
-        <version>4.4.0</version>
-      </dependency>
-
-      <dependency>
-        <groupId>io.jsonwebtoken</groupId>
-        <artifactId>jjwt-api</artifactId>
-        <version>0.12.3</version>
-      </dependency>
-
-      <dependency>
-        <groupId>io.jsonwebtoken</groupId>
-        <artifactId>jjwt-impl</artifactId>
-        <version>0.12.6</version>
-      </dependency>
-
-      <dependency>
-        <groupId>io.jsonwebtoken</groupId>
-        <artifactId>jjwt-jackson</artifactId>
-        <version>0.12.5</version>
-      </dependency>
-
         <dependency>
             <groupId>org.thymeleaf.extras</groupId>
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/City.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/City.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/City.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -24,6 +24,6 @@
   private List<Users> users;
 
-  @OneToMany(mappedBy = "city")
-  private List<Warehouse> warehouses;
+  @OneToOne(mappedBy = "city")
+  private Warehouse warehouse;
 
   @ManyToOne(fetch = FetchType.LAZY, optional = false)
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/model/Warehouse.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/model/Warehouse.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/model/Warehouse.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -21,6 +21,6 @@
     private String warehouseAddress;
 
-    @ManyToOne
-    @JoinColumn(name = "city_id", nullable = false)
+    @OneToOne
+    @JoinColumn(name = "city_id", unique = true, nullable = false)
     private City city;
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleRepository.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleRepository.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -25,5 +25,5 @@
             value = "select * " +
                     "from article a " +
-                    "where a.art_name like :name"
+                    "where a.art_name like ?1"
     )
     List<Article> findAllByName(@NonNull @Param("name") String name);
@@ -33,5 +33,5 @@
             value = "select * " +
                     "from article a " +
-                    "where a.art_id=:id"
+                    "where a.art_id=?1"
     )
     Optional<Article> findById(@NonNull @Param("id") Long id);
@@ -42,5 +42,5 @@
             nativeQuery = true,
             value = "insert into article(art_name, art_image, art_weight, ctg_id, man_id) " +
-                    "values (:name,:image,:weight,:ctg,:man)"
+                    "values (?1,?2,?3,?4,?5)"
     )
     Optional<Article> create(
@@ -56,6 +56,6 @@
             nativeQuery = true,
             value = "update article " +
-                    "set art_name=:name,art_image=:img,art_weight=:weight,ctg_id=:ctg,man_id=:man " +
-                    "where art_id=:id"
+                    "set art_name=?2,art_image=?3,art_weight=?4,ctg_id=?5,man_id=?6 " +
+                    "where art_id=?1"
     )
     Optional<Article> edit(
@@ -71,5 +71,5 @@
     @Query(
             nativeQuery = true,
-            value = "delete from article where art_id=:id"
+            value = "delete from article where art_id=?1"
     )
     void delete(@Param("id") Long id);
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleUnitRepository.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleUnitRepository.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ArticleUnitRepository.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -24,5 +24,5 @@
             value = "select * " +
                     "from article_unit au join article a on au.art_id = a.art_id " +
-                    "where a.art_name like :name"
+                    "where a.art_name like ?1"
     )
     List<ArticleUnit> findAllByName(@NonNull @Param("name") String name);
@@ -30,5 +30,5 @@
     @Query(
             nativeQuery = true,
-            value = "select * from article_unit where unit_id=:id"
+            value = "select * from article_unit where unit_id=?1"
     )
     Optional<ArticleUnit> findById(@NonNull @Param("id") Long id);
@@ -36,5 +36,5 @@
     @Query(
             nativeQuery = true,
-            value = "select * from article_unit where wh_id=:wh"
+            value = "select * from article_unit where wh_id=?1"
     )
     List<ArticleUnit> findAllByWarehouse(@NonNull @Param("wh") Integer wh_id);
@@ -45,5 +45,5 @@
             nativeQuery = true,
             value = "insert into article_unit(unit_expiration_date, unit_serial_number, unit_batch_number, unit_manufacture_date, unit_cost_price, art_id, wh_id, ord_id) " +
-                    "values (:exp_date,:ser_no,:batch:no,:man_date,:cost_price,:art,:wh,:ord)"
+                    "values (?1,?2,?3,?4,?5,?6,?7,?8)"
     )
     Optional<ArticleUnit> create(
@@ -63,6 +63,6 @@
             nativeQuery = true,
             value = "update article_unit " +
-                    "set unit_expiration_date=:exp_date, unit_serial_number=:ser_no, unit_batch_number=:batch_no,unit_manufacture_date=:man_date,unit_cost_price=:cost_price,art_id=:art,wh_id=:wh,ord_id=:ord " +
-                    "where unit_id=:id"
+                    "set unit_expiration_date=?2, unit_serial_number=?3, unit_batch_number=?4,unit_manufacture_date=?5,unit_cost_price=?6,art_id=?7,wh_id=?8,ord_id=?9 " +
+                    "where unit_id=?1"
     )
     Optional<ArticleUnit> edit(
@@ -82,5 +82,5 @@
     @Query(
             nativeQuery = true,
-            value = "delete from article_unit where unit_id=:id"
+            value = "delete from article_unit where unit_id=?1"
     )
     void delete(@NonNull @Param("id") 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 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/DeliveryStatusRepository.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -15,5 +15,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "select * from delivery_status"
     )
     List<DeliveryStatus> listAll();
@@ -21,5 +21,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "select * from delivery_status where del_status_name like ?1"
     )
     List<DeliveryStatus> findAllByName(@NonNull @Param("name") String name);
@@ -27,5 +27,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "select * from delivery_status where del_status_id=?1"
     )
     Optional<DeliveryStatus> findById(@NonNull @Param("id") Short id);
@@ -35,7 +35,8 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "insert into delivery_status(del_status_name, del_status_desc) " +
+                    "values (?1,?2)"
     )
-    Optional<DeliveryStatus> create(String name, String description);
+    Optional<DeliveryStatus> create(@NonNull String name, @NonNull String description);
 
     @Modifying
@@ -43,7 +44,9 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "update delivery_status " +
+                    "set del_status_name=?2,del_status_desc=?3 " +
+                    "where del_status_id=?1"
     )
-    Optional<DeliveryStatus> edit(Short id, String name, String description);
+    Optional<DeliveryStatus> edit(@NonNull Short id, @NonNull String name, @NonNull String description);
 
     @Modifying
@@ -51,5 +54,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "delete from delivery_status where del_status_id=?1"
     )
     void delete(Short 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 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/OrderStatusRepository.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -15,5 +15,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "select * from order_status"
     )
     List<OrderStatus> listAll();
@@ -21,5 +21,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "select * from order_status where ord_status_name like ?1"
     )
     List<OrderStatus> findAllByName(@NonNull @Param("name") String name);
@@ -27,5 +27,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "select * from order_status where ord_status_id=?1"
     )
     Optional<OrderStatus> findById(@NonNull @Param("id") Short id);
@@ -35,7 +35,8 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "insert into order_status(ord_status_name, ord_status_desc) " +
+                    "values (?1,?2)"
     )
-    Optional<OrderStatus> create(String name, String description);
+    Optional<OrderStatus> create(@NonNull String name, @NonNull String description);
 
     @Modifying
@@ -43,7 +44,9 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "update order_status " +
+                    "set ord_status_name=?2,ord_status_desc=?3 " +
+                    "where ord_status_id=?1"
     )
-    Optional<OrderStatus> edit(Short id, String name, String description);
+    Optional<OrderStatus> edit(@NonNull Short id, @NonNull String name, @NonNull String description);
 
     @Modifying
@@ -51,6 +54,6 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "delete from order_status where ord_status_id=?1"
     )
-    void delete(Short id);
+    void delete(@NonNull Short 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 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/ProFormaStatusRepository.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -15,5 +15,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "select * from pro_forma_status"
     )
     List<ProFormaStatus> listAll();
@@ -21,5 +21,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "select * from pro_forma_status where pf_status_name like ?1"
     )
     List<ProFormaStatus> findAllByName(@NonNull @Param("name") String name);
@@ -27,5 +27,5 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "select * from pro_forma_status where pf_status_id=?1"
     )
     Optional<ProFormaStatus> findById(@NonNull @Param("id") Short id);
@@ -35,7 +35,8 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "insert into pro_forma_status(pf_status_name, pf_status_desc) " +
+                    "values (?1,?2)"
     )
-    Optional<ProFormaStatus> create(String name, String description);
+    Optional<ProFormaStatus> create(@NonNull String name, @NonNull String description);
 
     @Modifying
@@ -43,7 +44,9 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "update pro_forma_status " +
+                    "set pf_status_name=?2,pf_status_desc=?3 " +
+                    "where pf_status_id=?1"
     )
-    Optional<ProFormaStatus> edit(Short id, String name, String description);
+    Optional<ProFormaStatus> edit(@NonNull Short id, @NonNull String name, @NonNull String description);
 
     @Modifying
@@ -51,6 +54,6 @@
     @Query(
             nativeQuery = true,
-            value = ""
+            value = "delete from pro_forma_status where pf_status_id=?1"
     )
-    void delete(Short id);
+    void delete(@NonNull Short id);
 }
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 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/repository/RegionRepository.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -12,5 +12,5 @@
 import java.util.Optional;
 
-public interface RegionRepository extends JpaRepository<Region, Long> {
+public interface RegionRepository extends JpaRepository<Region, Integer> {
     @Query(
             nativeQuery = true,
@@ -26,5 +26,5 @@
                     "where region_id=:id"
     )
-    Optional<Region> findById(@NonNull @Param("id") Long id);
+    Optional<Region> findById(@NonNull @Param("id") Integer id);
 
     @Query(
@@ -55,5 +55,5 @@
     )
     Optional<Region> edit(
-            @NonNull @Param("id") Long id,
+            @NonNull @Param("id") Integer id,
             @NonNull @Param("name") String name);
 
@@ -65,4 +65,4 @@
                     "where region_id=:id"
     )
-    void deleteById(@NonNull @Param("id") Long id);
+    void deleteById(@NonNull @Param("id") Integer id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/RegionService.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/RegionService.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/RegionService.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -1,4 +1,21 @@
 package mk.ukim.finki.db.distributorapp.service;
 
+import mk.ukim.finki.db.distributorapp.model.Region;
+
+import java.util.List;
+import java.util.Optional;
+
 public interface RegionService {
+
+    List<Region> listRegions();
+
+    Optional<Region> getRegionById(Integer id);
+
+    List<Region> searchRegions(String name);
+
+    Optional<Region> createRegion(String name);
+
+    Optional<Region> edit(Integer id, String name);
+
+    void delete(Integer id);
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/RegionServiceImpl.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/RegionServiceImpl.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/service/impl/RegionServiceImpl.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -1,8 +1,49 @@
 package mk.ukim.finki.db.distributorapp.service.impl;
 
+import mk.ukim.finki.db.distributorapp.model.Region;
+import mk.ukim.finki.db.distributorapp.repository.RegionRepository;
 import mk.ukim.finki.db.distributorapp.service.RegionService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Optional;
+
 @Service
 public class RegionServiceImpl implements RegionService {
+
+    private final RegionRepository regionRepository;
+
+    public RegionServiceImpl(RegionRepository regionRepository) {
+        this.regionRepository = regionRepository;
+    }
+
+    @Override
+    public List<Region> listRegions() {
+        return this.regionRepository.listAll();
+    }
+
+    @Override
+    public Optional<Region> getRegionById(Integer id) {
+        return this.regionRepository.findById(id);
+    }
+
+    @Override
+    public List<Region> searchRegions(String name) {
+        return this.regionRepository.findByName("'"+name+"'");
+    }
+
+    @Override
+    public Optional<Region> createRegion(String name) {
+        return this.regionRepository.create(name);
+    }
+
+    @Override
+    public Optional<Region> edit(Integer id, String name) {
+        return this.regionRepository.edit(id, name);
+    }
+
+    @Override
+    public void delete(Integer id) {
+        this.regionRepository.deleteById(id);
+    }
 }
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/CustomerController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/CustomerController.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/CustomerController.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -30,12 +30,8 @@
     }
 
-    @GetMapping("/home")
-    public String customerHome() {
-        return "userCustomer/home";
-    }
-
     @PostMapping("/add")
     public ResponseEntity<Customer> createCustomer(@RequestBody Customer customer) {
         Customer newCustomer = this.customerService.create(
+                customer.getUserId(),
                 customer.getCustomerEDB(),
                 customer.getCustomerCompanyName(),
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/DriverController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/DriverController.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/DriverController.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -1,10 +1,10 @@
 package mk.ukim.finki.db.distributorapp.web.controller;
 
-import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-@Controller
-@RequestMapping("/driver")
+@RestController
+@RequestMapping("/api/driver")
 public class DriverController {
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/HomeController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/HomeController.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/HomeController.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -7,9 +7,11 @@
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-@Controller
+@RestController
+@RequestMapping("/api/home")
 public class HomeController {
 
Index: backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/UsersController.java
===================================================================
--- backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/UsersController.java	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/java/mk/ukim/finki/db/distributorapp/web/controller/UsersController.java	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -8,5 +8,6 @@
 import java.util.List;
 
-@RestController("/api/users")
+@RestController()
+@RequestMapping("/api/users")
 public class UsersController {
 
Index: backend/src/main/resources/application.properties
===================================================================
--- backend/src/main/resources/application.properties	(revision 350a18d4c3b60a15865626a076ee70485f87399b)
+++ backend/src/main/resources/application.properties	(revision a7e0bad885ca2bbe8cfd6ae927e16d56cccae7f6)
@@ -1,5 +1,4 @@
 spring.application.name=DistributorApp
-# PostgreSQL
-# PostgreSQL
+## PostgreSQL
 spring.datasource.url=jdbc:postgresql://localhost:5432/distributor_app
 spring.datasource.username=postgres
@@ -11,11 +10,11 @@
 spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
 
-#spring.jpa.hibernate.ddl-auto=validate
+##spring.jpa.hibernate.ddl-auto=validate
 spring.jpa.show-sql=true
 
 spring.datasource.hikari.schema=IND0_185022
 
-spring.datasource.driver-class-name=org.postgresql.Driver
-spring.data.jdbc.dialect=postgresql
+#spring.datasource.driver-class-name=org.postgresql.Driver
+#spring.data.jdbc.dialect=postgresql
 
 # Email properties / smtp mail properties
@@ -27,5 +26,5 @@
 spring.mail.properties.mail.smtp.starttls.enable=true
 
-# Logging/Debugging:
-logging.level.org.hibernate.SQL=DEBUG
-logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
+## Logging/Debugging:
+#logging.level.org.hibernate.SQL=DEBUG
+#logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
