A modern, interactive media analytics dashboard built with React and Vite. This dashboard provides real-time analytics, interactive maps, and comprehensive data visualization for media performance tracking.
Live Demo: https://stupendous-hummingbird-19cb71.netlify.app/
- Interactive France Map: Geographic visualization with markers and heatmap overlay
- Real-time Analytics: Live viewer counts and engagement metrics
- Comprehensive Analytics Cards:
- Engagement metrics
- Content performance tracking
- Demographics breakdown
- Device distribution
- Revenue analytics
- Real-time viewer statistics
- Time Range Filtering: View data for different time periods (7d, 30d, 90d, 1y)
- Responsive Design: Fully responsive layout for all screen sizes
- Modern UI: Clean, professional interface with smooth animations
- React
^18.2.0- UI library for building interactive user interfaces - Vite
^5.0.0- Next-generation frontend build tool and dev server - JavaScript (ES6+) - Primary programming language
- JSX - React's syntax extension for JavaScript
- Chart.js
^4.4.0- Powerful charting library - react-chartjs-2
^5.2.0- React wrapper for Chart.js - chartjs-adapter-date-fns
^3.0.0- Date adapter for Chart.js - date-fns
^2.30.0- Modern JavaScript date utility library
- Leaflet
^1.9.4- Open-source JavaScript library for mobile-friendly interactive maps - react-leaflet
^4.2.1- React components for Leaflet maps
- CSS3 - Custom styling with modern CSS features
- Responsive Design - Mobile-first approach
- ESLint
^8.53.0- Code linting and quality assurance - @vitejs/plugin-react
^4.2.0- Vite plugin for React support - Terser
^5.44.1- JavaScript minification for production builds
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher recommended)
- npm (v7 or higher) or yarn
- Clone the repository:
git clone https://github.com/Sarvandani/Frontend_dashboard_media.git
cd Frontend_dashboard_media- Install dependencies:
npm installStart the development server:
npm run devThe application will be available at http://localhost:5173 (or the next available port).
Build the project for production:
npm run buildThe optimized production files will be in the dist directory.
Preview the production build locally:
npm run previewfrontend_dashboard_media/
├── public/ # Static assets
│ └── robots.txt
├── src/
│ ├── components/ # React components
│ │ ├── cards/ # Analytics card components
│ │ ├── AnalyticsGrid.jsx
│ │ ├── DashboardHeader.jsx
│ │ ├── FranceMapSection.jsx
│ │ ├── ErrorBoundary.jsx
│ │ └── LoadingSpinner.jsx
│ ├── data/ # Data files
│ │ └── franceData.js
│ ├── App.jsx # Main application component
│ ├── App.css # Application styles
│ ├── main.jsx # Application entry point
│ └── index.css # Global styles
├── styles.css # Additional global styles
├── index.html # HTML template
├── vite.config.js # Vite configuration
├── package.json # Project dependencies
└── README.md # This file
- DashboardHeader: Header with time range selector and refresh functionality
- FranceMapSection: Interactive map showing regional analytics
- AnalyticsGrid: Grid layout for analytics cards
- EngagementCard: Engagement metrics visualization
- ContentPerformanceCard: Content performance tracking
- DemographicsCard: Demographic breakdown charts
- DeviceCard: Device distribution analytics
- RevenueCard: Revenue metrics and trends
- RealtimeCard: Real-time viewer statistics
This project can be deployed to various static hosting services:
The project includes netlify.toml for easy Netlify deployment.
The project includes vercel.json for Vercel deployment configuration.
Any static hosting service that supports Node.js build processes can host this application. Simply:
- Build the project:
npm run build - Deploy the
distfolder contents
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
This project is private and proprietary.
SARVANDANI
This is a private project. Contributions are not currently accepted.
Built with ❤️ using React and Vite