Index: src/main/java/com/example/autopartz/config/WebSecurityConfig.java
===================================================================
--- src/main/java/com/example/autopartz/config/WebSecurityConfig.java	(revision 9dcbf444a75f533d0d8f1bfbf8d0603e8dea6f85)
+++ src/main/java/com/example/autopartz/config/WebSecurityConfig.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -28,5 +28,5 @@
         http.csrf().disable()
                 .authorizeRequests()
-                .antMatchers("/", "/products", "/services", "/filtered", "/login", "/register","/registerWarehouseman","/finishRegister","/test/*","/access_denied").permitAll()
+                .antMatchers("/", "/products", "/services", "/filtered", "/login", "/register","/registerWarehouseman","/finishRegister","/test/*","/access_denied","/carCategoryReport","/partManufacturersReport","/mostPurchasedPart").permitAll()
                 .antMatchers("/orders","/repairs","/reviews","/part/*","/currentOrder","/addCarSampleForUser","/repairs/addReview/*").hasRole("CLIENT")
                 .antMatchers("/viewUsers","/approve/*").hasRole("ADMIN")
Index: src/main/java/com/example/autopartz/controller/AdminController.java
===================================================================
--- src/main/java/com/example/autopartz/controller/AdminController.java	(revision 9dcbf444a75f533d0d8f1bfbf8d0603e8dea6f85)
+++ src/main/java/com/example/autopartz/controller/AdminController.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -37,5 +37,11 @@
     public String getAllUsers(Model model){
         List<User> pendingList = userService.findAllUsers().stream().filter(u->u.getAuthorities().contains(Role.ROLE_PENDING_DELIVERYMAN) || u.getAuthorities().contains(Role.ROLE_PENDING_WAREHOUSEMAN)).toList();
-        model.addAttribute("users", pendingList);
+        if(pendingList.size()==0){
+            model.addAttribute("hasError",true);
+        }
+        else {
+            model.addAttribute("hasError",false);
+            model.addAttribute("users", pendingList);
+        }
         model.addAttribute("bodyContent", "viewUsers");
         return "master-template";
Index: src/main/java/com/example/autopartz/controller/HomeController.java
===================================================================
--- src/main/java/com/example/autopartz/controller/HomeController.java	(revision 9dcbf444a75f533d0d8f1bfbf8d0603e8dea6f85)
+++ src/main/java/com/example/autopartz/controller/HomeController.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -37,6 +37,9 @@
     private final DeliveryService deliveryService;
     private final PartIsInStockInWarehouseRepository partIsInStockInWarehouseRepository;
+    private final CarCategoryReportRepository carCategoryReportRepository;
+    private final PartManufacturersReportRepository partManufacturersReportRepository;
+    private final MostPurchasedPartRepository mostPurchasedPartRepository;
     public HomeController(LoginService loginService, PartService partService, PartsForCarTypeAndCategoryRepository partsForCarTypeAndCategoryRepository, CarService carService, CategoryService categoryService, RepairShopReviewSummaryRepository repairShopReviewSummaryRepository, WarehouseRepository warehouseRepository,
-                          OrderContainsPartRepository orderContainsPartRepository, OrderService orderService, UserService userService, DeliveriesInProgressRepository deliveriesInProgressRepository, DeliveryService deliveryService, PartIsInStockInWarehouseRepository partIsInStockInWarehouseRepository) {
+                          OrderContainsPartRepository orderContainsPartRepository, OrderService orderService, UserService userService, DeliveriesInProgressRepository deliveriesInProgressRepository, DeliveryService deliveryService, PartIsInStockInWarehouseRepository partIsInStockInWarehouseRepository, CarCategoryReportRepository carCategoryReportRepository, PartManufacturersReportRepository partManufacturersReportRepository, MostPurchasedPartRepository mostPurchasedPartRepository) {
         this.loginService = loginService;
         this.partService = partService;
@@ -52,4 +55,7 @@
         this.deliveryService = deliveryService;
         this.partIsInStockInWarehouseRepository = partIsInStockInWarehouseRepository;
+        this.carCategoryReportRepository = carCategoryReportRepository;
+        this.partManufacturersReportRepository = partManufacturersReportRepository;
+        this.mostPurchasedPartRepository = mostPurchasedPartRepository;
     }
 
@@ -231,3 +237,22 @@
         return "master-template";
     }
+    @GetMapping("/carCategoryReport")
+    public String getCarCategoryInfo(Model model){
+        model.addAttribute("data",carCategoryReportRepository.findAll());
+        model.addAttribute("bodyContent","carCategoryReport");
+        return "master-template";
+    }
+    @GetMapping("/partManufacturersReport")
+    public String getPartManufacturersReport(Model model){
+        model.addAttribute("data",partManufacturersReportRepository.findAll());
+        model.addAttribute("bodyContent","partManufacturersReport");
+        return "master-template";
+
+    }
+    @GetMapping("/mostPurchasedPart")
+    public String getMostPurchasedPart(Model model){
+        model.addAttribute("data",mostPurchasedPartRepository.findAll());
+        model.addAttribute("bodyContent","mostPurchasedPart");
+        return "master-template";
+    }
 }
Index: src/main/java/com/example/autopartz/controller/TestController.java
===================================================================
--- src/main/java/com/example/autopartz/controller/TestController.java	(revision 9dcbf444a75f533d0d8f1bfbf8d0603e8dea6f85)
+++ 	(revision )
@@ -1,45 +1,0 @@
-package com.example.autopartz.controller;
-
-import com.example.autopartz.model.Client;
-import com.example.autopartz.model.Order;
-import com.example.autopartz.model.Part;
-import com.example.autopartz.model.User;
-import com.example.autopartz.model.manytomany.OrderContainsPart;
-import com.example.autopartz.repository.OrderContainsPartRepository;
-import com.example.autopartz.service.OrderService;
-import com.example.autopartz.service.PartService;
-import com.example.autopartz.service.UserService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("/test")
-public class TestController {
-    private final OrderService orderService;
-    private final PartService partService;
-    private final OrderContainsPartRepository orderContainsPartRepository;
-    private final UserService userService;
-
-    public TestController(OrderService orderService, PartService partService, OrderContainsPartRepository orderContainsPartRepository, UserService userService) {
-        this.orderService = orderService;
-        this.partService = partService;
-        this.orderContainsPartRepository = orderContainsPartRepository;
-        this.userService = userService;
-    }
-
-    @GetMapping("/m")
-    public void getPartsInOrder(){
-
-        User u = userService.findByUsername("client13");
-        Order o = orderService.create((Client) u);
-        orderContainsPartRepository.save(new OrderContainsPart(5,o.getOrderid(),2));
-        orderContainsPartRepository.save(new OrderContainsPart(7,o.getOrderid(),1));
-    }
-    @GetMapping("/t")
-    public List<Part> getParts(){
-        return orderService.findById(24).getPartList();
-    }
-}
Index: src/main/java/com/example/autopartz/model/views/CarCategoryReport.java
===================================================================
--- src/main/java/com/example/autopartz/model/views/CarCategoryReport.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
+++ src/main/java/com/example/autopartz/model/views/CarCategoryReport.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -0,0 +1,33 @@
+package com.example.autopartz.model.views;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.annotations.Immutable;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.Table;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Entity
+@Getter
+@Setter
+@ToString
+@RequiredArgsConstructor
+@Immutable
+@Table(name = "`car_category_report`")
+@IdClass(CarCategoryReportId.class)
+public class CarCategoryReport implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    @Id
+    String cname;
+    @Id
+    String cmname;
+    Long partsordered;
+}
Index: src/main/java/com/example/autopartz/model/views/CarCategoryReportId.java
===================================================================
--- src/main/java/com/example/autopartz/model/views/CarCategoryReportId.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
+++ src/main/java/com/example/autopartz/model/views/CarCategoryReportId.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -0,0 +1,11 @@
+package com.example.autopartz.model.views;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CarCategoryReportId implements Serializable {
+    String cname;
+    String cmname;
+}
Index: src/main/java/com/example/autopartz/model/views/MostPurchasedPart.java
===================================================================
--- src/main/java/com/example/autopartz/model/views/MostPurchasedPart.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
+++ src/main/java/com/example/autopartz/model/views/MostPurchasedPart.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -0,0 +1,30 @@
+package com.example.autopartz.model.views;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.annotations.Immutable;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Entity
+@Getter
+@Setter
+@ToString
+@RequiredArgsConstructor
+@Immutable
+@Table(name = "`most_purchased_part`")
+public class MostPurchasedPart implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    @Id
+    String pname;
+    String cmname;
+    Long maxkol;
+}
Index: src/main/java/com/example/autopartz/model/views/PartManufacturersReport.java
===================================================================
--- src/main/java/com/example/autopartz/model/views/PartManufacturersReport.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
+++ src/main/java/com/example/autopartz/model/views/PartManufacturersReport.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -0,0 +1,32 @@
+package com.example.autopartz.model.views;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.annotations.Immutable;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Entity
+@Getter
+@Setter
+@ToString
+@RequiredArgsConstructor
+@Immutable
+@Table(name = "`part_manufacturers_report`")
+public class PartManufacturersReport implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    @Id
+    String pmname;
+    Long prva;
+    Long vtora;
+    Long treta;
+    Long cetvrta;
+}
Index: src/main/java/com/example/autopartz/repository/CarCategoryReportRepository.java
===================================================================
--- src/main/java/com/example/autopartz/repository/CarCategoryReportRepository.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
+++ src/main/java/com/example/autopartz/repository/CarCategoryReportRepository.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -0,0 +1,9 @@
+package com.example.autopartz.repository;
+
+import com.example.autopartz.model.views.CarCategoryReport;
+import com.example.autopartz.model.views.CarCategoryReportId;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface CarCategoryReportRepository extends JpaRepository<CarCategoryReport, CarCategoryReportId> {
+
+}
Index: src/main/java/com/example/autopartz/repository/MostPurchasedPartRepository.java
===================================================================
--- src/main/java/com/example/autopartz/repository/MostPurchasedPartRepository.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
+++ src/main/java/com/example/autopartz/repository/MostPurchasedPartRepository.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -0,0 +1,7 @@
+package com.example.autopartz.repository;
+
+import com.example.autopartz.model.views.MostPurchasedPart;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface MostPurchasedPartRepository extends JpaRepository<MostPurchasedPart,String> {
+}
Index: src/main/java/com/example/autopartz/repository/PartManufacturersReportRepository.java
===================================================================
--- src/main/java/com/example/autopartz/repository/PartManufacturersReportRepository.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
+++ src/main/java/com/example/autopartz/repository/PartManufacturersReportRepository.java	(revision cab5859f1391dcc4e31574008172a49c1c4ed577)
@@ -0,0 +1,8 @@
+package com.example.autopartz.repository;
+
+import com.example.autopartz.model.views.PartManufacturersReport;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface PartManufacturersReportRepository extends JpaRepository<PartManufacturersReport,String> {
+
+}
