This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
npm start - Start development server with hot reload (available at http://localhost:4000)npm run dev - Start development server with webpack dashboardnpm run build - Build for production (optimized)npm run release:minified - Build production with minificationnpm run release:unminified - Build production without minificationnpm run preview - Preview production build locallynpm run lint - Run all linters (JavaScript + SCSS)npm run lint:js - Lint JavaScript files using ESLint 9.x flat confignpm run lint:scss - Lint SCSS files using Stylelintnpm run clean - Clean the dist directoryThe application follows a modular class-based architecture:
Main Application Class (src/assets/scripts/app.js):
AdminatorApp - Main application controller with component managementCore Components:
Sidebar (src/assets/scripts/components/Sidebar.js) - Navigation sidebar logicChartComponent (src/assets/scripts/components/Chart.js) - Chart rendering and theme integrationTheme (src/assets/scripts/utils/theme.js) - Theme management with localStorage persistenceUtility Modules:
DOM (src/assets/scripts/utils/dom.js) - DOM manipulation helpersDateUtils (src/assets/scripts/utils/date.js) - Date handling with Day.js integrationThe project features a comprehensive dark mode implementation:
Theme Toggle Integration:
Component Theme Awareness:
CSS Variables Architecture:
--c-bkg-body, --c-text-base)The application includes extensive mobile enhancements:
Responsive Features:
Mobile-Specific Behavior:
src/
├── assets/
│ ├── scripts/ # JavaScript modules
│ │ ├── components/ # Reusable UI components
│ │ ├── utils/ # Utility functions
│ │ ├── charts/ # Chart initialization modules
│ │ ├── fullcalendar/ # Calendar integration
│ │ └── app.js # Main application entry point
│ ├── styles/ # SCSS stylesheets
│ │ ├── spec/ # Custom component styles
│ │ └── vendor/ # Third-party plugin styles
│ └── static/ # Static assets (fonts, images)
├── *.html # HTML template pages
Webpack Setup:
Development Server:
src/assets/scripts/components/AdminatorApp.init() methodsrc/assets/styles/spec/components/src/assets/scripts/utils/theme.jssrc/assets/styles/utils/theme.cssChart.defaults configurationnpm run lint before committingnpm start for development servernpm run dev for enhanced debugging with webpack dashboardnpm run lint before commitsnpm run buildnpm run previewSuccessfully removed all jQuery dependencies (~600KB bundle reduction):
jquery (3.7.1) - Replaced with vanilla JS DOM manipulationjquery-sparkline (2.4.0) - Replaced with Chart.js mini chartsbootstrap-datepicker (1.10.0) - Replaced with HTML5 date inputs + vanilla JSdatatables (1.10.18) - Replaced with vanilla JS table componenteasy-pie-chart (2.1.7) - Replaced with vanilla JS SVG pie chartsjvectormap (2.0.4) - Replaced with jsvectormap 1.7.0 vanilla JS SVG world map