diff --git a/backend/package-lock.json b/backend/package-lock.json
index bff6fa6c..f534fd08 100644
--- a/backend/package-lock.json
+++ b/backend/package-lock.json
@@ -15,6 +15,7 @@
"@mui/x-data-grid": "^7.25.0",
"@mui/x-date-pickers": "^7.25.0",
"@types/node": "^22.13.0",
+ "@types/nprogress": "^0.2.3",
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
"@types/validator": "^13.12.2",
@@ -29,6 +30,7 @@
"eslint-plugin-react-refresh": "^0.4.11",
"history": "^5.3.0",
"localized-strings": "^2.0.3",
+ "nprogress": "^0.2.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-router-dom": "^7.1.5",
@@ -2129,6 +2131,12 @@
"undici-types": "~6.20.0"
}
},
+ "node_modules/@types/nprogress": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.3.tgz",
+ "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==",
+ "license": "MIT"
+ },
"node_modules/@types/parse-json": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
@@ -6218,6 +6226,12 @@
"npm": ">=8.12.1"
}
},
+ "node_modules/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==",
+ "license": "MIT"
+ },
"node_modules/nth-check": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
diff --git a/backend/package.json b/backend/package.json
index b9d88989..4661a453 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -23,6 +23,7 @@
"@mui/x-data-grid": "^7.25.0",
"@mui/x-date-pickers": "^7.25.0",
"@types/node": "^22.13.0",
+ "@types/nprogress": "^0.2.3",
"@types/react": "^19.0.8",
"@types/react-dom": "^19.0.3",
"@types/validator": "^13.12.2",
@@ -37,6 +38,7 @@
"eslint-plugin-react-refresh": "^0.4.11",
"history": "^5.3.0",
"localized-strings": "^2.0.3",
+ "nprogress": "^0.2.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-router-dom": "^7.1.5",
diff --git a/backend/src/App.tsx b/backend/src/App.tsx
index d397b8ae..c6bd6dba 100644
--- a/backend/src/App.tsx
+++ b/backend/src/App.tsx
@@ -3,6 +3,7 @@ import { BrowserRouter, Route, Routes } from 'react-router-dom'
import { GlobalProvider } from '@/context/GlobalContext'
import { UserProvider } from '@/context/UserContext'
import ScrollToTop from '@/components/ScrollToTop'
+import NProgressIndicator from '@/components/NProgressIndicator'
const Header = lazy(() => import('@/components/Header'))
const SignIn = lazy(() => import('@/pages/SignIn'))
@@ -47,7 +48,7 @@ const App = () => (