From e28f75a280067bf13c7f6207848cc3e4b3ffe9ed Mon Sep 17 00:00:00 2001 From: LaxmiB Date: Thu, 25 Dec 2025 17:53:02 +0530 Subject: [PATCH] Add frontend project files --- .gitignore | 26 + README.md | 70 + package-lock.json | 6 + package.json | 64 + public/favicon.ico | Bin 0 -> 47076 bytes public/gallery/cert1.jpg | 3 + public/gallery/cert2.jpg | 3 + public/gallery/cert3.jpg | 3 + public/gallery/cert4.jpg | 3 + public/gallery/cert5.jpg | 3 + public/gallery/cert6.jpg | 3 + public/gallery/cert7.jpg | 3 + public/gallery/cert8.jpg | 3 + public/index.html | 32 + public/logo192.png | 3 + public/logo512.png | 3 + public/manifest.json | 25 + public/robots.txt | 3 + src/App.css | 38 + src/App.js | 171 + src/App.test.js | 8 + src/assets/IMG20251219151600.jpg | 3 + src/assets/IMG20251219151603.jpg | 3 + src/assets/IMG20251219151739.jpg | 3 + src/assets/abc.png | 3 + src/assets/about-hero.jpg | 3 + src/assets/awards-hero.jpg | 3 + src/assets/background-vision.jpg | 3 + .../banner-sustainable-energy-1150x650(1).jpg | 3 + .../banner-sustainable-energy-1150x650.png | 3 + ...anner-sustainable-energy-1150x6501 (2).png | 3 + .../banner-sustainable-energy-1150x6501.png | 3 + src/assets/building.png | 3 + src/assets/career.jpg | 3 + src/assets/careers-banner.jpg | 3 + src/assets/careers-banner1 (2).jpg | 3 + src/assets/careers-banner1.jpg | 3 + src/assets/civil-bg.jpg | 3 + src/assets/civil-bg1.jpg | 3 + src/assets/clientLogos/bwssb.png | 3 + src/assets/clientLogos/cidco.png | 3 + src/assets/clientLogos/cr.png | 3 + src/assets/clientLogos/gail.png | 3 + src/assets/clientLogos/gtdcl.png | 3 + src/assets/clientLogos/gwil.png | 3 + src/assets/clientLogos/hal.png | 3 + src/assets/clientLogos/judaico.png | 3 + src/assets/clientLogos/kbjnl.png | 3 + src/assets/clientLogos/kuidfc.png | 3 + src/assets/clientLogos/kuwsdb.png | 3 + src/assets/clientLogos/kwa.png | 3 + src/assets/clientLogos/midc.png | 3 + src/assets/clientLogos/mjp.png | 3 + src/assets/clientLogos/mpjnm.png | 3 + src/assets/clientLogos/municipal-council.png | 3 + src/assets/clientLogos/municipal.png | 3 + src/assets/clientLogos/nvda.png | 3 + src/assets/clientLogos/phed.png | 3 + src/assets/clientLogos/pwd.png | 3 + src/assets/clientLogos/rwss.png | 3 + src/assets/clientLogos/solapur.png | 3 + src/assets/clientLogos/vadodara.png | 3 + src/assets/clientLogos/wrd.png | 3 + src/assets/contact-center.jpeg | Bin 0 -> 89390 bytes src/assets/contact-center.jpg | 3 + src/assets/contact-center1 (2).jpg | 3 + src/assets/contact-center1.jpg | 3 + src/assets/contact-hero.jpg | 3 + src/assets/contact-hero1.jpg | 3 + src/assets/contact-heroq.jpg | 3 + src/assets/electrical-bg.jpg | 3 + src/assets/electrical-bg1 (2).jpg | 3 + src/assets/electrical-bg1.jpg | 3 + src/assets/electro.png | 3 + src/assets/electromechanical-bg.jpg | 3 + src/assets/electromechanical-bg1.jpg | 3 + src/assets/electromechanical-bg2.jpg | 3 + src/assets/images - Copy.jpg | 3 + src/assets/india.topo.json | 25250 ++++++++++++++++ src/assets/industry.png | 3 + src/assets/infrastructure.png | 3 + src/assets/irrigation.png | 3 + src/assets/it-bg.jpg | 3 + src/assets/it-bg1.jpg | 3 + src/assets/it-bg2.jpg | 3 + src/assets/lcepl_logo.png | 3 + src/assets/mechanical-bg.jpg | 3 + src/assets/mechanical-bg2.jpg | 3 + src/assets/pic1.jpg | 3 + src/assets/pic2.jpg | 3 + src/assets/projects-hero.jpg | 3 + src/assets/projects-hero1.jpg | 3 + src/assets/projects.jpg | 3 + src/assets/real-estate.png | 3 + src/assets/renewable.png | 3 + src/assets/roads.png | 3 + src/assets/storm.png | 3 + src/assets/tunnel.png | 3 + src/assets/wastewater.png | 3 + src/assets/water.png | 3 + src/components/AdminLayout.jsx | 97 + src/components/AwardsCard.jsx | 23 + src/components/ClientLogo.jsx | 13 + src/components/ClientsSection.jsx | 214 + src/components/CounterCard.jsx | 25 + src/components/DirectorCard.jsx | 13 + src/components/Footer.jsx | 13 + src/components/Header.jsx | 84 + src/components/IndiaMap.jsx | 160 + src/components/Navbar.jsx | 0 src/components/PasswordPopup.jsx | 65 + src/components/ProtectedRoute.jsx | 14 + src/components/SectorsSlider.jsx | 137 + src/components/TeamCard.jsx | 14 + src/components/VisionCard.jsx | 13 + src/context/ApplicationContext.js | 23 + src/context/ProjectContext.js | 39 + src/data/blogs.js | 28 + src/index.css | 6 + src/index.js | 20 + src/logo.svg | 1 + src/pages/AboutUs.jsx | 301 + src/pages/AddProjects.jsx | 200 + src/pages/AdminGallery.jsx | 25 + src/pages/AdminHR.jsx | 97 + src/pages/AdminLogin.jsx | 45 + src/pages/AdminPanel.jsx | 8 + src/pages/AdminProjects.jsx | 38 + src/pages/Apply.jsx | 553 + src/pages/BlogDetail.jsx | 24 + src/pages/BlogList.jsx | 0 src/pages/Careers.jsx | 694 + src/pages/ContactUs.jsx | 245 + src/pages/Gallery.jsx | 240 + src/pages/GalleryAdmin.jsx | 320 + src/pages/HRAdmin.jsx | 14 + src/pages/Home.jsx | 401 + src/pages/JobApplicationForm.jsx | 289 + src/pages/Office.jsx | 181 + src/pages/Projects.jsx | 200 + src/reportWebVitals.js | 13 + src/setupTests.js | 5 + src/styles/AboutUs.css | 453 + src/styles/AwardsCard.css | 66 + src/styles/ContactUs.css | 368 + src/styles/CounterCard.css | 133 + src/styles/Gallery.css | 301 + src/styles/Home.css | 25 + src/styles/IndiaMap.css | 30 + src/styles/SectorsSlider.css | 221 + src/styles/VisionCard.css | 29 + 151 files changed, 32475 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 public/gallery/cert1.jpg create mode 100644 public/gallery/cert2.jpg create mode 100644 public/gallery/cert3.jpg create mode 100644 public/gallery/cert4.jpg create mode 100644 public/gallery/cert5.jpg create mode 100644 public/gallery/cert6.jpg create mode 100644 public/gallery/cert7.jpg create mode 100644 public/gallery/cert8.jpg create mode 100644 public/index.html create mode 100644 public/logo192.png create mode 100644 public/logo512.png create mode 100644 public/manifest.json create mode 100644 public/robots.txt create mode 100644 src/App.css create mode 100644 src/App.js create mode 100644 src/App.test.js create mode 100644 src/assets/IMG20251219151600.jpg create mode 100644 src/assets/IMG20251219151603.jpg create mode 100644 src/assets/IMG20251219151739.jpg create mode 100644 src/assets/abc.png create mode 100644 src/assets/about-hero.jpg create mode 100644 src/assets/awards-hero.jpg create mode 100644 src/assets/background-vision.jpg create mode 100644 src/assets/banner-sustainable-energy-1150x650(1).jpg create mode 100644 src/assets/banner-sustainable-energy-1150x650.png create mode 100644 src/assets/banner-sustainable-energy-1150x6501 (2).png create mode 100644 src/assets/banner-sustainable-energy-1150x6501.png create mode 100644 src/assets/building.png create mode 100644 src/assets/career.jpg create mode 100644 src/assets/careers-banner.jpg create mode 100644 src/assets/careers-banner1 (2).jpg create mode 100644 src/assets/careers-banner1.jpg create mode 100644 src/assets/civil-bg.jpg create mode 100644 src/assets/civil-bg1.jpg create mode 100644 src/assets/clientLogos/bwssb.png create mode 100644 src/assets/clientLogos/cidco.png create mode 100644 src/assets/clientLogos/cr.png create mode 100644 src/assets/clientLogos/gail.png create mode 100644 src/assets/clientLogos/gtdcl.png create mode 100644 src/assets/clientLogos/gwil.png create mode 100644 src/assets/clientLogos/hal.png create mode 100644 src/assets/clientLogos/judaico.png create mode 100644 src/assets/clientLogos/kbjnl.png create mode 100644 src/assets/clientLogos/kuidfc.png create mode 100644 src/assets/clientLogos/kuwsdb.png create mode 100644 src/assets/clientLogos/kwa.png create mode 100644 src/assets/clientLogos/midc.png create mode 100644 src/assets/clientLogos/mjp.png create mode 100644 src/assets/clientLogos/mpjnm.png create mode 100644 src/assets/clientLogos/municipal-council.png create mode 100644 src/assets/clientLogos/municipal.png create mode 100644 src/assets/clientLogos/nvda.png create mode 100644 src/assets/clientLogos/phed.png create mode 100644 src/assets/clientLogos/pwd.png create mode 100644 src/assets/clientLogos/rwss.png create mode 100644 src/assets/clientLogos/solapur.png create mode 100644 src/assets/clientLogos/vadodara.png create mode 100644 src/assets/clientLogos/wrd.png create mode 100644 src/assets/contact-center.jpeg create mode 100644 src/assets/contact-center.jpg create mode 100644 src/assets/contact-center1 (2).jpg create mode 100644 src/assets/contact-center1.jpg create mode 100644 src/assets/contact-hero.jpg create mode 100644 src/assets/contact-hero1.jpg create mode 100644 src/assets/contact-heroq.jpg create mode 100644 src/assets/electrical-bg.jpg create mode 100644 src/assets/electrical-bg1 (2).jpg create mode 100644 src/assets/electrical-bg1.jpg create mode 100644 src/assets/electro.png create mode 100644 src/assets/electromechanical-bg.jpg create mode 100644 src/assets/electromechanical-bg1.jpg create mode 100644 src/assets/electromechanical-bg2.jpg create mode 100644 src/assets/images - Copy.jpg create mode 100644 src/assets/india.topo.json create mode 100644 src/assets/industry.png create mode 100644 src/assets/infrastructure.png create mode 100644 src/assets/irrigation.png create mode 100644 src/assets/it-bg.jpg create mode 100644 src/assets/it-bg1.jpg create mode 100644 src/assets/it-bg2.jpg create mode 100644 src/assets/lcepl_logo.png create mode 100644 src/assets/mechanical-bg.jpg create mode 100644 src/assets/mechanical-bg2.jpg create mode 100644 src/assets/pic1.jpg create mode 100644 src/assets/pic2.jpg create mode 100644 src/assets/projects-hero.jpg create mode 100644 src/assets/projects-hero1.jpg create mode 100644 src/assets/projects.jpg create mode 100644 src/assets/real-estate.png create mode 100644 src/assets/renewable.png create mode 100644 src/assets/roads.png create mode 100644 src/assets/storm.png create mode 100644 src/assets/tunnel.png create mode 100644 src/assets/wastewater.png create mode 100644 src/assets/water.png create mode 100644 src/components/AdminLayout.jsx create mode 100644 src/components/AwardsCard.jsx create mode 100644 src/components/ClientLogo.jsx create mode 100644 src/components/ClientsSection.jsx create mode 100644 src/components/CounterCard.jsx create mode 100644 src/components/DirectorCard.jsx create mode 100644 src/components/Footer.jsx create mode 100644 src/components/Header.jsx create mode 100644 src/components/IndiaMap.jsx create mode 100644 src/components/Navbar.jsx create mode 100644 src/components/PasswordPopup.jsx create mode 100644 src/components/ProtectedRoute.jsx create mode 100644 src/components/SectorsSlider.jsx create mode 100644 src/components/TeamCard.jsx create mode 100644 src/components/VisionCard.jsx create mode 100644 src/context/ApplicationContext.js create mode 100644 src/context/ProjectContext.js create mode 100644 src/data/blogs.js create mode 100644 src/index.css create mode 100644 src/index.js create mode 100644 src/logo.svg create mode 100644 src/pages/AboutUs.jsx create mode 100644 src/pages/AddProjects.jsx create mode 100644 src/pages/AdminGallery.jsx create mode 100644 src/pages/AdminHR.jsx create mode 100644 src/pages/AdminLogin.jsx create mode 100644 src/pages/AdminPanel.jsx create mode 100644 src/pages/AdminProjects.jsx create mode 100644 src/pages/Apply.jsx create mode 100644 src/pages/BlogDetail.jsx create mode 100644 src/pages/BlogList.jsx create mode 100644 src/pages/Careers.jsx create mode 100644 src/pages/ContactUs.jsx create mode 100644 src/pages/Gallery.jsx create mode 100644 src/pages/GalleryAdmin.jsx create mode 100644 src/pages/HRAdmin.jsx create mode 100644 src/pages/Home.jsx create mode 100644 src/pages/JobApplicationForm.jsx create mode 100644 src/pages/Office.jsx create mode 100644 src/pages/Projects.jsx create mode 100644 src/reportWebVitals.js create mode 100644 src/setupTests.js create mode 100644 src/styles/AboutUs.css create mode 100644 src/styles/AwardsCard.css create mode 100644 src/styles/ContactUs.css create mode 100644 src/styles/CounterCard.css create mode 100644 src/styles/Gallery.css create mode 100644 src/styles/Home.css create mode 100644 src/styles/IndiaMap.css create mode 100644 src/styles/SectorsSlider.css create mode 100644 src/styles/VisionCard.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5e195f0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Ignore large video +*.mp4 diff --git a/README.md b/README.md new file mode 100644 index 0000000..58beeac --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c0b712a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "lcepl-frontend", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..bb73d36 --- /dev/null +++ b/package.json @@ -0,0 +1,64 @@ +{ + "name": "lcepl-website", + "version": "0.1.0", + "private": true, + "proxy": "", + "dependencies": { + "@testing-library/dom": "^10.4.0", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^13.5.0", + "axios": "^1.11.0", + "cors": "^2.8.5", + "express": "^5.1.0", + "framer-motion": "^12.23.12", + "helmet": "^8.1.0", + "morgan": "^1.10.1", + "react": "^19.1.0", + "react-countup": "^6.5.3", + "react-dom": "^19.1.0", + "react-helmet": "^6.1.0", + "react-icons": "^5.5.0", + "react-router-dom": "^7.7.1", + "react-scripts": "^5.0.1", + "react-simple-maps": "^3.0.0", + "react-toastify": "^11.0.5", + "web-vitals": "^2.1.4", + "webpack-dev-server": "^5.2.2" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject", + "server": "node server.js", + "server:dev": "nodemon server.js", + "dev": "concurrently -k -n server,client -p \"[{name}]\" \"npm:server:dev\" \"npm:start\"" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.11", + "autoprefixer": "^10.4.21", + "concurrently": "*", + "nodemon": "*", + "postcss": "^8.5.6", + "tailwindcss": "^3.4.17" + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..edccba50e8ea66e71407e1ccb75510422b247758 GIT binary patch literal 47076 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
eKrpq_|8#fOU2S*K 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 i82bNzuhRcxgA@ + + + + + + + + + + + + + + + Laxmi Civil Engineering Services Pvt. Ltd. (LCEPL) + + + + + + + + + + Laxmi Civil Engineering Services Pvt. Ltd. (LCEPL) + + + +
+ + diff --git a/public/logo192.png b/public/logo192.png new file mode 100644 index 0000000..7a9acbe --- /dev/null +++ b/public/logo192.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3090d5d57128fe707c6021b851437e1f0a084f5f65e5b81528fe30305ae717d1 +size 38136 diff --git a/public/logo512.png b/public/logo512.png new file mode 100644 index 0000000..7a9acbe --- /dev/null +++ b/public/logo512.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3090d5d57128fe707c6021b851437e1f0a084f5f65e5b81528fe30305ae717d1 +size 38136 diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..e189fec --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "LCEPL", + "name": "Laxmi Civil Engineering Services Pvt. Ltd.", + "icons": [ + { + "src": "favicon_large.ico", + "sizes": "256x256 128x128 70x70 34x34 26x26 18x18", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..74b5e05 --- /dev/null +++ b/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/src/App.js b/src/App.js new file mode 100644 index 0000000..406ef56 --- /dev/null +++ b/src/App.js @@ -0,0 +1,171 @@ +// src/App.js +import React, { useEffect } from 'react'; +import './index.css'; +import { Routes, Route, useLocation } from 'react-router-dom'; +import Header from './components/Header'; +import Footer from './components/Footer'; + +import Home from './pages/Home'; +import AboutUs from './pages/AboutUs'; +import Careers from './pages/Careers'; +import Office from './pages/Office'; +import ContactUs from './pages/ContactUs'; +import Gallery from './pages/Gallery'; +import Projects from './pages/Projects'; +import AddProjects from './pages/AddProjects'; +import GalleryAdmin from './pages/GalleryAdmin'; +import BlogList from './pages/BlogList'; +import BlogDetail from './pages/BlogDetail'; + +// Admin +import ProtectedRoute from './components/ProtectedRoute'; +import AdminLogin from './pages/AdminLogin'; +import AdminLayout from './components/AdminLayout'; +import HRAdmin from './pages/HRAdmin'; + +import { ToastContainer } from 'react-toastify'; +import 'react-toastify/dist/ReactToastify.css'; + +// ScrollToTop component +const ScrollToTop = () => { + const { pathname } = useLocation(); + useEffect(() => { + window.scrollTo(0, 0); + }, [pathname]); + return null; +}; + +const App = () => { + return ( + <> + {/* ensures scroll starts at top on route change */} + + + {/* Admin Login */} + } /> + + {/* Protected Admin Routes with Layout */} + + + + } + > + } /> + } /> + } /> + + + {/* Public Routes */} + +
+ +