Index: backend/models/orderModel.js
===================================================================
--- backend/models/orderModel.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ backend/models/orderModel.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -35,7 +35,11 @@
     totalPrice: { type: Number, required: true },
     user: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: true },
+    isConfirmed: { type: Boolean, default: false },
     isPaid: { type: Boolean, default: false },
+    contactNumber: { type: String },
     paidAt: { type: Date },
     paidAtFormat: { type: String },
+    shippedAt: { type: Date },
+    isShipped: { type: Boolean, default: false },
     isDelivered: { type: Boolean, default: false },
     deliveredAt: { type: Date },
Index: backend/models/productModel.js
===================================================================
--- backend/models/productModel.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ backend/models/productModel.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -7,4 +7,5 @@
     image: { type: String, required: true },
     sideImage: { type: String, required: true },
+    sideImage2: { type: String, required: true },
     dimension: { type: String, required: true },
     scheme: { type: String, required: true },
Index: backend/package-lock.json
===================================================================
--- backend/package-lock.json	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ backend/package-lock.json	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -15,5 +15,6 @@
         "express-async-handler": "^1.2.0",
         "jsonwebtoken": "^8.5.1",
-        "mongoose": "^6.5.3"
+        "mongoose": "^6.5.3",
+        "multer": "^1.4.5-lts.1"
       },
       "devDependencies": {
@@ -70,4 +71,9 @@
         "node": ">= 8"
       }
+    },
+    "node_modules/append-field": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+      "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
     },
     "node_modules/array-flatten": {
@@ -199,4 +205,20 @@
       "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
     },
+    "node_modules/buffer-from": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+    },
+    "node_modules/busboy": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+      "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+      "dependencies": {
+        "streamsearch": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=10.16.0"
+      }
+    },
     "node_modules/bytes": {
       "version": "3.1.2",
@@ -252,4 +274,18 @@
       "dev": true
     },
+    "node_modules/concat-stream": {
+      "version": "1.6.2",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+      "engines": [
+        "node >= 0.8"
+      ],
+      "dependencies": {
+        "buffer-from": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.2.2",
+        "typedarray": "^0.0.6"
+      }
+    },
     "node_modules/content-disposition": {
       "version": "0.5.4",
@@ -283,4 +319,9 @@
       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+    },
+    "node_modules/core-util-is": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
     },
     "node_modules/debug": {
@@ -636,4 +677,9 @@
       }
     },
+    "node_modules/isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+    },
     "node_modules/jsonwebtoken": {
       "version": "8.5.1",
@@ -790,4 +836,20 @@
       }
     },
+    "node_modules/minimist": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+      "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
+    },
+    "node_modules/mkdirp": {
+      "version": "0.5.6",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+      "dependencies": {
+        "minimist": "^1.2.6"
+      },
+      "bin": {
+        "mkdirp": "bin/cmd.js"
+      }
+    },
     "node_modules/mongodb": {
       "version": "4.8.1",
@@ -886,4 +948,21 @@
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+    },
+    "node_modules/multer": {
+      "version": "1.4.5-lts.1",
+      "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
+      "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
+      "dependencies": {
+        "append-field": "^1.0.0",
+        "busboy": "^1.0.0",
+        "concat-stream": "^1.5.2",
+        "mkdirp": "^0.5.4",
+        "object-assign": "^4.1.1",
+        "type-is": "^1.6.4",
+        "xtend": "^4.0.0"
+      },
+      "engines": {
+        "node": ">= 6.0.0"
+      }
     },
     "node_modules/negotiator": {
@@ -963,4 +1042,12 @@
       }
     },
+    "node_modules/object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/object-inspect": {
       "version": "1.12.2",
@@ -1007,4 +1094,9 @@
       }
     },
+    "node_modules/process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+    },
     "node_modules/proxy-addr": {
       "version": "2.0.7",
@@ -1068,4 +1160,23 @@
         "node": ">= 0.8"
       }
+    },
+    "node_modules/readable-stream": {
+      "version": "2.3.7",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+      "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+      "dependencies": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "node_modules/readable-stream/node_modules/safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
     },
     "node_modules/readdirp": {
@@ -1250,4 +1361,25 @@
       }
     },
+    "node_modules/streamsearch": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+      "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
+    "node_modules/string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "dependencies": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "node_modules/string_decoder/node_modules/safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+    },
     "node_modules/supports-color": {
       "version": "5.5.0",
@@ -1316,4 +1448,9 @@
         "node": ">= 0.6"
       }
+    },
+    "node_modules/typedarray": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+      "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
     },
     "node_modules/undefsafe": {
@@ -1331,4 +1468,9 @@
       }
     },
+    "node_modules/util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+    },
     "node_modules/utils-merge": {
       "version": "1.0.1",
@@ -1365,4 +1507,12 @@
       "engines": {
         "node": ">=12"
+      }
+    },
+    "node_modules/xtend": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+      "engines": {
+        "node": ">=0.4"
       }
     }
@@ -1412,4 +1562,9 @@
         "picomatch": "^2.0.4"
       }
+    },
+    "append-field": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+      "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
     },
     "array-flatten": {
@@ -1500,4 +1655,17 @@
       "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
     },
+    "buffer-from": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+    },
+    "busboy": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+      "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+      "requires": {
+        "streamsearch": "^1.1.0"
+      }
+    },
     "bytes": {
       "version": "3.1.2",
@@ -1536,4 +1704,15 @@
       "dev": true
     },
+    "concat-stream": {
+      "version": "1.6.2",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.2.2",
+        "typedarray": "^0.0.6"
+      }
+    },
     "content-disposition": {
       "version": "0.5.4",
@@ -1558,4 +1737,9 @@
       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+    },
+    "core-util-is": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
     },
     "debug": {
@@ -1817,4 +2001,9 @@
       "dev": true
     },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+    },
     "jsonwebtoken": {
       "version": "8.5.1",
@@ -1946,4 +2135,17 @@
       "requires": {
         "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimist": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+      "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
+    },
+    "mkdirp": {
+      "version": "0.5.6",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+      "requires": {
+        "minimist": "^1.2.6"
       }
     },
@@ -2022,4 +2224,18 @@
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+    },
+    "multer": {
+      "version": "1.4.5-lts.1",
+      "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
+      "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
+      "requires": {
+        "append-field": "^1.0.0",
+        "busboy": "^1.0.0",
+        "concat-stream": "^1.5.2",
+        "mkdirp": "^0.5.4",
+        "object-assign": "^4.1.1",
+        "type-is": "^1.6.4",
+        "xtend": "^4.0.0"
+      }
     },
     "negotiator": {
@@ -2078,4 +2294,9 @@
       "dev": true
     },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
+    },
     "object-inspect": {
       "version": "1.12.2",
@@ -2107,4 +2328,9 @@
       "dev": true
     },
+    "process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+    },
     "proxy-addr": {
       "version": "2.0.7",
@@ -2149,4 +2375,25 @@
         "iconv-lite": "0.4.24",
         "unpipe": "1.0.0"
+      }
+    },
+    "readable-stream": {
+      "version": "2.3.7",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+      "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+      "requires": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      },
+      "dependencies": {
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        }
       }
     },
@@ -2287,4 +2534,24 @@
       "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
     },
+    "streamsearch": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+      "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
+    },
+    "string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "requires": {
+        "safe-buffer": "~5.1.0"
+      },
+      "dependencies": {
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+        }
+      }
+    },
     "supports-color": {
       "version": "5.5.0",
@@ -2335,4 +2602,9 @@
         "mime-types": "~2.1.24"
       }
+    },
+    "typedarray": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+      "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
     },
     "undefsafe": {
@@ -2347,4 +2619,9 @@
       "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
     },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+    },
     "utils-merge": {
       "version": "1.0.1",
@@ -2370,4 +2647,9 @@
         "webidl-conversions": "^7.0.0"
       }
+    },
+    "xtend": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
     }
   }
Index: backend/package.json
===================================================================
--- backend/package.json	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ backend/package.json	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -17,5 +17,6 @@
     "express-async-handler": "^1.2.0",
     "jsonwebtoken": "^8.5.1",
-    "mongoose": "^6.5.3"
+    "mongoose": "^6.5.3",
+    "multer": "^1.4.5-lts.1"
   },
   "devDependencies": {
Index: backend/routes/orderRoutes.js
===================================================================
--- backend/routes/orderRoutes.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ backend/routes/orderRoutes.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -21,4 +21,6 @@
       isPaid: req.body.isPaid,
       paidAt: req.body.paidAt,
+      isConfirmed: req.body.isConfirmed,
+      contactNumber: req.body.contactNumber,
     });
     const order = await newOrder.save();
@@ -33,4 +35,46 @@
     const orders = await Order.find({ user: req.user._id });
     res.send(orders);
+  })
+);
+const PAGE_SIZE = 10;
+orderRouter.get(
+  "/",
+  expressAsyncHandler(async (req, res) => {
+    const { query } = req;
+    const pageSize = query.pageSize || PAGE_SIZE;
+    const page = query.page || 1;
+    const isConfirmed = query.isConfirmed || "";
+    const isShipped = query.isShipped || "";
+    const searchQuery = query.query || "";
+    const isDelivered = false;
+    const queryFilter =
+      searchQuery && searchQuery !== "all"
+        ? { _: { $regex: searchQuery, $options: "i" } }
+        : {};
+    const isConfirmedFilter =
+      isConfirmed && isConfirmed !== "all" ? { isConfirmed } : {};
+    const isShippedFilter =
+      isShipped && isShipped !== "all" ? { isShipped } : {};
+
+    const orders = await Order.find({
+      ...queryFilter,
+      ...isConfirmedFilter,
+      ...isShippedFilter,
+      ...isDelivered,
+    })
+      .skip(pageSize * (page - 1))
+      .limit(pageSize);
+    const countOrders = await Order.countDocuments({
+      ...isConfirmedFilter,
+      ...isShippedFilter,
+    });
+    res.send({
+      orders,
+      countOrders,
+      page,
+      pages: Math.ceil(countOrders / pageSize),
+    });
+    //const orders = await Order.find();
+    //res.send(orders);
   })
 );
@@ -49,3 +93,53 @@
 );
 
+orderRouter.put(
+  "/action",
+  expressAsyncHandler(async (req, res) => {
+    if (req.body.isConfirmed) {
+      const order = await Order.updateOne(
+        { _id: req.body._id },
+        {
+          $set: {
+            isConfirmed: req.body.isConfirmed,
+          },
+        }
+      );
+    } else if (req.body.isShipped) {
+      const order = await Order.updateOne(
+        { _id: req.body._id },
+        {
+          $set: {
+            isShipped: req.body.isShipped,
+            shippedAt: req.body.shippedAt,
+          },
+        }
+      );
+    } else if (req.body.isDelivered && req.body.isPaid) {
+      const order = await Order.updateOne(
+        { _id: req.body._id },
+        {
+          $set: {
+            isDelivered: req.body.isDelivered,
+            deliveredAt: req.body.deliveredAt,
+            isPaid: req.body.isPaid,
+            paidAt: req.body.paidAt,
+          },
+        }
+      );
+    } else {
+      const order = await Order.updateOne(
+        { _id: req.body._id },
+        {
+          $set: {
+            isDelivered: req.body.isDelivered,
+            deliveredAt: req.body.deliveredAt,
+          },
+        }
+      );
+    }
+
+    res.status(200).send({ message: "Succesful" });
+  })
+);
+
 export default orderRouter;
Index: backend/routes/productRoutes.js
===================================================================
--- backend/routes/productRoutes.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ backend/routes/productRoutes.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -1,12 +1,107 @@
-import express from "express";
+import express, { query } from "express";
 import Product from "../models/productModel.js";
+import multer from "multer";
+import expressAsyncHandler from "express-async-handler";
+import userRouter from "./userRoutes.js";
 
 const productRouter = express.Router();
 
+const storage = multer.diskStorage({
+  destination: (req, file, callback) => {
+    callback(null, "../frontend/public/uploads/");
+  },
+  filename: (req, file, callback) => {
+    callback(null, file.originalname);
+  },
+});
+
+const upload = multer({ storage: storage });
+const multipleUpload = upload.fields([
+  { name: "image", maxCount: 1 },
+  { name: "sideImage", maxCount: 1 },
+  { name: "sideImage2", maxCount: 1 },
+  { name: "dimension", maxCount: 1 },
+  { name: "scheme", maxCount: 1 },
+]);
+productRouter.post(
+  "/add",
+  multipleUpload,
+  expressAsyncHandler(async (req, res) => {
+    const newProduct = new Product({
+      name: req.body.name,
+      slug: req.body.slug,
+      image: `/uploads/${req.files.image[0].originalname}`,
+      sideImage: `/uploads/${req.files.sideImage[0].originalname}`,
+      sideImage2: `/uploads/${req.files.sideImage2[0].originalname}`,
+      dimension: `/uploads/${req.files.dimension[0].originalname}`,
+      scheme: `/uploads/${req.files.scheme[0].originalname}`,
+      category: req.body.category,
+      subCategory: req.body.subCategory,
+      description: req.body.description,
+      price: req.body.price,
+      priceMontaza: req.body.priceMontaza,
+      countInStock: req.body.countInStock,
+    });
+
+    const product = await newProduct.save();
+    if (product)
+      res.status(201).send({ message: "New Product Created", product });
+    else res.status(404).send({ message: "Error creating product" });
+  })
+);
+
+const PAGE_SIZE = 20;
+productRouter.get(
+  "/",
+  expressAsyncHandler(async (req, res) => {
+    const { query } = req;
+    const pageSize = query.pageSize || PAGE_SIZE;
+    const page = query.page || 1;
+    const category = query.category || "";
+    const subCategory = query.subCategory || "";
+    const order = query.order || "";
+    const searchQuery = query.query || "";
+
+    const queryFilter =
+      searchQuery && searchQuery !== "all"
+        ? { name: { $regex: searchQuery, $options: "i" } }
+        : {};
+    const categoryFilter = category && category !== "all" ? { category } : {};
+    const subCategoryFilter =
+      subCategory && subCategory !== "all" ? { subCategory } : {};
+    const sortOrder =
+      order === "lowFirst"
+        ? { price: 1 }
+        : order === "highFirst"
+        ? { price: -1 }
+        : { createdAt: -1 };
+    const products = await Product.find({
+      ...queryFilter,
+      ...categoryFilter,
+      ...subCategoryFilter,
+    })
+      .sort(sortOrder)
+      .skip(pageSize * (page - 1))
+      .limit(pageSize);
+
+    const countProducts = await Product.countDocuments({
+      ...queryFilter,
+      ...categoryFilter,
+      ...subCategoryFilter,
+    });
+    res.send({
+      products,
+      countProducts,
+      page,
+      pages: Math.ceil(countProducts / pageSize),
+    });
+  })
+);
+/*
 productRouter.get("/", async (req, res) => {
   const products = await Product.find();
   res.send(products);
 });
-
+*/
 productRouter.get("/slug/:slug", async (req, res) => {
   const product = await Product.findOne({ slug: req.params.slug });
@@ -27,3 +122,41 @@
 });
 
+productRouter.put(
+  "/edit",
+  expressAsyncHandler(async (req, res) => {
+    const product = await Product.updateOne(
+      { slug: req.body.slug },
+      {
+        $set: {
+          name: req.body.name,
+          category: req.body.category,
+          slug: req.body.slug,
+          subCategory: req.body.subCategory,
+          description: req.body.description,
+          price: req.body.price,
+          priceMontaza: req.body.priceMontaza,
+          countInStock: req.body.countInStock,
+        },
+      }
+    );
+    /*
+    if (product) {
+      product.name = req.body.name || product.name;
+      product.slug = req.body.slug || product.slug;
+      product.price = req.body.price || product.price;
+      product.category = req.body.category || product.category;
+      product.subCategory = req.body.subCategory || product.subCategory;
+      product.description = req.body.description || product.description;
+      product.priceMontaza = req.body.priceMontaza || product.priceMontaza;
+      product.countInStock = req.body.countInStock || product.countInStock;
+      product.image = product.image;
+      product.sideImage = product.sideImage2;
+      product.sideImage2 = product.sideImage2;
+
+      const updatedProduct = await product.save();*/
+    res.status(200).send({ message: "Succesful" });
+    //else {
+    //res.status(404).send({ message: "Product Not Found" });
+  })
+);
 export default productRouter;
Index: frontend/package-lock.json
===================================================================
--- frontend/package-lock.json	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/package-lock.json	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -22,11 +22,14 @@
         "bootstrap": "^5.2.0",
         "font-awesome": "^4.7.0",
+        "jquery": "^3.6.1",
         "react": "^18.2.0",
         "react-bootstrap": "^2.5.0",
         "react-dom": "^18.2.0",
         "react-helmet-async": "^1.3.0",
+        "react-router-bootstrap": "^0.26.2",
         "react-router-dom": "^6.3.0",
         "react-scripts": "5.0.1",
         "react-toastify": "^9.0.8",
+        "slugify": "^1.6.5",
         "web-vitals": "^2.1.4"
       }
@@ -11728,4 +11731,9 @@
       }
     },
+    "node_modules/jquery": {
+      "version": "3.6.1",
+      "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz",
+      "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw=="
+    },
     "node_modules/js-tokens": {
       "version": "4.0.0",
@@ -14575,4 +14583,16 @@
       }
     },
+    "node_modules/react-router-bootstrap": {
+      "version": "0.26.2",
+      "resolved": "https://registry.npmjs.org/react-router-bootstrap/-/react-router-bootstrap-0.26.2.tgz",
+      "integrity": "sha512-YlpI9Xi+Uqp6zFAUO8D/wu6P8mr1ujqq+0V5MhJG1kx9dr/95fAMoGk4J+/CsysOkwtR3tYSac4DDWmHwXvC8w==",
+      "dependencies": {
+        "prop-types": "^15.7.2"
+      },
+      "peerDependencies": {
+        "react": ">=16.13.1",
+        "react-router-dom": ">=6.0.0"
+      }
+    },
     "node_modules/react-router-dom": {
       "version": "6.3.0",
@@ -15434,4 +15454,12 @@
       "engines": {
         "node": ">=8"
+      }
+    },
+    "node_modules/slugify": {
+      "version": "1.6.5",
+      "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz",
+      "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==",
+      "engines": {
+        "node": ">=8.0.0"
       }
     },
@@ -25737,4 +25765,9 @@
       }
     },
+    "jquery": {
+      "version": "3.6.1",
+      "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz",
+      "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw=="
+    },
     "js-tokens": {
       "version": "4.0.0",
@@ -27620,4 +27653,12 @@
       "requires": {
         "history": "^5.2.0"
+      }
+    },
+    "react-router-bootstrap": {
+      "version": "0.26.2",
+      "resolved": "https://registry.npmjs.org/react-router-bootstrap/-/react-router-bootstrap-0.26.2.tgz",
+      "integrity": "sha512-YlpI9Xi+Uqp6zFAUO8D/wu6P8mr1ujqq+0V5MhJG1kx9dr/95fAMoGk4J+/CsysOkwtR3tYSac4DDWmHwXvC8w==",
+      "requires": {
+        "prop-types": "^15.7.2"
       }
     },
@@ -28258,4 +28299,9 @@
       "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
     },
+    "slugify": {
+      "version": "1.6.5",
+      "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz",
+      "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ=="
+    },
     "sockjs": {
       "version": "0.3.24",
Index: frontend/package.json
===================================================================
--- frontend/package.json	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/package.json	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -18,11 +18,14 @@
     "bootstrap": "^5.2.0",
     "font-awesome": "^4.7.0",
+    "jquery": "^3.6.1",
     "react": "^18.2.0",
     "react-bootstrap": "^2.5.0",
     "react-dom": "^18.2.0",
     "react-helmet-async": "^1.3.0",
+    "react-router-bootstrap": "^0.26.2",
     "react-router-dom": "^6.3.0",
     "react-scripts": "5.0.1",
     "react-toastify": "^9.0.8",
+    "slugify": "^1.6.5",
     "web-vitals": "^2.1.4"
   },
Index: frontend/src/App.css
===================================================================
--- frontend/src/App.css	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/App.css	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,3 @@
+body {
+  overflow-x: hidden;
+}
Index: frontend/src/App.js
===================================================================
--- frontend/src/App.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/App.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -21,8 +21,15 @@
 import OrderHistoryScreen from "./screens/OrderHistoryScreen";
 import ProfileScreen from "./screens/ProfileScreen";
-
+import AdminDashboardScreen from "./screens/AdminDashboardScreen";
+import ListProducts from "./components/ListProducts";
+import AdminAddProductScreen from "./screens/AdminAddProductScreen";
+import AdminProductsScreen from "./screens/AdminProductsScreen";
+import AdminEditProductScreen from "./screens/AdminEditProductScreen";
+import AdminOrdersScreen from "./screens/AdminOrdersScreen";
+import AdminOrderScreen from "./screens/AdminOrderScreen";
 function App() {
   const { state } = useContext(Store);
   const { cart } = state;
+  //<Route path="/search" element={<AdminProductsScreen />} />
   return (
     <BrowserRouter>
@@ -44,4 +51,13 @@
         <Route path="/order/:id" element={<OrderScreen />} />
         <Route path="/products" element={<CategoryScreen />} />
+        <Route path="/admin/dashboard" element={<AdminDashboardScreen />} />
+        <Route path="/admin/addProduct" element={<AdminAddProductScreen />} />
+        <Route path="/admin/products" element={<AdminProductsScreen />} />
+        <Route path="/admin/orders" element={<AdminOrdersScreen />} />
+        <Route path="/admin/order/:id" element={<AdminOrderScreen />} />
+        <Route
+          path="/admin/product/:slug"
+          element={<AdminEditProductScreen />}
+        />
       </Routes>
 
Index: frontend/src/components/AddProductForm.js
===================================================================
--- frontend/src/components/AddProductForm.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
+++ frontend/src/components/AddProductForm.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,345 @@
+import axios from "axios";
+import React, { useState } from "react";
+import Button from "react-bootstrap/Button";
+import Form from "react-bootstrap/Form";
+import { toast } from "react-toastify";
+
+function AddProductForm() {
+  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 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>
+  );
+}
+
+export default AddProductForm;
Index: frontend/src/components/Header.js
===================================================================
--- frontend/src/components/Header.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/components/Header.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -518,5 +518,5 @@
       <div className="header__right">
         <div className="header__buttons">
-          {userInfo ? (
+          {userInfo && userInfo.isAdmin && (
             <NavDropdown
               title={
@@ -541,8 +541,8 @@
               <NavDropdown.Item
                 onClick={() => {
-                  navigate("/orderhistory");
+                  navigate("/admin/dashboard");
                 }}
               >
-                Нарачки
+                Dashboard
               </NavDropdown.Item>
 
@@ -556,5 +556,45 @@
               </NavDropdown.Item>
             </NavDropdown>
-          ) : (
+          )}
+          {userInfo && !userInfo.isAdmin && (
+            <NavDropdown
+              title={
+                <span>
+                  <AccountCircleIcon
+                    className="header__login"
+                    fontSize="large"
+                  />
+                  <p>{userInfo.name}</p>
+                </span>
+              }
+              id="basic-nav-dropdown"
+            >
+              <NavDropdown.Item
+                onClick={() => {
+                  navigate("/profile");
+                }}
+              >
+                Профил
+              </NavDropdown.Item>
+
+              <NavDropdown.Item
+                onClick={() => {
+                  navigate("/orderhistory");
+                }}
+              >
+                Нарачки
+              </NavDropdown.Item>
+
+              <NavDropdown.Divider />
+              <NavDropdown.Item
+                className="drowdown-item"
+                to="#signout"
+                onClick={signoutHandler}
+              >
+                Одјави се
+              </NavDropdown.Item>
+            </NavDropdown>
+          )}
+          {!userInfo && (
             <Link
               to={"/signin"}
Index: frontend/src/components/ListProducts.js
===================================================================
--- frontend/src/components/ListProducts.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
+++ frontend/src/components/ListProducts.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,354 @@
+/*
+import axios from "axios";
+import React, { useEffect, useReducer, useState } from "react";
+import { 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 "./utils";
+import { toast } from "react-toastify";
+import LoadingBox from "./LoadingBox";
+import MessageBox from "./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 ListProducts() {
+  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 {
+        const { data } = await axios.get(
+          `/api/products/search?page=${page}&query=${query}&category=${category}&subCategory=${subCategory}&order=${order}`
+        );
+        dispatch({ type: "FETCH_SUCCSS", payload: data });
+      } catch (err) {
+        dispatch({ type: "FETCH_FAIL", payload: getError(error) });
+      }
+    };
+    fetchData();
+  }, [category, order, page, query, subCategory, error]);
+  /*
+  const [categories, setCategories] = useState([]);
+  useEffect(() => {
+    const fetchCategories = async () => {
+      try {
+        const { data } = await axios.get(`api/products/categories`);
+        setCategories(data);
+      } catch (err) {
+        toast.error(getError(err));
+      }
+    };
+    fetchCategories();
+  }, [dispatch]);
+  
+  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 `/search?category=${filterCategorry}&query=${filterQuery}&subCategory=${filterSubCategory}&order=${sortOrder}&page=${filterPage}`;
+  };
+
+  return (
+    <div
+      style={{
+        display: "flex",
+        flexDirection: "column",
+        alignItems: "center",
+        justifyContent: "center",
+      }}
+    >
+      {loading ? (
+        <LoadingBox></LoadingBox>
+      ) : error ? (
+        <MessageBox varriant="danger">{error}</MessageBox>
+      ) : (
+        <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="Име"
+                  value={name}
+                  required
+                ></Form.Control>
+              </Form.Group>
+              <Form.Group>
+                <Form.Select
+                  value={category}
+                  onChange={(e) => {
+                    navigate(getFilterUrl({ category: e.target.value }));
+                  }}
+                >
+                  <option value="default">Категорија</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 }));
+                  }}
+                >
+                  <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>
+              <Form.Group>
+                <Form.Select
+                  id="sortOrder"
+                  value={order}
+                  onChange={(e) => {
+                    navigate(getFilterUrl({ order: e.target.value }));
+                  }}
+                >
+                  <option value={"default"}>Сортирај по цена</option>
+                  <option value={"lowFirst"}>Од ниска кон висока</option>
+                  <option value={"highFirst"}>Од висока кон ниска</option>
+                </Form.Select>
+              </Form.Group>
+              <Button variant="danger">Филтрирај</Button>
+            </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" }}
+                  >
+                    Измени
+                  </Button>
+                </div>
+              </ListGroup.Item>
+            ))}
+          </ListGroup>
+          <div>
+            {[...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="light"
+                >
+                  {x + 1}
+                </Button>
+              </LinkContainer>
+            ))}
+          </div>
+          {/*products.map((product) => (
+          <Product key={product.slug} product={product} />
+           ))}
+        </div>
+      )}
+    </div>
+  );
+}
+
+export default ListProducts;
+*/
Index: frontend/src/components/Product.js
===================================================================
--- frontend/src/components/Product.js	(revision ee056633af77f8879114a594a34f49f87fdf0765)
+++ frontend/src/components/Product.js	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -15,7 +15,11 @@
   return (
     <div className="product__container">
-      <Link to={`/product/${product.slug}`}>
-        <div className="product__img">
-          <img src={product.image} alt="product"></img>
+      <Link to={`/product/${product.slug}`} style={{ height: "165.91px" }}>
+        <div className="product__img" style={{ height: "100%" }}>
+          <img
+            src={product.image}
+            alt="product"
+            style={{ height: "100%" }}
+          ></img>
         </div>
       </Link>
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));
Index: frontend/src/styles/AdminDashboard.css
===================================================================
--- frontend/src/styles/AdminDashboard.css	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
+++ frontend/src/styles/AdminDashboard.css	(revision 55ed1718e29f3bb840f3e7b798f4728e2b431499)
@@ -0,0 +1,76 @@
+#pgContainer {
+  display: flex;
+  width: 100vw;
+  height: 850px;
+}
+
+#sidebarMenu {
+  height: 100%;
+  background-color: rgb(66, 63, 72);
+  display: flex;
+  flex-direction: column;
+  width: 18%;
+  align-items: center;
+  padding-top: 30px;
+  overflow-x: hidden;
+}
+
+#mainScreen {
+  flex: 1;
+}
+
+.taskContainer {
+  width: 90%;
+  margin-top: 20px;
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+
+.dashboard-btn {
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-size: 20px;
+  height: 40px;
+  color: white;
+}
+
+.dashboard-btn:hover {
+  background-color: #0d6efd;
+  cursor: pointer;
+}
+
+.newProductFormCointainer {
+  margin-top: 20px;
+  width: 90%;
+  display: flex;
+  flex-direction: column;
+}
+
+.firstRow {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.secondRow {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.thirdRow {
+  margin-top: 30px;
+  display: flex;
+  justify-content: space-around;
+  margin-bottom: 20px;
+  align-items: center;
+}
+
+#textArea {
+  height: 200px;
+}
