Index: src/main/java/com/example/salonbella/controller/cart/CartController.java
===================================================================
--- src/main/java/com/example/salonbella/controller/cart/CartController.java	(revision e9b70f6947737fd8ec8c5599c2b85b09f0ce2276)
+++ src/main/java/com/example/salonbella/controller/cart/CartController.java	(revision e9b70f6947737fd8ec8c5599c2b85b09f0ce2276)
@@ -0,0 +1,41 @@
+package com.example.salonbella.controller.cart;
+
+import com.example.salonbella.service.ShoppingCartService;
+import org.springframework.beans.factory.annotation.Autowired;
+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.RequestParam;
+
+@Controller
+public class CartController {
+
+    private final ShoppingCartService shoppingCartService;
+
+    @Autowired
+    public CartController(ShoppingCartService shoppingCartService) {
+        this.shoppingCartService = shoppingCartService;
+    }
+
+    @PostMapping("/add-to-cart")
+    public String addProductToCart(@RequestParam(name = "id") String id) {
+        if(!shoppingCartService.existInCart(Long.parseLong(id))) {
+            shoppingCartService.addProduct(Long.parseLong(id));
+        }
+        return "redirect:/order";
+    }
+
+    @GetMapping("/my-cart")
+    public String getCartDetails(Model model) {
+        model.addAttribute("products", shoppingCartService.getShoppingCartDetails());
+        return "user-cart";
+    }
+
+    @GetMapping("/delete-product-from-cart")
+    public String deleteProductFromCart(@RequestParam(name = "id") String id) {
+        shoppingCartService.deleteProductFromCart(Long.parseLong(id));
+        return "redirect:/my-cart";
+    }
+
+}
Index: src/main/java/com/example/salonbella/controller/cart/ShoppingCart.java
===================================================================
--- src/main/java/com/example/salonbella/controller/cart/ShoppingCart.java	(revision e9b70f6947737fd8ec8c5599c2b85b09f0ce2276)
+++ src/main/java/com/example/salonbella/controller/cart/ShoppingCart.java	(revision e9b70f6947737fd8ec8c5599c2b85b09f0ce2276)
@@ -0,0 +1,26 @@
+package com.example.salonbella.controller.cart;
+
+import com.example.salonbella.entity.CartDetailEntity;
+import org.springframework.context.annotation.Scope;
+import org.springframework.context.annotation.ScopedProxyMode;
+import org.springframework.stereotype.Component;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
+public class ShoppingCart implements Serializable {
+    private List<CartDetailEntity> cartDetailEntities = new ArrayList<>();
+    public List<CartDetailEntity> getCartDetails() {
+        return cartDetailEntities;
+    }
+
+    @Override
+    public String toString() {
+        return "ShoppingCart{" +
+                "cartDetails=" + cartDetailEntities +
+                '}';
+    }
+}
Index: src/main/java/com/example/salonbella/controller/order/OrderController.java
===================================================================
--- src/main/java/com/example/salonbella/controller/order/OrderController.java	(revision e9b70f6947737fd8ec8c5599c2b85b09f0ce2276)
+++ src/main/java/com/example/salonbella/controller/order/OrderController.java	(revision e9b70f6947737fd8ec8c5599c2b85b09f0ce2276)
@@ -0,0 +1,75 @@
+package com.example.salonbella.controller.order;
+
+import com.example.salonbella.service.ProductService;
+import com.example.salonbella.service.ShoppingCartService;
+import com.example.salonbella.service.order.OrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+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.RequestParam;
+
+import java.util.Map;
+
+@Controller
+public class OrderController {
+
+    private final OrderService orderService;
+    private final ShoppingCartService shoppingCartService;
+    private final ProductService productService;
+
+    @Autowired
+    public OrderController(OrderService orderService, ShoppingCartService shoppingCartService, ProductService productService) {
+        this.orderService = orderService;
+        this.shoppingCartService = shoppingCartService;
+        this.productService = productService;
+    }
+
+
+
+    @PostMapping("/order")
+    public String order(@RequestParam Map<String, String> allParams) {
+        orderService.changeQuantities(allParams, shoppingCartService.getShoppingCart());
+        orderService.saveOrder(shoppingCartService.getShoppingCart());
+        orderService.clearCart(shoppingCartService.getShoppingCart());
+        return "redirect:/userDashboard";
+    }
+
+    @GetMapping("/my-orders")
+    public String getMyOrders(Model model) {
+        model.addAttribute("orders", orderService.getUserOrders());
+        return "user-my-orders";
+    }
+
+    @PostMapping("/cancel-order")
+    public String cancelOrder(@RequestParam(name = "id") String id) {
+        orderService.cancelOrder(Long.parseLong(id));
+        return "redirect:/my-orders";
+    }
+
+    @GetMapping("/admin-get-orders")
+    public String getOrders(Model model) {
+        model.addAttribute("orders", orderService.getAllOrders());
+        return "admin-orders";
+    }
+
+    @PostMapping("/admin-change-status")
+    public String changeOrderStatus(@RequestParam(name = "id") String id) {
+        orderService.changeOrderStatus(Long.parseLong(id));
+        return "redirect:/admin-get-orders";
+    }
+
+    @PostMapping("/admin-cancel-order")
+    public String cancelOrderAdmin(@RequestParam(name = "id") String id) {
+        orderService.cancelOrderAdmin(Long.parseLong(id));
+        return "redirect:/admin-get-orders";
+    }
+
+    @GetMapping("/order")
+    public String getOrderPage(Model model) {
+        model.addAttribute("products", productService.getProducts());
+        return "user-order";
+    }
+}
+
Index: src/main/java/com/example/salonbella/controller/product/ProductController.java
===================================================================
--- src/main/java/com/example/salonbella/controller/product/ProductController.java	(revision e9b70f6947737fd8ec8c5599c2b85b09f0ce2276)
+++ src/main/java/com/example/salonbella/controller/product/ProductController.java	(revision e9b70f6947737fd8ec8c5599c2b85b09f0ce2276)
@@ -0,0 +1,57 @@
+package com.example.salonbella.controller.product;
+
+import com.example.salonbella.service.ProductService;
+import org.springframework.beans.factory.annotation.Autowired;
+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.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+@Controller
+public class ProductController {
+
+    private final ProductService productService;
+
+
+    @Autowired
+    public ProductController(ProductService productService) {
+        this.productService = productService;
+
+    }
+
+
+    @GetMapping("/admin-add-product")
+    public String getAddProductPage() {
+        return "admin-product";
+    }
+
+    @PostMapping("/admin-add-product")
+    public String addProduct(@RequestParam(name = "name") String name, @RequestParam(name = "category") String category,
+                             @RequestParam(name = "price") String price,
+                             @RequestParam(name = "description") String description,
+                             @RequestParam(name = "image") MultipartFile multipartFile) throws IOException {
+        productService.addProduct(name, category, price, description, multipartFile);
+        return "redirect:/adminDashboard";
+    }
+
+
+
+    @GetMapping("/admin-remove-product")
+    public String getRemoveProductPage(Model model) {
+        model.addAttribute("products", productService.getProducts());
+        return "admin-remove-product";
+    }
+
+    @PostMapping("/admin-remove-product")
+    public String removeProduct(@RequestParam(name = "id") String id) {
+        productService.removeProduct(Long.parseLong(id));
+        return "redirect:/admin-remove-product";
+    }
+
+
+}
+
