Free, fast, Drupal data visualization generator. Create beautiful charts and maps from JSON, CSV, or manual input with Chart.js, Highcharts, ECharts, and more. Generate ready-to-use code for Drupal modules, blocks, controllers, or standalone HTML files.
- Multiple Chart Libraries: Support for Chart.js, Highcharts, ECharts, D3.js, and more
- Flexible Data Input: Upload CSV files, paste JSON data, or use built-in sample datasets
- Visualization Types: Bar charts, line charts, pie charts, maps, radar charts, scatter plots, and more
- Multiple Output Formats:
- Raw JavaScript code
- Drupal block plugins
- Drupal controllers with routes
- Complete Drupal modules (ZIP download)
- Standalone HTML files
- Theme System: Pre-built themes including Drupal Night, Light themes, and custom styling options
- Responsive Design: Mobile-friendly interface with dark/light mode support
- Accessibility: WCAG 2.1 AA compliant interface
- Security: Built-in XSS protection and input sanitization
- Node.js (v18 or higher)
- npm or yarn
- Modern web browser (Chrome, Firefox, Safari, Edge)
-
Clone the repository
git clone https://github.com/MetaPhase-Consulting/DrupalDataDotDev.git cd DrupalDataDotDev -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open in browser Navigate to
http://localhost:5173(or the port shown in your terminal)
# Build the application
npm run build
# Preview the production build
npm run previewThe built files will be in the dist/ directory, ready for deployment to any static hosting service.
Select from various chart types including:
- Bar Charts: Vertical, horizontal, stacked, grouped
- Line Charts: Simple, multi-series, area charts
- Pie Charts: Standard pie, donut, semi-donut
- Maps: Choropleth, bubble maps, heat maps
- Statistical: Box plots, histograms, scatter plots
- Specialized: Radar charts, treemaps, sankey diagrams
Customize your visualization with:
- Chart subtypes and styling options
- Color schemes and themes
- Animation settings
- Responsive behavior
Choose the best charting library for your needs:
- Chart.js: Great for simple, responsive charts
- Highcharts: Feature-rich with excellent documentation
- ECharts: Powerful for complex visualizations
- D3.js: Maximum customization and flexibility
Multiple data input methods:
- CSV Upload: Drag and drop or select CSV files (max 10MB)
- JSON Input: Paste JSON data directly
- Sample Data: Use built-in datasets for testing
Download code in your preferred format:
- Raw JavaScript for custom implementations
- Drupal block plugins for easy integration
- Complete Drupal modules with routing
- Standalone HTML files for quick deployment
βββ public/ # Static assets
β βββ favicon.ico # Favicon and icons
β βββ manifest.json # PWA manifest
β βββ robots.txt # Search engine directives
βββ src/
β βββ components/ # React components
β β βββ generator/ # Generator-specific components
β β βββ Header.tsx # Site header
β β βββ Footer.tsx # Site footer
β βββ contexts/ # React contexts
β β βββ ThemeContext.tsx
β βββ data/ # Configuration and sample data
β β βββ chartStyles.json # Theme definitions
β β βββ chartTypes.json # Chart type configurations
β β βββ libraries.json # Supported libraries
β β βββ sampleData/ # Sample datasets
β β βββ visualizationTypes/ # Visualization configs
β βββ pages/ # Page components
β β βββ Home.tsx # Landing page
β β βββ Generator.tsx # Main generator interface
β β βββ About.tsx # About page
β βββ services/ # Business logic
β β βββ CodeGenerator.ts # Code generation logic
β β βββ DefaultConfig.ts # Default configurations
β βββ types/ # TypeScript type definitions
β βββ main.tsx # Application entry point
βββ package.json # Dependencies and scripts
βββ vite.config.ts # Vite configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
npm run dev- Start development server with hot reloadnpm run build- Build for productionnpm run preview- Preview production build locallynpm run lint- Run ESLint for code quality checks
- Create configuration file in
src/data/visualizationTypes/ - Add sample data in
src/data/sampleData/ - Update the visualization types index
- Implement code generation logic in
CodeGenerator.ts
- Add theme definition to
src/data/chartStyles.json - Include color palettes and styling options
- Update theme selector component
This project uses:
- ESLint for code linting
- TypeScript for type safety
- Prettier for code formatting (recommended)
- Accessibility testing with built-in WCAG compliance
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and linting (
npm run lint) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Security is important to us. Please review our Security Policy for information on reporting vulnerabilities.
Key security features:
- Input sanitization and XSS protection
- File upload validation and size limits
- CSP headers for additional protection
- Regular dependency updates
This project is licensed under the MIT License - see the LICENSE file for details.
- Chart.js - Simple yet flexible JavaScript charting
- Highcharts - Professional charting library
- ECharts - Powerful charting and visualization library
- React - User interface framework
- Tailwind CSS - Utility-first CSS framework
- Vite - Fast build tool and dev server
- Documentation: Check our Wiki for detailed guides
- Issues: Report bugs or request features via GitHub Issues
- Discussions: Join conversations in GitHub Discussions
Built with β€οΈ for the Drupal community
Website β’ Issues β’ Contributing β’ Changelog
