A modern React dashboard application built with Vite, featuring a responsive admin template with sidebar navigation, multiple pages, and custom React hooks for template functionality.
- Modern React Stack: Built with React 19 and Vite 7
- React Router: Client-side routing with React Router v7
- React Compiler: Enabled for optimized performance
- Responsive Design: Mobile-friendly sidebar and navigation
- Custom Hooks: Modular functionality using React hooks
- Font Awesome Integration: Complete icon library included
- Multiple Pages: Dashboard, stats, cards, icons, auth pages, and error pages
- Protected Routes: Route guards for authentication
- Node.js (v18 or higher recommended)
- npm or yarn package manager
- Clone the repository:
git clone <repository-url>
cd fusion-react-dashboard- Install dependencies:
npm installStart the development server with hot module replacement:
npm run devThe application will be available at http://localhost:5173
Create an optimized production build:
npm run buildPreview the production build locally:
npm run previewRun ESLint to check code quality:
npm run lintfusion-react-dashboard/
├── public/ # Static assets
│ ├── css/ # Template CSS files
│ ├── fonts/ # Font files (Karla, Roboto)
│ ├── images/ # Image assets
│ ├── js/ # Legacy template scripts
│ ├── lib/ # Third-party libraries
│ └── typicons-font/ # Typicons font
├── src/
│ ├── components/ # Reusable React components
│ ├── constants/ # Application constants
│ ├── hooks/ # Custom React hooks
│ ├── layout/ # Layout components (MainLayout, AuthLayout)
│ ├── pages/ # Page components
│ └── routes/ # Route configuration
├── eslint.config.js # ESLint configuration
├── vite.config.js # Vite configuration
└── package.json # Project dependencies
- Dashboard - Main dashboard view
- Stats Dashboard - Statistics and analytics
- Card Grid Showcase - Card components showcase
- Pricing Cards - Pricing page examples
- Font Awesome Icons - Icon library
- Typicons - Alternative icon set
- Login - Authentication page
- Register - User registration
- Error Pages - 400 and 500 error pages
The project includes custom React hooks that replace vanilla JavaScript functionality:
useTemplateSetup- Master hook that initializes all template featuresuseSidebarToggle- Sidebar minimize/maximize functionalityuseActiveNavigation- Active navigation highlightingusePerfectScrollbar- Scrollbar initializationuseCollapsibleMenu- Sidebar submenu managementuseFormInputHelper- Form input helpersuseHorizontalMenu- Mobile menu and header scrolluseHoverOpen- Hover-based dropdown behavioruseDropdown- Dropdown menu functionality
For detailed migration information, see TEMPLATE_MIGRATION.md
The application uses React Router v7 for client-side routing. Route configuration is located in src/routes/router.jsx.
Protected routes are implemented using the ProtectedRoute component to guard authenticated pages.
- Custom CSS in
public/css/ - Font Awesome icons via
@fortawesome/fontawesome-free - Typicons font for additional icons
- Perfect Scrollbar for custom scrollbars
This project has the React Compiler enabled for automatic optimizations. The compiler:
- Automatically memoizes components and values
- Reduces the need for manual
useMemoanduseCallback - May impact dev/build performance slightly
Learn more: React Compiler Documentation
The project uses ESLint with the following plugins:
@eslint/js- Core ESLint ruleseslint-plugin-react-hooks- React Hooks ruleseslint-plugin-react-refresh- React Refresh rules
react(^19.2.0) - React libraryreact-dom(^19.2.0) - React DOM rendererreact-router-dom(^7.10.1) - Routing library@fortawesome/fontawesome-free(^7.1.0) - Icon library
vite(^7.2.4) - Build tool and dev server@vitejs/plugin-react(^5.1.1) - React plugin for Vitebabel-plugin-react-compiler(^1.0.0) - React Compilereslint(^9.39.1) - Code linting
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is private and not licensed for public use.
For issues and questions, please create an issue in the repository.