Index: frontend/src/screens/AdminAddProductScreen.js
===================================================================
--- frontend/src/screens/AdminAddProductScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
+++ frontend/src/screens/AdminAddProductScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,386 @@
+import axios from "axios";
+import React, { useState } from "react";
+import { Link } from "react-router-dom";
+import { toast } from "react-toastify";
+import Button from "react-bootstrap/Button";
+import Form from "react-bootstrap/Form";
+
+function AdminAddProductScreen() {
+  const [name, setName] = useState("");
+  const [slug, setSlug] = useState("");
+  const [category, setCategory] = useState("dnevna");
+  const [subCategory, setSubCategory] = useState("");
+  const [description, setDescription] = useState("");
+  const [price, setPrice] = useState("");
+  const [priceMontaza, setPriceMontaza] = useState("");
+  const [countInStock, setCountInStock] = useState("");
+  const [image, setImage] = useState("");
+  const [sideImage, setSideImage] = useState("");
+  const [sideImage2, setSideImage2] = useState("");
+  const [dimension, setDimension] = useState("");
+  const [scheme, setScheme] = useState("");
+  const [message, setMessage] = useState("");
+
+  const onChangeImage = (e) => {
+    setImage(e.target.files[0]);
+  };
+  const onChangeSideImage = (e) => {
+    setSideImage(e.target.files[0]);
+  };
+  const onChangeSideImage2 = (e) => {
+    setSideImage2(e.target.files[0]);
+  };
+  const onChangeDimension = (e) => {
+    setDimension(e.target.files[0]);
+  };
+  const onChangeScheme = (e) => {
+    setScheme(e.target.files[0]);
+  };
+
+  const submitHandler = async (e) => {
+    e.preventDefault();
+
+    const formData = new FormData();
+
+    formData.append("name", name);
+    formData.append("slug", slug);
+    formData.append("category", category);
+    formData.append("subCategory", subCategory);
+    formData.append("description", description);
+    formData.append("price", price);
+    formData.append("priceMontaza", priceMontaza);
+    formData.append("countInStock", countInStock);
+    formData.append("image", image);
+    formData.append("sideImage", sideImage);
+    formData.append("sideImage2", sideImage2);
+    formData.append("dimension", dimension);
+    formData.append("scheme", scheme);
+
+    try {
+      const result = await axios.post("/api/products/add", formData);
+      if (result) toast.success("Product Added");
+      return;
+    } catch (error) {
+      console.log(error);
+    }
+  };
+
+  return (
+    <div id="pgContainer">
+      <div id="sidebarMenu">
+        <Link
+          to={"/admin/addProduct"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn" to="/admin/addProduct">
+            Додади нов производ
+          </div>
+        </Link>
+        <Link
+          to={"/admin/products"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn">Производи</div>
+        </Link>
+        <Link
+          to={"/admin/orders"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn">Нарачки</div>
+        </Link>
+      </div>
+      <div id="mainScreen">
+        <div className="taskContainer">
+          <h1>Додади нов продукт</h1>
+          <Form
+            onSubmit={submitHandler}
+            encType="multipart/form-data"
+            className="newProductFormCointainer"
+          >
+            <div className="firstRow" style={{ display: "flex" }}>
+              <Form.Group>
+                <Form.Label>Име</Form.Label>
+                <Form.Control
+                  value={name}
+                  onChange={(e) => setName(e.target.value)}
+                  required
+                ></Form.Control>
+              </Form.Group>
+              <Form.Group>
+                <Form.Label>Слуг</Form.Label>
+                <Form.Control
+                  value={slug}
+                  onChange={(e) => setSlug(e.target.value)}
+                  required
+                ></Form.Control>
+              </Form.Group>
+              <Form.Group>
+                <Form.Label>Категорија</Form.Label>
+                <Form.Select onChange={(e) => setCategory(e.target.value)}>
+                  <option value={"dnevna"}>Дневна</option>
+                  <option value={"spalna"}>Спална</option>
+                  <option value={"kancelarija"}>Канцеларија</option>
+                  <option value={"hodnik"}>Ходник</option>
+                  <option value={"gradina"}>Градина</option>
+                  <option value={"trpezarija"}>Трпезарија</option>
+                  <option value={"kujna"}>Кујна</option>
+                  <option value={"detska"}>Детска</option>
+                </Form.Select>
+              </Form.Group>
+              <Form.Group>
+                <Form.Label>Подкатегорија</Form.Label>
+                <Form.Select onChange={(e) => setSubCategory(e.target.value)}>
+                  <option value="default">Подкатегорија</option>
+                  {category === "dnevna" && (
+                    <option value="agolni-garnituri">Аголни Гарнитури</option>
+                  )}
+                  {category === "dnevna" && <option value="sofi">Софи</option>}
+                  {category === "dnevna" && (
+                    <option value="fotelji">Фотелји</option>
+                  )}
+                  {category === "dnevna" && (
+                    <option value="taburetki">Табуретки</option>
+                  )}
+                  {category === "dnevna" && (
+                    <option value="klub-masi">Клуб маси</option>
+                  )}
+                  {category === "dnevna" && (
+                    <option value="tv-komodi">ТВ комоди</option>
+                  )}
+                  {category === "dnevna" && (
+                    <option value="komodi">Комоди</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="spalni-kompleti">Спални Комплети</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="lezai">Лежаи</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="kreveti">Кревети</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="plakari">Плакари</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="nokni-skafcinja">Ноќни шкафчиња</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="toaletni-masi">Тоалетни маси</option>
+                  )}
+                  {category === "kancelarija" && (
+                    <option value="biroa">Бироа</option>
+                  )}
+                  {category === "kancelarija" && (
+                    <option value="kancelariski-stolovi">
+                      Канцелариски столови
+                    </option>
+                  )}
+                  {category === "kancelarija" && (
+                    <option value="gejmerski-stolovi">Гејмерски столови</option>
+                  )}
+                  {category === "kancelarija" && (
+                    <option value="kancelariski-skafovi">
+                      Канцелариски шкафови
+                    </option>
+                  )}
+                  {category === "hodnik" && (
+                    <option value="skafovi-za-cevli">Шкафови за чевли</option>
+                  )}
+                  {category === "hodnik" && (
+                    <option value="zakacalki-i-ogledala">
+                      Закачалки и огледала
+                    </option>
+                  )}
+                  {category === "hodnik" && (
+                    <option value="kolekcii-za-hodnik">
+                      Колекции за ходник
+                    </option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-kompleti">
+                      Градинарски комплети
+                    </option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-lulki">Градинарски лулки</option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-cadori">
+                      Градинарски чадори
+                    </option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-masi">Градинарски маси</option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-stolovi">
+                      Градинарски столови
+                    </option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarsko-osvetluvanje">
+                      Градинарско осветлување
+                    </option>
+                  )}
+                  {category === "trpezarija" && (
+                    <option value="trpezariski-masi">Трпезариски маси</option>
+                  )}
+                  {category === "trpezarija" && (
+                    <option value="trpezariski-stolovi">
+                      Трпезариски столови
+                    </option>
+                  )}
+                  {category === "trpezarija" && (
+                    <option value="kujnski-garnituri">Кујнски гарнитури</option>
+                  )}
+                  {category === "trpezarija" && (
+                    <option value="bar-stolovi-i-masi">
+                      Бар столови и маси
+                    </option>
+                  )}
+                  {category === "kujna" && (
+                    <option value="kujnski-agolni-garnituri">
+                      Кујнски аголни гарнитури
+                    </option>
+                  )}
+                  {category === "kujna" && (
+                    <option value="standardni-kujni">Стандардни кујни</option>
+                  )}
+                  {category === "detska" && (
+                    <option value="kolekcii-za-detska-soba">
+                      Колекции за детска соба
+                    </option>
+                  )}
+                  {category === "detska" && (
+                    <option value="detski-biroa">Детски бироа</option>
+                  )}
+                  {category === "detska" && (
+                    <option value="detski-lezai">Детски лежаи</option>
+                  )}
+                </Form.Select>
+              </Form.Group>
+            </div>
+            <div className="secondRow">
+              <Form.Group style={{ width: "60%", marginTop: "20px" }}>
+                <Form.Label>Опис</Form.Label>
+                <Form.Control
+                  id="textArea"
+                  value={description}
+                  onChange={(e) => setDescription(e.target.value)}
+                  as="textarea"
+                  required
+                ></Form.Control>
+              </Form.Group>
+              <div
+                style={{
+                  display: "flex",
+                  flexDirection: "column",
+                  alignItems: "center",
+                  justifyContent: "center",
+                  width: "40%",
+                }}
+              >
+                <Form.Group style={{ marginTop: "20px" }}>
+                  <Form.Label>Цена</Form.Label>
+                  <Form.Control
+                    value={price}
+                    onChange={(e) => setPrice(e.target.value)}
+                    type="number"
+                    required
+                  ></Form.Control>
+                </Form.Group>
+                <Form.Group style={{ marginTop: "10px" }}>
+                  <Form.Label>Цена Монтажа</Form.Label>
+                  <Form.Control
+                    value={priceMontaza}
+                    onChange={(e) => setPriceMontaza(e.target.value)}
+                    type="number"
+                    required
+                  ></Form.Control>
+                </Form.Group>
+                <Form.Group style={{ marginTop: "10px" }}>
+                  <Form.Label>Залиха</Form.Label>
+                  <Form.Control
+                    value={countInStock}
+                    onChange={(e) => setCountInStock(e.target.value)}
+                    type="number"
+                    required
+                  ></Form.Control>
+                </Form.Group>
+              </div>
+            </div>
+            <div className="thirdRow">
+              <div
+                style={{
+                  display: "flex",
+                  flexDirection: "column",
+                  alignItems: "center",
+                  justifyContent: "center",
+                }}
+              >
+                <Form.Group>
+                  <Form.Label>Главна слика</Form.Label>
+                  <Form.Control
+                    type="file"
+                    name="image"
+                    onChange={onChangeImage}
+                    required
+                  ></Form.Control>
+                </Form.Group>
+
+                <Form.Group style={{ marginTop: "10px" }}>
+                  <Form.Label>Споредна слика бр.1</Form.Label>
+                  <Form.Control
+                    type="file"
+                    name="sideImage"
+                    onChange={onChangeSideImage}
+                    required
+                  ></Form.Control>
+                </Form.Group>
+
+                <Form.Group style={{ marginTop: "10px" }}>
+                  <Form.Label>Споредна слика бр.2</Form.Label>
+                  <Form.Control
+                    type="file"
+                    name="sideImage2"
+                    onChange={onChangeSideImage2}
+                    required
+                  ></Form.Control>
+                </Form.Group>
+              </div>
+              <div>
+                <Form.Group>
+                  <Form.Label>Слика со димензии</Form.Label>
+                  <Form.Control
+                    type="file"
+                    name="dimension"
+                    onChange={onChangeDimension}
+                    required
+                  ></Form.Control>
+                </Form.Group>
+
+                <Form.Group style={{ marginTop: "10px" }}>
+                  <Form.Label>Слика од шема</Form.Label>
+                  <Form.Control
+                    type="file"
+                    name="scheme"
+                    onChange={onChangeScheme}
+                    required
+                  ></Form.Control>
+                </Form.Group>
+              </div>
+            </div>
+            <div className="submitBtnContainer">
+              <Button variant="danger" size="lg" type="submit">
+                Додади
+              </Button>
+            </div>
+          </Form>
+        </div>
+      </div>
+    </div>
+  );
+}
+
+export default AdminAddProductScreen;
Index: frontend/src/screens/AdminDashboardScreen.js
===================================================================
--- frontend/src/screens/AdminDashboardScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
+++ frontend/src/screens/AdminDashboardScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,47 @@
+import React, { useContext, useEffect, useState } from "react";
+import Button from "react-bootstrap/Button";
+import "../styles/AdminDashboard.css";
+import AddProductForm from "../components/AddProductForm";
+import { Store } from "../Store";
+import { useNavigate, Link } from "react-router-dom";
+import ListProducts from "../components/ListProducts";
+
+function AdminDashboardScreen() {
+  const navigate = useNavigate();
+  const { state } = useContext(Store);
+  const { userInfo } = state;
+  useEffect(() => {
+    if (!userInfo || !userInfo.isAdmin) {
+      return navigate("/");
+    }
+  }, [userInfo, navigate]);
+
+  return (
+    <div id="pgContainer">
+      <div id="sidebarMenu">
+        <Link
+          to={"/admin/addProduct"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn" to="/admin/addProduct">
+            Додади нов производ
+          </div>
+        </Link>
+        <Link
+          to={"/admin/products"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn">Производи</div>
+        </Link>
+        <Link
+          to={"/admin/orders"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn">Нарачки</div>
+        </Link>
+      </div>
+    </div>
+  );
+}
+
+export default AdminDashboardScreen;
Index: frontend/src/screens/AdminEditProductScreen.js
===================================================================
--- frontend/src/screens/AdminEditProductScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
+++ frontend/src/screens/AdminEditProductScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,339 @@
+import axios from "axios";
+import React, { useEffect, useReducer, useState } from "react";
+import { Link, useParams } from "react-router-dom";
+import { toast } from "react-toastify";
+import Button from "react-bootstrap/Button";
+import Form from "react-bootstrap/Form";
+
+const reducer = (state, action) => {
+  switch (action.type) {
+    case "FETCH_REQUEST":
+      return { ...state, loading: true };
+    case "FETCH_SUCCESS":
+      return { ...state, product: action.payload, loading: false };
+    case "FETCH_FAIL":
+      return { ...state, loading: false, error: action.payload };
+    default:
+      return state;
+  }
+};
+
+function AdminEditProductScreen() {
+  const params = useParams();
+  const { slug } = params;
+
+  const [{ loading, error, product }, dispatch] = useReducer(reducer, {
+    product: [],
+    loading: true,
+    error: "",
+  });
+
+  useEffect(() => {
+    const fetchData = async () => {
+      dispatch({ type: "FETCH_REQUEST" });
+      try {
+        const result = await axios.get(`/api/products/slug/${slug}`);
+        dispatch({ type: "FETCH_SUCCESS", payload: result.data });
+      } catch (err) {
+        dispatch({ type: "FETCH_FAIL", payload: err.message });
+      }
+    };
+    fetchData();
+  }, [slug]);
+
+  const [category, setCategory] = useState("all");
+  const [subCategory, setSubCategory] = useState("all");
+
+  const submitHandler = async (e) => {
+    e.preventDefault();
+    let name = document.getElementById("name").value;
+    let slug = document.getElementById("slug").value;
+    let price = document.getElementById("price").value;
+    let priceMontaza = document.getElementById("priceMontaza").value;
+    let countInStock = document.getElementById("stock").value;
+    let description = document.getElementById("textArea").value;
+
+    try {
+      const { data } = await axios.put("/api/products/edit", {
+        name,
+        slug,
+        category,
+        subCategory,
+        description,
+        price,
+        priceMontaza,
+        countInStock,
+      });
+
+      toast.success("Успешно ажурирање");
+    } catch (err) {
+      dispatch({ type: "FETCH_FAIL" });
+      toast.error("Грешка");
+    }
+  };
+
+  return (
+    <div id="pgContainer">
+      <div id="sidebarMenu">
+        <Link
+          to={"/admin/addProduct"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn" to="/admin/addProduct">
+            Додади нов производ
+          </div>
+        </Link>
+        <Link
+          to={"/admin/products"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn">Производи</div>
+        </Link>
+        <Link
+          to={"/admin/orders"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn">Нарачки</div>
+        </Link>
+      </div>
+      <div id="mainScreen">
+        <div className="taskContainer">
+          <h1>Ажурирај продукт</h1>
+          <Form
+            onSubmit={submitHandler}
+            encType="multipart/form-data"
+            className="newProductFormCointainer"
+          >
+            <div className="firstRow" style={{ display: "flex" }}>
+              <Form.Group>
+                <Form.Label>Име</Form.Label>
+                <Form.Control
+                  id="name"
+                  defaultValue={product.name}
+                  required
+                ></Form.Control>
+              </Form.Group>
+              <Form.Group>
+                <Form.Label>Слуг</Form.Label>
+                <Form.Control
+                  id="slug"
+                  defaultValue={slug}
+                  required
+                ></Form.Control>
+              </Form.Group>
+              <Form.Group>
+                <Form.Label>Категорија</Form.Label>
+                <Form.Select onChange={(e) => setCategory(e.target.value)}>
+                  <option value={"all"}>Категорија</option>
+                  <option value={"dnevna"}>Дневна</option>
+                  <option value={"spalna"}>Спална</option>
+                  <option value={"kancelarija"}>Канцеларија</option>
+                  <option value={"hodnik"}>Ходник</option>
+                  <option value={"gradina"}>Градина</option>
+                  <option value={"trpezarija"}>Трпезарија</option>
+                  <option value={"kujna"}>Кујна</option>
+                  <option value={"detska"}>Детска</option>
+                </Form.Select>
+              </Form.Group>
+              <Form.Group>
+                <Form.Label>Подкатегорија</Form.Label>
+                <Form.Select
+                  onChange={(e) => {
+                    setSubCategory(e.target.value);
+                  }}
+                >
+                  <option value="all">Подкатегорија</option>
+
+                  {category === "dnevna" && (
+                    <option value="agolni-garnituri">Аголни Гарнитури</option>
+                  )}
+                  {category === "dnevna" && <option value="sofi">Софи</option>}
+                  {category === "dnevna" && (
+                    <option value="fotelji">Фотелји</option>
+                  )}
+                  {category === "dnevna" && (
+                    <option value="taburetki">Табуретки</option>
+                  )}
+                  {category === "dnevna" && (
+                    <option value="klub-masi">Клуб маси</option>
+                  )}
+                  {category === "dnevna" && (
+                    <option value="tv-komodi">ТВ комоди</option>
+                  )}
+                  {category === "dnevna" && (
+                    <option value="komodi">Комоди</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="spalni-kompleti">Спални Комплети</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="lezai">Лежаи</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="kreveti">Кревети</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="plakari">Плакари</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="nokni-skafcinja">Ноќни шкафчиња</option>
+                  )}
+                  {category === "spalna" && (
+                    <option value="toaletni-masi">Тоалетни маси</option>
+                  )}
+                  {category === "kancelarija" && (
+                    <option value="biroa">Бироа</option>
+                  )}
+                  {category === "kancelarija" && (
+                    <option value="kancelariski-stolovi">
+                      Канцелариски столови
+                    </option>
+                  )}
+                  {category === "kancelarija" && (
+                    <option value="gejmerski-stolovi">Гејмерски столови</option>
+                  )}
+                  {category === "kancelarija" && (
+                    <option value="kancelariski-skafovi">
+                      Канцелариски шкафови
+                    </option>
+                  )}
+                  {category === "hodnik" && (
+                    <option value="skafovi-za-cevli">Шкафови за чевли</option>
+                  )}
+                  {category === "hodnik" && (
+                    <option value="zakacalki-i-ogledala">
+                      Закачалки и огледала
+                    </option>
+                  )}
+                  {category === "hodnik" && (
+                    <option value="kolekcii-za-hodnik">
+                      Колекции за ходник
+                    </option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-kompleti">
+                      Градинарски комплети
+                    </option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-lulki">Градинарски лулки</option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-cadori">
+                      Градинарски чадори
+                    </option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-masi">Градинарски маси</option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarski-stolovi">
+                      Градинарски столови
+                    </option>
+                  )}
+                  {category === "gradina" && (
+                    <option value="gradinarsko-osvetluvanje">
+                      Градинарско осветлување
+                    </option>
+                  )}
+                  {category === "trpezarija" && (
+                    <option value="trpezariski-masi">Трпезариски маси</option>
+                  )}
+                  {category === "trpezarija" && (
+                    <option value="trpezariski-stolovi">
+                      Трпезариски столови
+                    </option>
+                  )}
+                  {category === "trpezarija" && (
+                    <option value="kujnski-garnituri">Кујнски гарнитури</option>
+                  )}
+                  {category === "trpezarija" && (
+                    <option value="bar-stolovi-i-masi">
+                      Бар столови и маси
+                    </option>
+                  )}
+                  {category === "kujna" && (
+                    <option value="kujnski-agolni-garnituri">
+                      Кујнски аголни гарнитури
+                    </option>
+                  )}
+                  {category === "kujna" && (
+                    <option value="standardni-kujni">Стандардни кујни</option>
+                  )}
+                  {category === "detska" && (
+                    <option value="kolekcii-za-detska-soba">
+                      Колекции за детска соба
+                    </option>
+                  )}
+                  {category === "detska" && (
+                    <option value="detski-biroa">Детски бироа</option>
+                  )}
+                  {category === "detska" && (
+                    <option value="detski-lezai">Детски лежаи</option>
+                  )}
+                </Form.Select>
+              </Form.Group>
+            </div>
+            <div className="secondRow">
+              <Form.Group style={{ width: "60%", marginTop: "20px" }}>
+                <Form.Label>Опис</Form.Label>
+                <Form.Control
+                  id="textArea"
+                  defaultValue={product.description}
+                  as="textarea"
+                  required
+                ></Form.Control>
+              </Form.Group>
+              <div
+                style={{
+                  display: "flex",
+                  flexDirection: "column",
+                  alignItems: "center",
+                  justifyContent: "center",
+                  width: "40%",
+                }}
+              >
+                <Form.Group style={{ marginTop: "20px" }}>
+                  <Form.Label>Цена</Form.Label>
+                  <Form.Control
+                    id="price"
+                    defaultValue={product.price}
+                    type="number"
+                    style={{ color: "black" }}
+                    required
+                  ></Form.Control>
+                </Form.Group>
+                <Form.Group style={{ marginTop: "10px" }}>
+                  <Form.Label>Цена Монтажа</Form.Label>
+                  <Form.Control
+                    id="priceMontaza"
+                    defaultValue={product.priceMontaza}
+                    type="number"
+                    required
+                  ></Form.Control>
+                </Form.Group>
+                <Form.Group style={{ marginTop: "10px" }}>
+                  <Form.Label>Залиха</Form.Label>
+                  <Form.Control
+                    id="stock"
+                    defaultValue={product.countInStock}
+                    type="number"
+                    required
+                  ></Form.Control>
+                </Form.Group>
+              </div>
+            </div>
+
+            <div className="submitBtnContainer">
+              <Button variant="danger" size="lg" type="submit">
+                Ажурирај
+              </Button>
+            </div>
+          </Form>
+        </div>
+      </div>
+    </div>
+  );
+}
+
+export default AdminEditProductScreen;
Index: frontend/src/screens/AdminOrderScreen.js
===================================================================
--- frontend/src/screens/AdminOrderScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
+++ frontend/src/screens/AdminOrderScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,277 @@
+import axios from "axios";
+import React, { useContext, useEffect, useReducer } from "react";
+import { Link, useNavigate, useParams } from "react-router-dom";
+import LoadingBox from "../components/LoadingBox";
+import MessageBox from "../components/MessageBox";
+import { Store } from "../Store";
+import { getError } from "../components/utils";
+import { Helmet } from "react-helmet-async";
+import Row from "react-bootstrap/Row";
+import Card from "react-bootstrap/Card";
+import Col from "react-bootstrap/Col";
+import ListGroup from "react-bootstrap/ListGroup";
+import Button from "react-bootstrap/Button";
+import { toast } from "react-toastify";
+
+function reducer(state, action) {
+  switch (action.type) {
+    case "FETCH_REQUEST":
+      return { ...state, loading: true, error: "" };
+    case "FETCH_SUCCESS":
+      return { ...state, loading: false, order: action.payload, error: "" };
+    case "FETCH_FAIL":
+      return { ...state, loading: false, error: action.payload };
+    default:
+      return state;
+  }
+}
+
+export default function OrderScreen() {
+  const { state } = useContext(Store);
+  const { userInfo } = state;
+  const params = useParams();
+  const { id: orderId } = params;
+  const navigate = useNavigate();
+
+  const [{ loading, error, order }, dispatch] = useReducer(reducer, {
+    loading: true,
+    order: {},
+    error: "",
+  });
+
+  useEffect(() => {
+    const fetchOrder = async () => {
+      try {
+        dispatch({ type: "FETCH_REQUEST" });
+        const { data } = await axios.get(`/api/orders/${orderId}`, {
+          headers: { authorization: `Bearer ${userInfo.token}` },
+        });
+        dispatch({ type: "FETCH_SUCCESS", payload: data });
+      } catch (err) {
+        dispatch({ type: "FETCH_FAIL", payload: getError(err) });
+      }
+    };
+    if (!userInfo) {
+      return navigate("/login");
+    }
+    if (!order._id || (order._id && order._id !== orderId)) {
+      fetchOrder();
+    }
+  }, [order, userInfo, orderId, navigate]);
+
+  const confirmOrderHandler = async () => {
+    let isConfirmed = true;
+    let _id = order._id;
+    try {
+      const { data } = await axios.put("/api/orders/action", {
+        isConfirmed,
+        _id,
+      });
+
+      toast.success("Нарачката е потврдена");
+    } catch (err) {
+      dispatch({ type: "FETCH_FAIL" });
+      toast.error("Грешка");
+    }
+  };
+  const sendOrderHandler = async () => {
+    let isShipped = true;
+    let shippedAt = Date();
+    let _id = order._id;
+    try {
+      const { data } = await axios.put("/api/orders/action", {
+        isShipped,
+        shippedAt,
+        _id,
+      });
+
+      toast.success("Нарачката е испратена");
+    } catch (err) {
+      dispatch({ type: "FETCH_FAIL" });
+      toast.error("Грешка");
+    }
+  };
+  const finishOrderHandler = async () => {
+    let isDelivered = true;
+    let deliveredAt = Date();
+    let _id = order._id;
+    try {
+      if (order.isPaid) {
+        const { data } = await axios.put("/api/orders/action", {
+          isDelivered,
+          deliveredAt,
+          _id,
+        });
+      } else {
+        let isPaid = true;
+        let paidAt = Date();
+        const { data } = await axios.put("/api/orders/action", {
+          _id,
+          isDelivered,
+          deliveredAt,
+          isPaid,
+          paidAt,
+        });
+      }
+
+      toast.success("Нарачката е пристигната");
+    } catch (err) {
+      dispatch({ type: "FETCH_FAIL" });
+      toast.error("Грешка");
+    }
+  };
+
+  return loading ? (
+    <LoadingBox></LoadingBox>
+  ) : error ? (
+    <MessageBox variant="danger">{error}</MessageBox>
+  ) : (
+    <div className="pageContainer shipPC">
+      <Helmet>
+        <title>Нарачка {orderId}</title>
+      </Helmet>
+      <h1 style={{ marginTop: "20px" }}>Нарачка {orderId}</h1>
+      <Row style={{ width: "90%" }}>
+        <Col md={8}>
+          <Card className="mb-3">
+            <Card.Body>
+              <Card.Title>Испорака</Card.Title>
+              <Card.Text>
+                <strong>Име:</strong> {order.shippingAddress.fullName}
+                <br />
+                <strong>Адреса:</strong> {order.shippingAddress.address},
+                {order.shippingAddress.city},{order.shippingAddress.postalCode},
+                {order.shippingAddress.country}
+                <br />
+                <strong>Телефон:</strong> {order.contactNumber}
+                <br />
+              </Card.Text>
+            </Card.Body>
+          </Card>
+          <Card className="mb-3">
+            <Card.Body>
+              <Card.Title>Плаќање</Card.Title>
+              <Card.Text>
+                <strong>Начин:</strong>{" "}
+                {order.paymentMethod === "Karticka"
+                  ? "Со платежна картичка"
+                  : "Во готово при достава"}
+              </Card.Text>
+              {order.isPaid ? (
+                <MessageBox variant="success">
+                  Платено на {order.paidAt}
+                </MessageBox>
+              ) : (
+                <MessageBox variant="danger">Не е платено</MessageBox>
+              )}
+            </Card.Body>
+          </Card>
+          <Card className="mb-3">
+            <Card.Body>
+              <Card.Title>Продукти</Card.Title>
+              <ListGroup variant="flush">
+                {order.orderItems.map((item) => (
+                  <ListGroup.Item key={item._id}>
+                    <div
+                      style={{
+                        display: "flex",
+                        justifyContent: "space-between",
+                      }}
+                    >
+                      <div style={{ display: "flex", alignItems: "center" }}>
+                        <img
+                          src={item.image}
+                          alt={item.name}
+                          className="img-fluid rounded img-thumbnail"
+                          style={{ margin: "0px" }}
+                        ></img>
+                        <Link to={`/product/${item.slug}`}>{item.name}</Link>
+                      </div>
+
+                      <span>{item.quantity}</span>
+
+                      <span>{item.price} ден</span>
+                    </div>
+                  </ListGroup.Item>
+                ))}
+              </ListGroup>
+            </Card.Body>
+          </Card>
+        </Col>
+        <Col md={4}>
+          <Card>
+            <Card.Body>
+              <Card.Title>Нарачка</Card.Title>
+              <ListGroup variant="flush">
+                <ListGroup.Item>
+                  <Row>
+                    <Col>Продукти:</Col>
+                    <Col>{order.itemsPrice.toFixed(2)} ден</Col>
+                  </Row>
+                </ListGroup.Item>
+                <ListGroup.Item>
+                  <Row>
+                    <Col>Испорака:</Col>
+                    <Col>{order.shippingPrice.toFixed(2)} ден</Col>
+                  </Row>
+                </ListGroup.Item>
+
+                <ListGroup.Item>
+                  <Row>
+                    <Col>
+                      <strong>Вкупно</strong>
+                    </Col>
+                    <Col>
+                      <strong>{order.totalPrice.toFixed(2)} ден</strong>
+                    </Col>
+                  </Row>
+                </ListGroup.Item>
+              </ListGroup>
+            </Card.Body>
+          </Card>
+          <Card style={{ marginTop: "40px" }}>
+            <Card.Body>
+              <Card.Title>Акции</Card.Title>
+              <ListGroup variant="flush">
+                <ListGroup.Item>
+                  <Button
+                    style={{ width: "100%" }}
+                    disabled={order.isConfirmed === true}
+                    onClick={confirmOrderHandler}
+                  >
+                    Потврди Нарачка
+                  </Button>
+                </ListGroup.Item>
+                <ListGroup.Item>
+                  <Button
+                    style={{ width: "100%" }}
+                    disabled={
+                      order.isConfirmed === false || order.isShipped === true
+                    }
+                    onClick={sendOrderHandler}
+                  >
+                    Испрати Нарачка
+                  </Button>
+                </ListGroup.Item>
+
+                <ListGroup.Item>
+                  <Button
+                    style={{ width: "100%" }}
+                    disabled={
+                      order.isConfirmed === false ||
+                      order.isShipped === false ||
+                      order.isDelivered === true
+                    }
+                    onClick={finishOrderHandler}
+                  >
+                    Нарачката е пристигната
+                  </Button>
+                </ListGroup.Item>
+              </ListGroup>
+            </Card.Body>
+          </Card>
+        </Col>
+      </Row>
+    </div>
+  );
+}
Index: frontend/src/screens/AdminOrdersScreen.js
===================================================================
--- frontend/src/screens/AdminOrdersScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
+++ frontend/src/screens/AdminOrdersScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,214 @@
+import axios from "axios";
+import React, { useEffect, useReducer } from "react";
+import { Link, useLocation, useNavigate } from "react-router-dom";
+import { getError } from "../components/utils";
+import Button from "react-bootstrap/Button";
+import LoadingBox from "../components/LoadingBox";
+import MessageBox from "../components/MessageBox";
+import CheckIcon from "@mui/icons-material/Check";
+import ClearIcon from "@mui/icons-material/Clear";
+import PhonePausedIcon from "@mui/icons-material/PhonePaused";
+import HourglassBottomIcon from "@mui/icons-material/HourglassBottom";
+import LocalShippingIcon from "@mui/icons-material/LocalShipping";
+import LinkContainer from "react-router-bootstrap/LinkContainer";
+import Form from "react-bootstrap/Form";
+const reducer = (state, action) => {
+  switch (action.type) {
+    case "FETCH_REQUEST":
+      return { ...state, loading: true };
+    case "FETCH_SUCCESS":
+      console.log(action.payload);
+      return {
+        ...state,
+        //orders: action.payload,
+
+        orders: action.payload.orders,
+        page: action.payload.page,
+        pages: action.payload.pages,
+        countProducts: action.payload.countProducts,
+        loading: false,
+      };
+    case "FETCH_FAIL":
+      return { ...state, loading: false, error: action.payload };
+    default:
+      return state;
+  }
+};
+
+function AdminOrdersScreen() {
+  const navigate = useNavigate();
+  const { search } = useLocation();
+  const sp = new URLSearchParams(search);
+  const isConfirmed = sp.get("isConfirmed") || "all";
+  const isShipped = sp.get("isShipped") || "all";
+  const query = sp.get("query") || "all";
+  const page = sp.get("page") || 1;
+  const [{ loading, error, orders, pages, countProducts }, dispatch] =
+    useReducer(reducer, {
+      loading: true,
+      error: "",
+    });
+
+  useEffect(() => {
+    const fetchData = async () => {
+      dispatch({ type: "FETCH_REQUEST" });
+      try {
+        const { data } = await axios.get(
+          `/api/orders?page=${page}&isConfirmed=${isConfirmed}&isShipped=${isShipped}&query=${query}`
+        );
+        dispatch({ type: "FETCH_SUCCESS", payload: data });
+      } catch (error) {
+        dispatch({ type: "FETCH_FAIL", payload: getError(error) });
+      }
+    };
+    fetchData();
+  }, [isConfirmed, isShipped, page, query]);
+  const getFilterUrl = (filter) => {
+    const filterPage = filter.page || page;
+    const filterIsConfirmed = filter.isConfirmed || isConfirmed;
+    const filterIsShipped = filter.isShipped || isShipped;
+    const filterQuery = filter.query || query;
+    return `?page=${filterPage}&isConfirmed=${filterIsConfirmed}&isShipped=${filterIsShipped}&query=${filterQuery}`;
+  };
+
+  return (
+    <div id="pgContainer">
+      <div id="sidebarMenu">
+        <Link
+          to={"/admin/addProduct"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn" to="/admin/addProduct">
+            Додади нов производ
+          </div>
+        </Link>
+        <Link
+          to={"/admin/products"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn">Производи</div>
+        </Link>
+        <Link
+          to={"/admin/orders"}
+          style={{ textDecoration: "none", width: "100%" }}
+        >
+          <div className="dashboard-btn">Нарачки</div>
+        </Link>
+      </div>
+      <div id="mainScreen">
+        <div className="taskContainer">
+          <h1 style={{ marginTop: "20px" }}>Нарачки</h1>
+          <div
+            className="filterContainer"
+            style={{
+              width: "100%",
+              display: "flex",
+              justifyContent: "space-around",
+            }}
+          >
+            <Button
+              variant="danger"
+              onClick={(e) => {
+                navigate(
+                  getFilterUrl({ isConfirmed: "false", isShipped: "false" })
+                );
+              }}
+            >
+              За потврда
+            </Button>
+            <Button
+              variant="danger"
+              onClick={(e) =>
+                navigate(
+                  getFilterUrl({ isShipped: "false", isConfirmed: "true" })
+                )
+              }
+            >
+              За испорака
+            </Button>
+            <Button
+              variant="danger"
+              onClick={(e) =>
+                navigate(
+                  getFilterUrl({ isShipped: "true", isConfirmed: "true" })
+                )
+              }
+            >
+              Пристигнати
+            </Button>
+          </div>
+          {loading ? (
+            <LoadingBox></LoadingBox>
+          ) : error ? (
+            <MessageBox variant="danger">{error}</MessageBox>
+          ) : (
+            <table
+              className="table"
+              style={{ marginTop: "20px", width: "90%", textAlign: "center" }}
+            >
+              <thead>
+                <tr>
+                  <th>ID</th>
+                  <th>Дата</th>
+                  <th>Вкупно</th>
+                  <th>Статус</th>
+                  <th>Акции</th>
+                </tr>
+              </thead>
+              <tbody>
+                {orders.map((order) => (
+                  <tr key={order._id}>
+                    <td>{order._id.substring(0, 7)}</td>
+                    <td>{order.createdAt.substring(0, 10)}</td>
+                    <td>{order.totalPrice.toFixed(2)}</td>
+
+                    <td>
+                      {order.isDelivered ? (
+                        <CheckIcon></CheckIcon>
+                      ) : order.isShipped ? (
+                        <LocalShippingIcon></LocalShippingIcon>
+                      ) : order.isConfirmed ? (
+                        <HourglassBottomIcon></HourglassBottomIcon>
+                      ) : (
+                        <PhonePausedIcon></PhonePausedIcon>
+                      )}
+                    </td>
+                    <td>
+                      <Button
+                        type="button"
+                        variant="primary"
+                        onClick={() => {
+                          navigate(`/admin/order/${order._id}`);
+                        }}
+                      >
+                        Детали
+                      </Button>
+                    </td>
+                  </tr>
+                ))}
+              </tbody>
+            </table>
+          )}
+          <div style={{ marginTop: "20px" }}>
+            {[...Array(pages).keys()].map((x) => (
+              <LinkContainer
+                key={x + 1}
+                className="mx-1"
+                to={getFilterUrl({ page: x + 1 })}
+              >
+                <Button
+                  className={Number(page) === x + 1 ? "text-bold" : ""}
+                  variant={Number(page) === x + 1 ? "danger" : "light"}
+                >
+                  {x + 1}
+                </Button>
+              </LinkContainer>
+            ))}
+          </div>
+        </div>
+      </div>
+    </div>
+  );
+}
+
+export default AdminOrdersScreen;
Index: frontend/src/screens/AdminProductsScreen.js
===================================================================
--- frontend/src/screens/AdminProductsScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
+++ frontend/src/screens/AdminProductsScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,389 @@
+import axios from "axios";
+import React, { useEffect, useReducer, useState } from "react";
+import { Link, useNavigate, useLocation } from "react-router-dom";
+import ListGroup from "react-bootstrap/ListGroup";
+import Button from "react-bootstrap/Button";
+import Form from "react-bootstrap/Form";
+import { getError } from "../components/utils";
+import { toast } from "react-toastify";
+import LoadingBox from "../components/LoadingBox";
+import MessageBox from "../components/MessageBox";
+import LinkContainer from "react-router-bootstrap/LinkContainer";
+
+const reducer = (state, action) => {
+  switch (action.type) {
+    case "FETCH_REQUEST":
+      return { ...state, loading: true };
+    case "FETCH_SUCCESS":
+      return {
+        ...state,
+        products: action.payload.products,
+        page: action.payload.page,
+        pages: action.payload.pages,
+        countProducts: action.payload.countProducts,
+        loading: false,
+      };
+    case "FETCH_FAIL":
+      return { ...state, loading: false, error: action.payload };
+    default:
+      return state;
+  }
+};
+
+function AdminProductsScreen() {
+  const navigate = useNavigate();
+  const { search } = useLocation();
+  const sp = new URLSearchParams(search);
+  const category = sp.get("category") || "all";
+  const query = sp.get("query") || "all";
+  const subCategory = sp.get("subCategory") || "all";
+  //const name = sp.get("name") || "all";
+  const order = sp.get("order") || "newest";
+  const page = sp.get("page") || 1;
+
+  const [{ loading, error, products, pages, countProducts }, dispatch] =
+    useReducer(reducer, { loading: true, error: "" });
+
+  useEffect(() => {
+    const fetchData = async () => {
+      try {
+        dispatch({ type: "FETCH_REQUEST" });
+        /*
+        const { data } = await axios.get(
+          `/api/products/search?page=${page}&query=${query}&category=${category}&subCategory=${subCategory}&order=${order}`
+        );*/
+        const { data } = await axios.get(
+          `/api/products?page=${page}&query=${query}&category=${category}&subCategory=${subCategory}&order=${order}`
+        );
+        dispatch({ type: "FETCH_SUCCESS", payload: data });
+      } catch (err) {
+        dispatch({ type: "FETCH_FAIL", payload: getError(err) });
+      }
+    };
+    fetchData();
+  }, [category, page, query, order, subCategory, error]);
+
+  const getFilterUrl = (filter) => {
+    const filterPage = filter.page || page;
+    const filterCategorry = filter.category || category;
+    const filterQuery = filter.query || query;
+    const filterSubCategory = filter.subCategory || subCategory;
+    const sortOrder = filter.order || order;
+    return `?category=${filterCategorry}&query=${filterQuery}&subCategory=${filterSubCategory}&page=${filterPage}&order=${sortOrder}`;
+  };
+
+  return (
+    <div
+      style={{
+        display: "flex",
+        flexDirection: "column",
+        alignItems: "center",
+        justifyContent: "center",
+      }}
+    >
+      {loading ? (
+        <LoadingBox></LoadingBox>
+      ) : error ? (
+        <MessageBox varriant="danger">{error}</MessageBox>
+      ) : (
+        <div id="pgContainer">
+          <div id="sidebarMenu">
+            <Link
+              to={"/admin/addProduct"}
+              style={{ textDecoration: "none", width: "100%" }}
+            >
+              <div className="dashboard-btn" to="/admin/addProduct">
+                Додади нов производ
+              </div>
+            </Link>
+            <Link
+              to={"/admin/products"}
+              style={{ textDecoration: "none", width: "100%" }}
+            >
+              <div className="dashboard-btn">Производи</div>
+            </Link>
+            <Link
+              to={"/admin/orders"}
+              style={{ textDecoration: "none", width: "100%" }}
+            >
+              <div className="dashboard-btn">Нарачки</div>
+            </Link>
+          </div>
+          <div className="taskContainer">
+            <h1>Производи</h1>
+            <div className="filterContainer" style={{ width: "100%" }}>
+              <Form
+                id="fff"
+                style={{
+                  display: "flex",
+                  alignItems: "center",
+                  justifyContent: "space-around",
+                }}
+              >
+                {/*
+              <Form.Group>
+                <Form.Control
+                  id="filterName"
+                  placeholder="Име"
+                  onSubmit={submitHandler}
+                  required
+                ></Form.Control>
+            </Form.Group>*/}
+                <Form.Group>
+                  <Form.Select
+                    value={category}
+                    onChange={(e) => {
+                      if (e.target.value === "all") {
+                        navigate(
+                          getFilterUrl({
+                            page: 1,
+                            category: e.target.value,
+                            subCategory: "all",
+                          })
+                        );
+                      } else {
+                        navigate(
+                          getFilterUrl({ category: e.target.value, page: 1 })
+                        );
+                      }
+                    }}
+                  >
+                    <option value="all">Категорија</option>
+                    <option value={"dnevna"}>Дневна</option>
+                    <option value={"spalna"}>Спална</option>
+                    <option value={"kancelarija"}>Канцеларија</option>
+                    <option value={"hodnik"}>Ходник</option>
+                    <option value={"gradina"}>Градина</option>
+                    <option value={"trpezarija"}>Трпезарија</option>
+                    <option value={"kujna"}>Кујна</option>
+                    <option value={"detska"}>Детска</option>
+                  </Form.Select>
+                </Form.Group>
+                <Form.Group>
+                  <Form.Select
+                    value={subCategory}
+                    onChange={(e) => {
+                      navigate(
+                        getFilterUrl({ subCategory: e.target.value, page: 1 })
+                      );
+                    }}
+                  >
+                    <option value="all">Подкатегорија</option>
+
+                    {category === "dnevna" && (
+                      <option value="agolni-garnituri">Аголни Гарнитури</option>
+                    )}
+                    {category === "dnevna" && (
+                      <option value="sofi">Софи</option>
+                    )}
+                    {category === "dnevna" && (
+                      <option value="fotelji">Фотелји</option>
+                    )}
+                    {category === "dnevna" && (
+                      <option value="taburetki">Табуретки</option>
+                    )}
+                    {category === "dnevna" && (
+                      <option value="klub-masi">Клуб маси</option>
+                    )}
+                    {category === "dnevna" && (
+                      <option value="tv-komodi">ТВ комоди</option>
+                    )}
+                    {category === "dnevna" && (
+                      <option value="komodi">Комоди</option>
+                    )}
+                    {category === "spalna" && (
+                      <option value="spalni-kompleti">Спални Комплети</option>
+                    )}
+                    {category === "spalna" && (
+                      <option value="lezai">Лежаи</option>
+                    )}
+                    {category === "spalna" && (
+                      <option value="kreveti">Кревети</option>
+                    )}
+                    {category === "spalna" && (
+                      <option value="plakari">Плакари</option>
+                    )}
+                    {category === "spalna" && (
+                      <option value="nokni-skafcinja">Ноќни шкафчиња</option>
+                    )}
+                    {category === "spalna" && (
+                      <option value="toaletni-masi">Тоалетни маси</option>
+                    )}
+                    {category === "kancelarija" && (
+                      <option value="biroa">Бироа</option>
+                    )}
+                    {category === "kancelarija" && (
+                      <option value="kancelariski-stolovi">
+                        Канцелариски столови
+                      </option>
+                    )}
+                    {category === "kancelarija" && (
+                      <option value="gejmerski-stolovi">
+                        Гејмерски столови
+                      </option>
+                    )}
+                    {category === "kancelarija" && (
+                      <option value="kancelariski-skafovi">
+                        Канцелариски шкафови
+                      </option>
+                    )}
+                    {category === "hodnik" && (
+                      <option value="skafovi-za-cevli">Шкафови за чевли</option>
+                    )}
+                    {category === "hodnik" && (
+                      <option value="zakacalki-i-ogledala">
+                        Закачалки и огледала
+                      </option>
+                    )}
+                    {category === "hodnik" && (
+                      <option value="kolekcii-za-hodnik">
+                        Колекции за ходник
+                      </option>
+                    )}
+                    {category === "gradina" && (
+                      <option value="gradinarski-kompleti">
+                        Градинарски комплети
+                      </option>
+                    )}
+                    {category === "gradina" && (
+                      <option value="gradinarski-lulki">
+                        Градинарски лулки
+                      </option>
+                    )}
+                    {category === "gradina" && (
+                      <option value="gradinarski-cadori">
+                        Градинарски чадори
+                      </option>
+                    )}
+                    {category === "gradina" && (
+                      <option value="gradinarski-masi">Градинарски маси</option>
+                    )}
+                    {category === "gradina" && (
+                      <option value="gradinarski-stolovi">
+                        Градинарски столови
+                      </option>
+                    )}
+                    {category === "gradina" && (
+                      <option value="gradinarsko-osvetluvanje">
+                        Градинарско осветлување
+                      </option>
+                    )}
+                    {category === "trpezarija" && (
+                      <option value="trpezariski-masi">Трпезариски маси</option>
+                    )}
+                    {category === "trpezarija" && (
+                      <option value="trpezariski-stolovi">
+                        Трпезариски столови
+                      </option>
+                    )}
+                    {category === "trpezarija" && (
+                      <option value="kujnski-garnituri">
+                        Кујнски гарнитури
+                      </option>
+                    )}
+                    {category === "trpezarija" && (
+                      <option value="bar-stolovi-i-masi">
+                        Бар столови и маси
+                      </option>
+                    )}
+                    {category === "kujna" && (
+                      <option value="kujnski-agolni-garnituri">
+                        Кујнски аголни гарнитури
+                      </option>
+                    )}
+                    {category === "kujna" && (
+                      <option value="standardni-kujni">Стандардни кујни</option>
+                    )}
+                    {category === "detska" && (
+                      <option value="kolekcii-za-detska-soba">
+                        Колекции за детска соба
+                      </option>
+                    )}
+                    {category === "detska" && (
+                      <option value="detski-biroa">Детски бироа</option>
+                    )}
+                    {category === "detska" && (
+                      <option value="detski-lezai">Детски лежаи</option>
+                    )}
+                  </Form.Select>
+                </Form.Group>
+                <Form.Group>
+                  <Form.Select
+                    id="sortOrder"
+                    onChange={(e) => {
+                      navigate(getFilterUrl({ order: e.target.value }));
+                    }}
+                  >
+                    <option value={"newest"}>Сортирај по цена</option>
+                    <option value={"lowFirst"}>Од ниска кон висока</option>
+                    <option value={"highFirst"}>Од висока кон ниска</option>
+                  </Form.Select>
+                </Form.Group>
+              </Form>
+            </div>
+            <ListGroup
+              id="filteredProductsContainer"
+              variant="success"
+              style={{ width: "95%", margin: "auto", marginTop: "20px" }}
+            >
+              {products.map((item) => (
+                <ListGroup.Item key={item._id}>
+                  <div
+                    style={{
+                      display: "flex",
+                      alignItems: "center",
+                      justifyContent: "space-between",
+                    }}
+                  >
+                    <div style={{ display: "flex", alignItems: "center" }}>
+                      <img
+                        src={item.image}
+                        alt={item.name}
+                        className="img-fluid rounded img-thumbnail"
+                        style={{ margin: "0px" }}
+                      ></img>
+                      <span style={{ marginLeft: "20px" }}>{item.name}</span>
+                    </div>
+                    <span>{item.category}</span>
+                    <span>{item.subCategory}</span>
+                    <span>{item.countInStock}</span>
+
+                    <span>{item.price} ден</span>
+                    <Button
+                      type="button"
+                      variant="primary"
+                      style={{ height: "50px" }}
+                      onClick={() => {
+                        navigate(`/admin/product/${item.slug}`);
+                      }}
+                    >
+                      Измени
+                    </Button>
+                  </div>
+                </ListGroup.Item>
+              ))}
+            </ListGroup>
+            <div style={{ marginTop: "20px" }}>
+              {[...Array(pages).keys()].map((x) => (
+                <LinkContainer
+                  key={x + 1}
+                  className="mx-1"
+                  to={getFilterUrl({ page: x + 1 })}
+                >
+                  <Button
+                    className={Number(page) === x + 1 ? "text-bold" : ""}
+                    variant={Number(page) === x + 1 ? "danger" : "light"}
+                  >
+                    {x + 1}
+                  </Button>
+                </LinkContainer>
+              ))}
+            </div>
+          </div>
+        </div>
+      )}
+    </div>
+  );
+}
+
+export default AdminProductsScreen;
Index: frontend/src/screens/CardPaymentScreen.js
===================================================================
--- frontend/src/screens/CardPaymentScreen.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/screens/CardPaymentScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -41,8 +41,24 @@
   cart.totalPrice = cart.itemsPrice + cart.shippingPrice;
 
+  const [cardNumber, setCardNumber] = useState("");
+  const handleChange = (event) => {
+    const result = event.target.value.replace(/[^0-9]/gi, "");
+    setCardNumber(result);
+  };
+  const [ccvNumber, setCcvNumber] = useState("");
+  const handleChangeCCV = (event) => {
+    const result = event.target.value.replace(/[^0-9]/gi, "");
+    console.log(event.currentTarget.validity.valid);
+
+    setCcvNumber(result);
+  };
   const paymentHandler = async (event) => {
     event.preventDefault();
     const form = event.currentTarget;
     if (form.checkValidity() === false) {
+      event.preventDefault();
+      event.stopPropagation();
+    }
+    if (cardNumber.length !== 16) {
       event.preventDefault();
       event.stopPropagation();
@@ -63,4 +79,6 @@
             isPaid: true,
             paidAt: Date.now(),
+            isConfirmed: true,
+            contactNumber: userInfo.contact,
           },
           {
@@ -95,10 +113,5 @@
           <Form.Group id="nameInput">
             <Form.Label>Име и Презиме</Form.Label>
-            <Form.Control
-              type="text"
-              //value={holderName}
-              // onChange={(e) => setHolderName(e.target.value)}
-              required
-            ></Form.Control>
+            <Form.Control type="text" required></Form.Control>
           </Form.Group>
           <Form.Group>
@@ -106,6 +119,8 @@
             <Form.Control
               type="text"
-              //value={cardNumber}
-              //onChange={(e) => setCardNumber(e.target.value)}
+              minLength="16"
+              maxLength="16"
+              value={cardNumber}
+              onChange={handleChange}
               required
             ></Form.Control>
@@ -115,6 +130,8 @@
             <Form.Control
               type="text"
-              //value={cvv}
-              //onChange={(e) => setCvv(e.target.value)}
+              minLength={3}
+              maxLength={3}
+              value={ccvNumber}
+              onChange={handleChangeCCV}
               required
             ></Form.Control>
Index: frontend/src/screens/OrderHistoryScreen.js
===================================================================
--- frontend/src/screens/OrderHistoryScreen.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/screens/OrderHistoryScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -10,4 +10,6 @@
 import CheckIcon from "@mui/icons-material/Check";
 import ClearIcon from "@mui/icons-material/Clear";
+import PhonePausedIcon from "@mui/icons-material/PhonePaused";
+import LocalShippingIcon from "@mui/icons-material/LocalShipping";
 const reducer = (state, action) => {
   switch (action.type) {
@@ -49,5 +51,5 @@
 
   return (
-    <div className="pageContainer shipPC">
+    <div className="pageContainer shipPC" style={{ justifyContent: "normal" }}>
       <Helmet>
         <title>Историја на нарачки</title>
@@ -82,6 +84,8 @@
                   {order.isDelivered ? (
                     <CheckIcon></CheckIcon>
+                  ) : order.isShipped ? (
+                    <LocalShippingIcon></LocalShippingIcon>
                   ) : (
-                    <ClearIcon></ClearIcon>
+                    <PhonePausedIcon></PhonePausedIcon>
                   )}
                 </td>
Index: frontend/src/screens/OrderScreen.js
===================================================================
--- frontend/src/screens/OrderScreen.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/screens/OrderScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -84,6 +84,17 @@
                   Доставено на {order.deliveredAt}
                 </MessageBox>
+              ) : order.isShipped ? (
+                <MessageBox variant="primary">
+                  Вашата нарачка е испратена.
+                </MessageBox>
+              ) : order.isConfirmed ? (
+                <MessageBox variant="primary">
+                  Вашата нарачка се процесира.
+                </MessageBox>
               ) : (
-                <MessageBox variant="danger">Не е доставено</MessageBox>
+                <MessageBox variant="danger">
+                  Потребно е да ја потврдите нарачката. Ќе бидете контактирани
+                  преку телефонскиот број оставен за контакт.
+                </MessageBox>
               )}
             </Card.Body>
Index: frontend/src/screens/PlaceOrderScreen.js
===================================================================
--- frontend/src/screens/PlaceOrderScreen.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/screens/PlaceOrderScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -60,4 +60,6 @@
           shippingPrice: cart.shippingPrice,
           totalPrice: cart.totalPrice,
+          isConfirmed: false,
+          contactNumber: userInfo.contact,
         },
         {
Index: frontend/src/screens/ProductScreen.js
===================================================================
--- frontend/src/screens/ProductScreen.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/screens/ProductScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -72,4 +72,7 @@
                 <img src={product.sideImage} alt={product.name}></img>
               </div>
+              <div className="sideImg">
+                <img src={product.sideImage2} alt={product.name}></img>
+              </div>
             </div>
           </div>
Index: frontend/src/screens/ProductScreenBootstrap.js
===================================================================
--- frontend/src/screens/ProductScreenBootstrap.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/screens/ProductScreenBootstrap.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -165,4 +165,11 @@
                   onClick={changePhoto}
                 ></img>
+
+                <img
+                  id="sec"
+                  src={product.sideImage2}
+                  alt={product.name}
+                  onClick={changePhoto}
+                ></img>
               </Row>
 
Index: frontend/src/screens/SigninScreen.js
===================================================================
--- frontend/src/screens/SigninScreen.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/screens/SigninScreen.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -32,5 +32,6 @@
       ctxDispatch({ type: "USER_SIGNIN", payload: data });
       localStorage.setItem("userInfo", JSON.stringify(data));
-      navigate(redirect || "/");
+      if (data.isAdmin) navigate("/admin/dashboard");
+      else navigate(redirect || "/");
     } catch (err) {
       toast.error(getError(err));
