start with vite Vite Documentation
1 npm create vite@latest (project_name) -- -- template react // Then a project auto generated
create different folders folder list at first
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Project/ ├── public ├── src/ │ ├── api │ ├── assets │ ├── components/ │ │ ├── logo │ │ ├── cards │ │ └── ScrollTop.jsx │ ├── layout │ ├── pages │ ├── routes │ ├── index.jsx │ └── index.css ├── .gitignore ├── eslint.config.js ├── index.html ├── package.json ├── package-lock.json └── README.md └── vite.config.js
set the config of vite 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 export default defineConfig plugins: [react()], define: { global: "window" , }, resolve: { // set the convenient path for URL alias : [ // url start with src locate to root/src { find: 'src' , replacement: path.resolve(__dirname, "src" ), }, // url start with components locate to src/components { find: 'components' , replacement: path.resolve(__dirname, "src/components" ), } ], }, server: { // set server object for default port and auto-start of website // this ensures that the browser opens upon server start open: true , // this sets a default port to 8888 port: 8888, }, });
change the link icon in public folder use the travel svg file from free resource website
create ScrollTop component for main App application 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import PropTypes from 'prop-types' ; import { useEffect } from 'react' ; // ==============================|| NAVIGATION - SCROLL TO TOP ||============================== // const ScrollTop = ({ children }) => { useEffect(() => { window.scrollTo({ top: 0 , left: 0 , behavior: 'smooth' }); }, []); return children || null; }; ScrollTop.propTypes = { children: PropTypes.node }; export default ScrollTop;
next step is to build route create index.jsx file under route folder
1 2 3 4 5 6 7 8 9 10 11 12 import { createBrowserRouter } from "react-router-dom" ; // project import import MainRoutes from "./MainRoutes" ; //local route import LoginRoutes from "./LoginRoutes" ; //local route // ==============================|| ROUTING RENDER ||============================== // const router = createBrowserRouter([MainRoutes, LoginRoutes], { basename : undefined, }); export default router;
use the routerProvider
1 2 3 4 import { RouterProvider } from "react-router-dom" ; <RouterProvider router={router} />
setup login page set loginRoute File
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 const LoginRoutes = [ { path: "/login" , element: <LoginPage />, }, { path: "/404" , element: <NotFound />, }, { path: "*" , element: <NotFound /> }, ]; // set main Route const MainRoutes = { path: "/" , element: <Layout />, children: [ { index: true , element: <a href="/dashboard" >Welcome to Home</a>, }, { path: "dashboard" , element: <Dashboard />, }, ], }; // layout import { Outlet } from "react-router-dom" ; <Outlet /> // nested router rendered here
install Tailwind CSS,Chart & React Chart setup the dashboard