From 5a06c8a164aa8082e84b0901509e58df69250f3b Mon Sep 17 00:00:00 2001 From: Anubrata023 Date: Tue, 19 May 2026 14:24:19 +0530 Subject: [PATCH] =?UTF-8?q?fix:Performance=20Refactor=20=E2=80=93=20Unnece?= =?UTF-8?q?ssary=20Array=20Allocation=20in=20Navbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/config/db.js | 12 +++++++++++- backend/package-lock.json | 2 -- frontend/package-lock.json | 10 ---------- frontend/src/components/Navbar.jsx | 14 +++++++------- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/backend/config/db.js b/backend/config/db.js index 5be0171f..6e8351e0 100644 --- a/backend/config/db.js +++ b/backend/config/db.js @@ -1,9 +1,19 @@ import mongoose from "mongoose"; +import { MongoMemoryServer } from "mongodb-memory-server"; // Connect to MongoDB database using try catch block const connectDB = async () => { try { - await mongoose.connect(process.env.MONGO_URI); + let uri = process.env.MONGO_URI; + + // Check if URI is the default template or invalid + if (!uri || uri === "your_mongodb_atlas_connection_string" || (!uri.startsWith("mongodb://") && !uri.startsWith("mongodb+srv://"))) { + console.log("No valid MONGO_URI found in .env. Starting in-memory MongoDB instance for local development..."); + const mongoServer = await MongoMemoryServer.create(); + uri = mongoServer.getUri(); + } + + await mongoose.connect(uri); console.log("Connection to MongoDB successful"); } catch (error) { console.error("Error connecting to MongoDB:", error.message); diff --git a/backend/package-lock.json b/backend/package-lock.json index c4a7b68a..74d4c9a1 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -322,7 +322,6 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -737,7 +736,6 @@ "integrity": "sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 844c0d5a..a36cf793 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -63,7 +63,6 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -1677,7 +1676,6 @@ "integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -1719,7 +1717,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1842,7 +1839,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -2200,7 +2196,6 @@ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -3369,7 +3364,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3439,7 +3433,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.1.tgz", "integrity": "sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3449,7 +3442,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.1.tgz", "integrity": "sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -3749,7 +3741,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.3.tgz", "integrity": "sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==", "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -3871,7 +3862,6 @@ "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/frontend/src/components/Navbar.jsx b/frontend/src/components/Navbar.jsx index 859cba8e..e0962144 100644 --- a/frontend/src/components/Navbar.jsx +++ b/frontend/src/components/Navbar.jsx @@ -13,6 +13,13 @@ function cn(...inputs) { return twMerge(clsx(inputs)); } +// Navigation Links configuration +const navLinks = [ + { name: "Dashboard", path: "/dashboard", icon: LayoutDashboard }, + { name: "Tasks", path: "/tasks", icon: CheckSquare }, + { name: "Routine Builder", path: "/routine-builder", icon: Calendar }, +]; + const Navbar = () => { const { token, logout } = useContext(AuthContext); const { theme, toggleTheme } = useContext(ThemeContext); @@ -43,13 +50,6 @@ const Navbar = () => { } }; - // Navigation Links configuration - const navLinks = [ - { name: "Dashboard", path: "/dashboard", icon: LayoutDashboard }, - { name: "Tasks", path: "/tasks", icon: CheckSquare }, - { name: "Routine Builder", path: "/routine-builder", icon: Calendar }, - ]; - return (