diff --git a/Backend/controllers/contactController.js b/Backend/controllers/contactController.js
new file mode 100644
index 0000000..81a4031
--- /dev/null
+++ b/Backend/controllers/contactController.js
@@ -0,0 +1,14 @@
+const Contact = require("../models/contactModel");
+
+const contactForm = async (req, res) => {
+ try {
+ const response = req.body;
+ await Contact.create(response);
+ return res.status(200).json({ message: "message send successfully" });
+ } catch (error) {
+ console.error(error);
+ return res.status(500).json({ message: "message not delivered" });
+ }
+};
+
+module.exports = contactForm;
\ No newline at end of file
diff --git a/Backend/models/contactModel.js b/Backend/models/contactModel.js
new file mode 100644
index 0000000..0dd951e
--- /dev/null
+++ b/Backend/models/contactModel.js
@@ -0,0 +1,9 @@
+const { Schema, model } = require("mongoose");
+const contactSchema = new Schema({
+ username: { type: String, required: true },
+ email: { type: String, required: true },
+ message: { type: String, required: true },
+});
+// create a new collections(Model)
+const Contact = new model("Contact", contactSchema);
+module.exports = Contact;
diff --git a/Backend/routes/contactRoute.js b/Backend/routes/contactRoute.js
new file mode 100644
index 0000000..3410295
--- /dev/null
+++ b/Backend/routes/contactRoute.js
@@ -0,0 +1,8 @@
+const express = require("express");
+const router = express.Router();
+
+const contactForm = require("../controllers/contactController");
+
+router.route("/contactus").post(contactForm);
+
+module.exports = router;
\ No newline at end of file
diff --git a/Backend/server.js b/Backend/server.js
index 4263d3d..6003f4d 100644
--- a/Backend/server.js
+++ b/Backend/server.js
@@ -12,6 +12,7 @@ const cookieParser = require("cookie-parser")
const fileUpload = require("express-fileupload")
const cors = require('cors');
const session = require("express-session");
+const contactRoute = require("./routes/contactRoute");
// middleware to recognize the body by express
app.use(express.json())
@@ -68,6 +69,7 @@ app.get('/', (req, res) => {
})
app.use('/api', apiRoutes)
+app.use("/api/form", contactRoute);
app.use((error, req, res, next) => {
if (process.env.NODE_ENV === 'development') {
diff --git a/Client/package-lock.json b/Client/package-lock.json
index 31ccc49..5fa5a09 100644
--- a/Client/package-lock.json
+++ b/Client/package-lock.json
@@ -21,7 +21,7 @@
"cookie-parser": "^1.4.6",
"dateformat": "^5.0.3",
"dompurify": "^3.0.5",
- "firebase": "^10.12.2",
+ "firebase": "^10.12.3",
"hamburger-react": "^2.5.0",
"html-react-parser": "^4.2.1",
"html-to-text": "^9.0.5",
@@ -755,14 +755,14 @@
}
},
"node_modules/@firebase/analytics": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.4.tgz",
- "integrity": "sha512-OJEl/8Oye/k+vJ1zV/1L6eGpc1XzAj+WG2TPznJ7PszL7sOFLBXkL9IjHfOCGDGpXeO3btozy/cYUqv4zgNeHg==",
+ "version": "0.10.5",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.5.tgz",
+ "integrity": "sha512-d0X2ksTOKHMf5zFAMKFZWXa8hSbgohsG507xFsGhF4Uet2b8uEUL/YLrEth67jXEbGEi1UQZX4AaGBxKNiDzjw==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/installations": "0.6.7",
+ "@firebase/component": "0.6.8",
+ "@firebase/installations": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -770,14 +770,14 @@
}
},
"node_modules/@firebase/analytics-compat": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.10.tgz",
- "integrity": "sha512-ia68RcLQLLMFWrM10JfmFod7eJGwqr4/uyrtzHpTDnxGX/6gNCBTOuxdAbyWIqXI5XmcMQdz9hDijGKOHgDfPw==",
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.11.tgz",
+ "integrity": "sha512-wmXxJ49pEY7H549Pa4CDPOTzkPJnfG2Yolptg72ntTgSrbKVq+Eg9cAQY6Z5Kn9ATSQRX5oGXKlNfEk5DJBvvA==",
"dependencies": {
- "@firebase/analytics": "0.10.4",
+ "@firebase/analytics": "0.10.5",
"@firebase/analytics-types": "0.8.2",
- "@firebase/component": "0.6.7",
- "@firebase/util": "1.9.6",
+ "@firebase/component": "0.6.8",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -790,25 +790,25 @@
"integrity": "sha512-EnzNNLh+9/sJsimsA/FGqzakmrAUKLeJvjRHlg8df1f97NLUlFidk9600y0ZgWOp3CAxn6Hjtk+08tixlUOWyw=="
},
"node_modules/@firebase/app": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.10.5.tgz",
- "integrity": "sha512-iY/fNot+hWPk9sTX8aHMqlcX9ynRvpGkskWAdUZ2eQQdLo8d1hSFYcYNwPv0Q/frGMasw8udKWMcFOEpC9fG8g==",
+ "version": "0.10.6",
+ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.10.6.tgz",
+ "integrity": "sha512-/r8Ikp7TOrIIdp7v2adD2kg9SqIXMGOoJXJB1HsX7LjpjWdsoy1fMkP0HlI7GQqqRxDueHNhETx5Zn5E8HyVAQ==",
"dependencies": {
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"idb": "7.1.1",
"tslib": "^2.1.0"
}
},
"node_modules/@firebase/app-check": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.4.tgz",
- "integrity": "sha512-2tjRDaxcM5G7BEpytiDcIl+NovV99q8yEqRMKDbn4J4i/XjjuThuB4S+4PkmTnZiCbdLXQiBhkVxNlUDcfog5Q==",
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.5.tgz",
+ "integrity": "sha512-WyIckkVYAfnzsPIw6EAt/qBUANkUAVl6irF0xuJ1R9ISNyUT1h7dPAwvs/g3rsx0fpBWaHRAH0IFiN6zO6yLqQ==",
"dependencies": {
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -816,15 +816,15 @@
}
},
"node_modules/@firebase/app-check-compat": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.11.tgz",
- "integrity": "sha512-t01zaH3RJpKEey0nGduz3Is+uSz7Sj4U5nwOV6lWb+86s5xtxpIvBJzu/lKxJfYyfZ29eJwpdjEgT1/lm4iQyA==",
+ "version": "0.3.12",
+ "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.12.tgz",
+ "integrity": "sha512-p/5w3pMih3JVT6u7g04KXgSZr6HDsQXyeWZkIe0+r71dPOlcKyUooe9/feTc8BWpjha3rUOkqQ7+JXZObwvYoQ==",
"dependencies": {
- "@firebase/app-check": "0.8.4",
+ "@firebase/app-check": "0.8.5",
"@firebase/app-check-types": "0.5.2",
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -842,14 +842,14 @@
"integrity": "sha512-FSOEzTzL5bLUbD2co3Zut46iyPWML6xc4x+78TeaXMSuJap5QObfb+rVvZJtla3asN4RwU7elaQaduP+HFizDA=="
},
"node_modules/@firebase/app-compat": {
- "version": "0.2.35",
- "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.35.tgz",
- "integrity": "sha512-vgay/WRjeH0r97/Q6L6df2CMx7oyNFDsE5yPQ9oR1G+zx2eT0s8vNNh0WlKqQxUEWaOLRnXhQ8gy7uu0cBgTRg==",
+ "version": "0.2.36",
+ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.36.tgz",
+ "integrity": "sha512-qsf+pllpgy1IGe2f5vfenOHSX8Cs58sVR5L6h/zBlNy9Yo54B2jy61KxLpSOgyRZb18IlnLLGjo7VtGU1CHvHA==",
"dependencies": {
- "@firebase/app": "0.10.5",
- "@firebase/component": "0.6.7",
+ "@firebase/app": "0.10.6",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
}
},
@@ -859,13 +859,13 @@
"integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ=="
},
"node_modules/@firebase/auth": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.7.4.tgz",
- "integrity": "sha512-d2Fw17s5QesojwebrA903el20Li9/YGgkoOGJjagM4I1qAT36APa/FcZ+OX86KxbYKCtQKTMqraU8pxG7C2JWA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.7.5.tgz",
+ "integrity": "sha512-DMFR1OA/f1/voeuFbSORg9AP36pMgOoSb/DRgiDalLmIJsDTlQNMCu+givjMP4s/XL85+tBk2MerYnK/AscJjw==",
"dependencies": {
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0",
"undici": "5.28.4"
},
@@ -880,14 +880,14 @@
}
},
"node_modules/@firebase/auth-compat": {
- "version": "0.5.9",
- "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.9.tgz",
- "integrity": "sha512-RX8Zh/3zz2CsVbmYfgHkfUm4fAEPCl+KHVIImNygV5jTGDF6oKOhBIpf4Yigclyu8ESQKZ4elyN0MBYm9/7zGw==",
+ "version": "0.5.10",
+ "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.10.tgz",
+ "integrity": "sha512-epDhgNIXmhl9DPuTW9Ec5NDJJKMFIdXBXiQI9O0xNHveow/ETtBCY86srzF7iCacqsd30CcpLwwXlhk8Y19Olg==",
"dependencies": {
- "@firebase/auth": "1.7.4",
+ "@firebase/auth": "1.7.5",
"@firebase/auth-types": "0.12.2",
- "@firebase/component": "0.6.7",
- "@firebase/util": "1.9.6",
+ "@firebase/component": "0.6.8",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0",
"undici": "5.28.4"
},
@@ -910,59 +910,59 @@
}
},
"node_modules/@firebase/component": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.7.tgz",
- "integrity": "sha512-baH1AA5zxfaz4O8w0vDwETByrKTQqB5CDjRls79Sa4eAGAoERw4Tnung7XbMl3jbJ4B/dmmtsMrdki0KikwDYA==",
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.8.tgz",
+ "integrity": "sha512-LcNvxGLLGjBwB0dJUsBGCej2fqAepWyBubs4jt1Tiuns7QLbXHuyObZ4aMeBjZjWx4m8g1LoVI9QFpSaq/k4/g==",
"dependencies": {
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
}
},
"node_modules/@firebase/database": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.5.tgz",
- "integrity": "sha512-cAfwBqMQuW6HbhwI3Cb/gDqZg7aR0OmaJ85WUxlnoYW2Tm4eR0hFl5FEijI3/gYPUiUcUPQvTkGV222VkT7KPw==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.6.tgz",
+ "integrity": "sha512-nrexUEG/fpVlHtWKkyfhTC3834kZ1WS7voNyqbBsBCqHXQOvznN5Z0L3nxBqdXSJyltNAf4ndFlQqm5gZiEczQ==",
"dependencies": {
"@firebase/app-check-interop-types": "0.3.2",
"@firebase/auth-interop-types": "0.2.3",
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"faye-websocket": "0.11.4",
"tslib": "^2.1.0"
}
},
"node_modules/@firebase/database-compat": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.5.tgz",
- "integrity": "sha512-NDSMaDjQ+TZEMDMmzJwlTL05kh1+0Y84C+kVMaOmNOzRGRM7VHi29I6YUhCetXH+/b1Wh4ZZRyp1CuWkd8s6hg==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.6.tgz",
+ "integrity": "sha512-1OGA0sLY47mkXjhICCrUTXEYFnSSXoiXWm1SHsN62b+Lzs5aKA3aWTjTUmYIoK93kDAMPkYpulSv8jcbH4Hwew==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/database": "1.0.5",
- "@firebase/database-types": "1.0.3",
+ "@firebase/component": "0.6.8",
+ "@firebase/database": "1.0.6",
+ "@firebase/database-types": "1.0.4",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
}
},
"node_modules/@firebase/database-types": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.3.tgz",
- "integrity": "sha512-39V/Riv2R3O/aUjYKh0xypj7NTNXNAK1bcgY5Kx+hdQPRS/aPTS8/5c0CGFYKgVuFbYlnlnhrCTYsh2uNhGwzA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.4.tgz",
+ "integrity": "sha512-mz9ZzbH6euFXbcBo+enuJ36I5dR5w+enJHHjy9Y5ThCdKUseqfDjW3vCp1YxE9zygFCSjJJ/z1cQ+zodvUcwPQ==",
"dependencies": {
"@firebase/app-types": "0.9.2",
- "@firebase/util": "1.9.6"
+ "@firebase/util": "1.9.7"
}
},
"node_modules/@firebase/firestore": {
- "version": "4.6.3",
- "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.6.3.tgz",
- "integrity": "sha512-d/+N2iUsiJ/Dc7fApdpdmmTXzwuTCromsdA1lKwYfZtMIOd1fI881NSLwK2wV4I38wkLnvfKJUV6WpU1f3/ONg==",
+ "version": "4.6.4",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.6.4.tgz",
+ "integrity": "sha512-vk2MoH5HxYEhiNg1l+yBXq1Fkhue/11bFg4HdlTv6BJHcTnnAj2a+/afPpatcW4MOdYA3Tv+d5nGzWbbOC1SHw==",
"dependencies": {
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
- "@firebase/webchannel-wrapper": "1.0.0",
+ "@firebase/util": "1.9.7",
+ "@firebase/webchannel-wrapper": "1.0.1",
"@grpc/grpc-js": "~1.9.0",
"@grpc/proto-loader": "^0.7.8",
"tslib": "^2.1.0",
@@ -976,14 +976,14 @@
}
},
"node_modules/@firebase/firestore-compat": {
- "version": "0.3.32",
- "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.32.tgz",
- "integrity": "sha512-at71mwK7a/mUXH0OgyY0+gUzedm/EUydDFYSFsBoO8DYowZ23Mgd6P4Rzq/Ll3zI/3xJN7LGe7Qp4iE/V/3Arg==",
+ "version": "0.3.33",
+ "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.33.tgz",
+ "integrity": "sha512-i42a2l31N95CwYEB7zmfK0FS1mrO6pwOLwxavCrwu1BCFrVVVQhUheTPIda/iGguK/2Nog0RaIR1bo7QkZEz3g==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/firestore": "4.6.3",
+ "@firebase/component": "0.6.8",
+ "@firebase/firestore": "4.6.4",
"@firebase/firestore-types": "3.0.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1000,15 +1000,15 @@
}
},
"node_modules/@firebase/functions": {
- "version": "0.11.5",
- "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.11.5.tgz",
- "integrity": "sha512-qrHJ+l62mZiU5UZiVi84t/iLXZlhRuSvBQsa2qvNLgPsEWR7wdpWhRmVdB7AU8ndkSHJjGlMICqrVnz47sgU7Q==",
+ "version": "0.11.6",
+ "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.11.6.tgz",
+ "integrity": "sha512-GPfIBPtpwQvsC7SQbgaUjLTdja0CsNwMoKSgrzA1FGGRk4NX6qO7VQU6XCwBiAFWbpbQex6QWkSMsCzLx1uibQ==",
"dependencies": {
"@firebase/app-check-interop-types": "0.3.2",
"@firebase/auth-interop-types": "0.2.3",
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/messaging-interop-types": "0.2.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0",
"undici": "5.28.4"
},
@@ -1017,14 +1017,14 @@
}
},
"node_modules/@firebase/functions-compat": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.11.tgz",
- "integrity": "sha512-Qn+ts/M6Lj2/6i1cp5V5TRR+Hi9kyXyHbo+w9GguINJ87zxrCe6ulx3TI5AGQkoQa8YFHUhT3DMGmLFiJjWTSQ==",
+ "version": "0.3.12",
+ "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.12.tgz",
+ "integrity": "sha512-r3XUb5VlITWpML46JymfJPkK6I9j4SNlO7qWIXUc0TUmkv0oAfVoiIt1F83/NuMZXaGr4YWA/794nVSy4GV8tw==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/functions": "0.11.5",
+ "@firebase/component": "0.6.8",
+ "@firebase/functions": "0.11.6",
"@firebase/functions-types": "0.6.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1037,12 +1037,12 @@
"integrity": "sha512-0KiJ9lZ28nS2iJJvimpY4nNccV21rkQyor5Iheu/nq8aKXJqtJdeSlZDspjPSBBiHRzo7/GMUttegnsEITqR+w=="
},
"node_modules/@firebase/installations": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.7.tgz",
- "integrity": "sha512-i6iGoXRu5mX4rTsiMSSKrgh9pSEzD4hwBEzRh5kEhOTr8xN/wvQcCPZDSMVYKwM2XyCPBLVq0JzjyerwL0Rihg==",
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.8.tgz",
+ "integrity": "sha512-57V374qdb2+wT5v7+ntpLXBjZkO6WRgmAUbVkRfFTM/4t980p0FesbqTAcOIiM8U866UeuuuF8lYH70D3jM/jQ==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/util": "1.9.6",
+ "@firebase/component": "0.6.8",
+ "@firebase/util": "1.9.7",
"idb": "7.1.1",
"tslib": "^2.1.0"
},
@@ -1051,14 +1051,14 @@
}
},
"node_modules/@firebase/installations-compat": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.7.tgz",
- "integrity": "sha512-RPcbD+3nqHbnhVjIOpWK2H5qzZ8pAAAScceiWph0VNTqpKyPQ5tDcp4V5fS0ELpfgsHYvroMLDKfeHxpfvm8cw==",
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.8.tgz",
+ "integrity": "sha512-pI2q8JFHB7yIq/szmhzGSWXtOvtzl6tCUmyykv5C8vvfOVJUH6mP4M4iwjbK8S1JotKd/K70+JWyYlxgQ0Kpyw==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/installations": "0.6.7",
+ "@firebase/component": "0.6.8",
+ "@firebase/installations": "0.6.8",
"@firebase/installations-types": "0.5.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1082,14 +1082,14 @@
}
},
"node_modules/@firebase/messaging": {
- "version": "0.12.9",
- "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.9.tgz",
- "integrity": "sha512-IH+JJmzbFGZXV3+TDyKdqqKPVfKRqBBg2BfYYOy7cm7J+SwV+uJMe8EnDKYeQLEQhtpwciPfJ3qQXJs2lbxDTw==",
+ "version": "0.12.10",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.10.tgz",
+ "integrity": "sha512-fGbxJPKpl2DIKNJGhbk4mYPcM+qE2gl91r6xPoiol/mN88F5Ym6UeRdMVZah+pijh9WxM55alTYwXuW40r1Y2Q==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/installations": "0.6.7",
+ "@firebase/component": "0.6.8",
+ "@firebase/installations": "0.6.8",
"@firebase/messaging-interop-types": "0.2.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"idb": "7.1.1",
"tslib": "^2.1.0"
},
@@ -1098,13 +1098,13 @@
}
},
"node_modules/@firebase/messaging-compat": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.9.tgz",
- "integrity": "sha512-5jN6wyhwPgBH02zOtmmoOeyfsmoD7ty48D1m0vVPsFg55RqN2Z3Q9gkZ5GmPklFPjTPLcxB1ObcHOZvThTkm7g==",
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.10.tgz",
+ "integrity": "sha512-FXQm7rcowkDm8kFLduHV35IRYCRo+Ng0PIp/t1+EBuEbyplaKkGjZ932pE+owf/XR+G/60ku2QRBptRGLXZydg==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/messaging": "0.12.9",
- "@firebase/util": "1.9.6",
+ "@firebase/component": "0.6.8",
+ "@firebase/messaging": "0.12.10",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1117,14 +1117,14 @@
"integrity": "sha512-l68HXbuD2PPzDUOFb3aG+nZj5KA3INcPwlocwLZOzPp9rFM9yeuI9YLl6DQfguTX5eAGxO0doTR+rDLDvQb5tA=="
},
"node_modules/@firebase/performance": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.7.tgz",
- "integrity": "sha512-d+Q4ltjdJZqjzcdms5i0UC9KLYX7vKGcygZ+7zHA/Xk+bAbMD2CPU0nWTnlNFWifZWIcXZ/2mAMvaGMW3lypUA==",
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.8.tgz",
+ "integrity": "sha512-F+alziiIZ6Yn8FG47mxwljq+4XkgkT2uJIFRlkyViUQRLzrogaUJW6u/+6ZrePXnouKlKIwzqos3PVJraPEcCA==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/installations": "0.6.7",
+ "@firebase/component": "0.6.8",
+ "@firebase/installations": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1132,15 +1132,15 @@
}
},
"node_modules/@firebase/performance-compat": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.7.tgz",
- "integrity": "sha512-cb8ge/5iTstxfIGW+iiY+7l3FtN8gobNh9JSQNZgLC9xmcfBYWEs8IeEWMI6S8T+At0oHc3lv+b2kpRMUWr8zQ==",
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.8.tgz",
+ "integrity": "sha512-o7TFClRVJd3VIBoY7KZQqtCeW0PC6v9uBzM6Lfw3Nc9D7hM6OonqecYvh7NwJ6R14k+xM27frLS4BcCvFHKw2A==",
"dependencies": {
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/performance": "0.6.7",
+ "@firebase/performance": "0.6.8",
"@firebase/performance-types": "0.2.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1153,14 +1153,14 @@
"integrity": "sha512-gVq0/lAClVH5STrIdKnHnCo2UcPLjJlDUoEB/tB4KM+hAeHUxWKnpT0nemUPvxZ5nbdY/pybeyMe8Cs29gEcHA=="
},
"node_modules/@firebase/remote-config": {
- "version": "0.4.7",
- "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.7.tgz",
- "integrity": "sha512-5oPNrPFLsbsjpq0lUEIXoDF2eJK7vAbyXe/DEuZQxnwJlfR7aQbtUlEkRgQWcicXpyDmAmDLo7q7lDbCYa6CpA==",
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.8.tgz",
+ "integrity": "sha512-AMLqe6wfIRnjc6FkCWOSUjhc1fSTEf8o+cv1NolFvbiJ/tU+TqN4pI7pT+MIKQzNiq5fxLehkOx+xtAQBxPJKQ==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/installations": "0.6.7",
+ "@firebase/component": "0.6.8",
+ "@firebase/installations": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1168,15 +1168,15 @@
}
},
"node_modules/@firebase/remote-config-compat": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.7.tgz",
- "integrity": "sha512-Fq0oneQ4SluLnfr5/HfzRS1TZf1ANj1rWbCCW3+oC98An3nE+sCdp+FSuHsEVNwgMg4Tkwx9Oom2lkKeU+Vn+w==",
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.8.tgz",
+ "integrity": "sha512-UxSFOp6dzFj2AHB8Bq/BYtbq5iFyizKx4Rd6WxAdaKYM8cnPMeK+l2v+Oogtjae+AeyHRI+MfL2acsfVe5cd2A==",
"dependencies": {
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/remote-config": "0.4.7",
+ "@firebase/remote-config": "0.4.8",
"@firebase/remote-config-types": "0.3.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1189,12 +1189,12 @@
"integrity": "sha512-0BC4+Ud7y2aPTyhXJTMTFfrGGLqdYXrUB9sJVAB8NiqJswDTc4/2qrE/yfUbnQJhbSi6ZaTTBKyG3n1nplssaA=="
},
"node_modules/@firebase/storage": {
- "version": "0.12.5",
- "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.12.5.tgz",
- "integrity": "sha512-nGWBOGFNr10j0LA4NJ3/Yh3us/lb0Q1xSIKZ38N6FcS+vY54nqJ7k3zE3PENregHC8+8txRow++A568G3v8hOA==",
+ "version": "0.12.6",
+ "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.12.6.tgz",
+ "integrity": "sha512-Zgb9WuehJxzhj7pGXUvkAEaH+3HvLjD9xSZ9nepuXf5f8378xME7oGJtREr/RnepdDA5YW0XIxe0QQBNHpe1nw==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/util": "1.9.6",
+ "@firebase/component": "0.6.8",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0",
"undici": "5.28.4"
},
@@ -1203,14 +1203,14 @@
}
},
"node_modules/@firebase/storage-compat": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.8.tgz",
- "integrity": "sha512-qDfY9kMb6Ch2hZb40sBjDQ8YPxbjGOxuT+gU1Z0iIVSSpSX0f4YpGJCypUXiA0T11n6InCXB+T/Dknh2yxVTkg==",
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.9.tgz",
+ "integrity": "sha512-WWgAp5bTW961oIsCc9+98m4MIVKpEqztAlIngfHfwO/x3DYoBPRl/awMRG3CAXyVxG+7B7oHC5IsnqM+vTwx2A==",
"dependencies": {
- "@firebase/component": "0.6.7",
- "@firebase/storage": "0.12.5",
+ "@firebase/component": "0.6.8",
+ "@firebase/storage": "0.12.6",
"@firebase/storage-types": "0.8.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1227,22 +1227,22 @@
}
},
"node_modules/@firebase/util": {
- "version": "1.9.6",
- "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.6.tgz",
- "integrity": "sha512-IBr1MZbp4d5MjBCXL3TW1dK/PDXX4yOGbiwRNh1oAbE/+ci5Uuvy9KIrsFYY80as1I0iOaD5oOMA9Q8j4TJWcw==",
+ "version": "1.9.7",
+ "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.7.tgz",
+ "integrity": "sha512-fBVNH/8bRbYjqlbIhZ+lBtdAAS4WqZumx03K06/u7fJSpz1TGjEMm1ImvKD47w+xaFKIP2ori6z8BrbakRfjJA==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@firebase/vertexai-preview": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@firebase/vertexai-preview/-/vertexai-preview-0.0.2.tgz",
- "integrity": "sha512-NOOL63kFQRq45ioi5P+hlqj/4LNmvn1URhGjQdvyV54c1Irvoq26aW861PRRLjrSMIeNeiLtCLD5pe+ediepAg==",
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@firebase/vertexai-preview/-/vertexai-preview-0.0.3.tgz",
+ "integrity": "sha512-KVtUWLp+ScgiwkDKAvNkVucAyhLVQp6C6lhnVEuIg4mWhWcS3oerjAeVhZT4uNofKwWxRsOaB2Yec7DMTXlQPQ==",
"dependencies": {
"@firebase/app-check-interop-types": "0.3.2",
- "@firebase/component": "0.6.7",
+ "@firebase/component": "0.6.8",
"@firebase/logger": "0.4.2",
- "@firebase/util": "1.9.6",
+ "@firebase/util": "1.9.7",
"tslib": "^2.1.0"
},
"engines": {
@@ -1254,9 +1254,9 @@
}
},
"node_modules/@firebase/webchannel-wrapper": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.0.tgz",
- "integrity": "sha512-zuWxyfXNbsKbm96HhXzainONPFqRcoZblQ++e9cAIGUuHfl2cFSBzW01jtesqWG/lqaUyX3H8O1y9oWboGNQBA=="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.1.tgz",
+ "integrity": "sha512-jmEnr/pk0yVkA7mIlHNnxCi+wWzOFUg0WyIotgkKAb2u1J7fAeDBcVNSTjTihbAYNusCLQdW5s9IJ5qwnEufcQ=="
},
"node_modules/@floating-ui/core": {
"version": "1.6.0",
@@ -3469,37 +3469,37 @@
}
},
"node_modules/firebase": {
- "version": "10.12.2",
- "resolved": "https://registry.npmjs.org/firebase/-/firebase-10.12.2.tgz",
- "integrity": "sha512-ZxEdtSvP1I9su1yf32D8TIdgxtPgxwr6z3jYAR1TXS/t+fVfpoPc/N1/N2bxOco9mNjUoc+od34v5Fn4GeKs6Q==",
- "dependencies": {
- "@firebase/analytics": "0.10.4",
- "@firebase/analytics-compat": "0.2.10",
- "@firebase/app": "0.10.5",
- "@firebase/app-check": "0.8.4",
- "@firebase/app-check-compat": "0.3.11",
- "@firebase/app-compat": "0.2.35",
+ "version": "10.12.3",
+ "resolved": "https://registry.npmjs.org/firebase/-/firebase-10.12.3.tgz",
+ "integrity": "sha512-dO2cQ8eP6RnM2wcGzbxnoljjjMBf1suUrHYFftjSpbPn/8bEx959cwTRDHqBx3MwSzNsg6zZV/wiWydJPhUKgw==",
+ "dependencies": {
+ "@firebase/analytics": "0.10.5",
+ "@firebase/analytics-compat": "0.2.11",
+ "@firebase/app": "0.10.6",
+ "@firebase/app-check": "0.8.5",
+ "@firebase/app-check-compat": "0.3.12",
+ "@firebase/app-compat": "0.2.36",
"@firebase/app-types": "0.9.2",
- "@firebase/auth": "1.7.4",
- "@firebase/auth-compat": "0.5.9",
- "@firebase/database": "1.0.5",
- "@firebase/database-compat": "1.0.5",
- "@firebase/firestore": "4.6.3",
- "@firebase/firestore-compat": "0.3.32",
- "@firebase/functions": "0.11.5",
- "@firebase/functions-compat": "0.3.11",
- "@firebase/installations": "0.6.7",
- "@firebase/installations-compat": "0.2.7",
- "@firebase/messaging": "0.12.9",
- "@firebase/messaging-compat": "0.2.9",
- "@firebase/performance": "0.6.7",
- "@firebase/performance-compat": "0.2.7",
- "@firebase/remote-config": "0.4.7",
- "@firebase/remote-config-compat": "0.2.7",
- "@firebase/storage": "0.12.5",
- "@firebase/storage-compat": "0.3.8",
- "@firebase/util": "1.9.6",
- "@firebase/vertexai-preview": "0.0.2"
+ "@firebase/auth": "1.7.5",
+ "@firebase/auth-compat": "0.5.10",
+ "@firebase/database": "1.0.6",
+ "@firebase/database-compat": "1.0.6",
+ "@firebase/firestore": "4.6.4",
+ "@firebase/firestore-compat": "0.3.33",
+ "@firebase/functions": "0.11.6",
+ "@firebase/functions-compat": "0.3.12",
+ "@firebase/installations": "0.6.8",
+ "@firebase/installations-compat": "0.2.8",
+ "@firebase/messaging": "0.12.10",
+ "@firebase/messaging-compat": "0.2.10",
+ "@firebase/performance": "0.6.8",
+ "@firebase/performance-compat": "0.2.8",
+ "@firebase/remote-config": "0.4.8",
+ "@firebase/remote-config-compat": "0.2.8",
+ "@firebase/storage": "0.12.6",
+ "@firebase/storage-compat": "0.3.9",
+ "@firebase/util": "1.9.7",
+ "@firebase/vertexai-preview": "0.0.3"
}
},
"node_modules/flat-cache": {
@@ -5159,9 +5159,9 @@
}
},
"node_modules/protobufjs": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.0.tgz",
- "integrity": "sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==",
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz",
+ "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==",
"hasInstallScript": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
diff --git a/Client/package.json b/Client/package.json
index 52430d7..3aa9cd5 100644
--- a/Client/package.json
+++ b/Client/package.json
@@ -23,7 +23,7 @@
"cookie-parser": "^1.4.6",
"dateformat": "^5.0.3",
"dompurify": "^3.0.5",
- "firebase": "^10.12.2",
+ "firebase": "^10.12.3",
"hamburger-react": "^2.5.0",
"html-react-parser": "^4.2.1",
"html-to-text": "^9.0.5",
diff --git a/Client/src/App.jsx b/Client/src/App.jsx
index f2faddf..afda192 100644
--- a/Client/src/App.jsx
+++ b/Client/src/App.jsx
@@ -12,6 +12,7 @@ import BlogSpecificPage from './pages/BlogSpecificPage'
import ProtectedRoutesComponent from './components/ProtectedRoutesComponent'
import SpeedDialComponent from './components/SpeedDialComponente'
import CreatePostPage from './pages/CreatePostPage'
+import ContactUsPage from './pages/ContactUs'
import { useState } from 'react'
import NotFoundPage from './pages/404Page'
import Profile from './pages/Profile'
@@ -42,6 +43,7 @@ function App() {