Transform your data into stunning visual insights with our modern, responsive dashboard featuring glassmorphism design, dark mode, and advanced 3D visualizations.
| π¨ Glassmorphism UI Modern frosted glass effects |
π Dark/Light Mode System-aware theming |
π± Fully Responsive Mobile-first design |
β‘ High Performance Optimized rendering |
| π Advanced Filtering Multi-criteria search |
π 3D Visualizations Interactive charts |
βΏ Accessible WCAG 2.1 AA compliant |
π Modern Stack React 18 Node.js |
π Prerequisites
Make sure you have the following installed:
- Node.js (v14.0.0 or higher)
- npm (v6.0.0 or higher) or yarn
- MongoDB (v4.0.0 or higher)
- Git
# 1οΈβ£ Clone the repository
git clone https://github.com/Unseencoderz/DataVisualization-server.git
cd DataVisualization-server
# 2οΈβ£ Install server dependencies
cd server
npm install
# 3οΈβ£ Install client dependencies
cd ../client
npm install
# 4οΈβ£ Set up environment variables
cd ../server
cp .env.example .env
# Edit .env with your configuration
# 5οΈβ£ Start the development servers
# Terminal 1 - Backend
cd server
npm run dev
# Terminal 2 - Frontend
cd client
npm startCreate a .env file in the server directory:
# Server Configuration
PORT=5000
NODE_ENV=development
# Database
MONGODB_URI=mongodb://localhost:27017/dataviz
DB_NAME=dataviz_pro
# Security
JWT_SECRET=your_super_secret_jwt_key
CORS_ORIGIN=http://localhost:3000
# API Configuration
API_VERSION=v1
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100π¨ UI/UX Enhancements
- β Glassmorphism Effects - Frosted glass aesthetics with backdrop-filter blur
- β Dark/Light Mode - System-aware theme switching with smooth transitions
- β Animated Backgrounds - Dynamic gradient backgrounds with floating particles
- β Modern Typography - Inter font family with improved readability
- β Responsive Design - Mobile-first approach with fluid breakpoints
- β Statistics Cards - Real-time metrics with glassmorphism effects
- β Advanced Filtering - Multi-criteria search with visual feedback
- β Data Table - Sortable, searchable table with pagination
- β Loading States - Skeleton screens and smooth transitions
- β Error Handling - Graceful error states with retry options
π Advanced Visualizations
- π 3D Scatter Plots - Interactive intensity/likelihood/relevance correlation
- π₯ Heatmaps - Sector vs Region intensity mapping
- π© Enhanced Donut Charts - Sector distribution with center annotations
- π Bar Charts - Responsive intensity visualization by year
- π Line Charts - Trend analysis with smooth curves
- β Interactive Tooltips - Rich hover information with formatting
- β Zoom & Pan - Navigate through large datasets
- β Export Options - Download charts as PNG/SVG/PDF
- β Real-time Updates - Live data synchronization
- β Theme Integration - Charts adapt to dark/light mode
β‘ Performance Optimizations
- β‘ Component Memoization - Optimized re-renders with React.memo
- β‘ Lazy Loading - Code splitting for faster initial load
- β‘ Efficient State Management - Consolidated filter state
- β‘ Debounced Search - Optimized search performance
- β‘ Virtual Scrolling - Handle large datasets efficiently
- β‘ Database Indexing - Optimized MongoDB queries
- β‘ Response Caching - Redis integration for faster responses
- β‘ API Rate Limiting - Prevent abuse and ensure stability
- β‘ Compression - Gzip compression for smaller payloads
- β‘ Error Logging - Comprehensive error tracking
βΏ Accessibility Features
- β Keyboard Navigation - Full keyboard accessibility
- β Screen Reader Support - Semantic HTML and ARIA labels
- β Color Contrast - High contrast ratios for readability
- β Focus Management - Visible focus indicators
- β Reduced Motion - Respects user motion preferences
π‘ API Endpoints
https://your-api-domain.com/api/v1
Retrieve all data entries with optional filtering.
// Request
GET /api/v1/data?sector=Energy®ion=Asia&limit=100&page=1
// Response
{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"title": "Energy Market Analysis",
"sector": "Energy",
"region": "Asia",
"country": "India",
"intensity": 4,
"likelihood": 3,
"relevance": 5,
"published": "2024-01-15T10:30:00Z",
"source": "Reuters",
"url": "https://example.com/article"
}
],
"pagination": {
"currentPage": 1,
"totalPages": 10,
"totalItems": 1000,
"hasNext": true,
"hasPrev": false
}
}Get aggregated statistics for dashboard metrics.
// Response
{
"success": true,
"stats": {
"totalRecords": 1000,
"avgIntensity": 3.2,
"avgLikelihood": 2.8,
"avgRelevance": 3.5,
"sectorDistribution": {
"Energy": 250,
"Technology": 200,
"Healthcare": 150
}
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid sector parameter",
"details": {
"field": "sector",
"value": "invalid_sector",
"allowedValues": ["Energy", "Technology", "Healthcare"]
}
}
}π Authentication
Include your API key in the request headers:
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}- Limit: 100 requests per 15 minutes per IP
- Headers: Rate limit info included in response headers
ποΈ Folder Organization
π¦ /DataVisualization-server
βββ π client/ # Frontend React Application
β βββ π public/
β β βββ π index.html
β β βββ π manifest.json
β β βββ π icons/
β βββ π src/
β β βββ π components/ # Reusable UI Components
β β β βββ π Dashboard.js # Main dashboard component
β β β βββ π StatsCard.js # Statistics display cards
β β β βββ π LoadingSpinner.js # Loading states
β β β βββ π FilterPanel.js # Advanced filtering
β β β βββ π ChartContainer.js # Chart wrapper
β β β βββ π DataTable.js # Data table with features
β β β βββ π AdvancedCharts.js # 3D visualizations
β β βββ π styles/ # CSS Stylesheets
β β β βββ π Dashboard.css # Main dashboard styles
β β β βββ π globals.css # Global styles
β β β βββ π themes.css # Theme configurations
β β βββ π utils/ # Utility functions
β β β βββ π api.js # API client
β β β βββ π helpers.js # Helper functions
β β β βββ π constants.js # App constants
β β βββ π hooks/ # Custom React hooks
β β β βββ π useTheme.js # Theme management
β β β βββ π useApi.js # API calls
β β β βββ π useLocalStorage.js # Local storage
β β βββ π App.js # Main App component
β β βββ π App.css # App styles
β β βββ π index.js # Entry point
β βββ π package.json # Dependencies & scripts
β βββ π .env.example # Environment variables template
βββ π server/ # Backend Node.js Application
β βββ π controllers/ # Route controllers
β β βββ π dataController.js # Data operations
β β βββ π statsController.js # Statistics operations
β β βββ π authController.js # Authentication
β βββ π models/ # Database models
β β βββ π Data.js # Data model schema
β β βββ π User.js # User model schema
β βββ π routes/ # API routes
β β βββ π dataRoutes.js # Data endpoints
β β βββ π statsRoutes.js # Statistics endpoints
β β βββ π authRoutes.js # Auth endpoints
β βββ π middleware/ # Custom middleware
β β βββ π auth.js # Authentication middleware
β β βββ π errorHandler.js # Error handling
β β βββ π logger.js # Request logging
β β βββ π rateLimiter.js # Rate limiting
β βββ π config/ # Configuration files
β β βββ π database.js # Database connection
β β βββ π cors.js # CORS configuration
β β βββ π environment.js # Environment setup
β βββ π utils/ # Utility functions
β β βββ π validation.js # Input validation
β β βββ π helpers.js # Helper functions
β β βββ π constants.js # Server constants
β βββ π app.js # Express app setup
β βββ π server.js # Server entry point
β βββ π package.json # Dependencies & scripts
β βββ π .env.example # Environment variables template
βββ π docs/ # Documentation
β βββ π API.md # API documentation
β βββ π DEPLOYMENT.md # Deployment guide
β βββ π CONTRIBUTING.md # Contribution guidelines
βββ π README.md # This file
βββ π FRONTEND_IMPROVEMENTS.md # Frontend enhancement docs
βββ π LICENSE # MIT License
βββ π .gitignore # Git ignore rules
βββ π docker-compose.yml # Docker configuration
π Getting Started
After starting the application, you'll see the main dashboard with:
- Statistics Cards: Key metrics at the top
- Filter Panel: Left sidebar for data filtering
- Charts Section: Various visualizations
- Data Table: Detailed data view at the bottom
- Open Filter Panel: Click on any filter dropdown
- Select Criteria: Choose from available options
- Apply Filters: Data updates automatically
- Clear Filters: Use the clear button to reset
- Hover: View detailed tooltips
- Zoom: Use mouse wheel on 3D charts
- Pan: Click and drag to navigate
- Toggle: Click legend items to show/hide data
- Auto Mode: Follows system preference
- Manual Toggle: Use the theme switch in the navbar
- Persistence: Theme preference is saved locally
π Chart Types Guide
Shows intensity values grouped by publication year.
- Use Case: Trend analysis over time
- Interactions: Hover for exact values
- Filtering: Responsive to all filters
Displays intensity, likelihood, and relevance correlation.
- Use Case: Complex relationship analysis
- Interactions: Rotate, zoom, and hover
- Color Coding: By relevance values
Shows intensity distribution across sectors and regions.
- Use Case: Geographic and sector analysis
- Color Scale: Darker = higher intensity
- Interactions: Hover for exact values
Displays the proportion of records by sector.
- Use Case: Distribution analysis
- Center Annotation: Total record count
- Interactions: Click to filter by sector
π οΈ Development Setup
- Node.js (v14)
- MongoDB (v4)
- Git
- Code editor (VS Code recommended)
# 1. Fork the repository
# 2. Clone your fork
git clone https://github.com/Unseencoderz/DataVisualization-server.git
# 3. Create a feature branch
git checkout -b feature/amazing-feature
# 4. Install dependencies
npm run install:all
# 5. Start development servers
npm run dev
# 6. Make your changes
# 7. Run tests
npm run test
# 8. Commit your changes
git commit -m "Add amazing feature"
# 9. Push to your fork
git push origin feature/amazing-feature
# 10. Create a Pull Requestπ Contribution Guidelines
- β Follow ESLint configuration
- β Use Prettier for formatting
- β Write meaningful commit messages
- β Add JSDoc comments for functions
- β Include unit tests for new features
- Update Documentation: Include relevant docs updates
- Add Tests: Ensure new features have test coverage
- Check Performance: No significant performance regression
- Update Changelog: Add entry for your changes
- Request Review: Tag maintainers for review
When reporting issues, please include:
- Environment: OS, Node.js version, browser
- Steps to Reproduce: Detailed reproduction steps
- Expected Behavior: What should happen
- Actual Behavior: What actually happens
- Screenshots: If applicable
π Contributors
This project is proudly built and maintained solo with π»β€οΈ by @Unseencoderz.
Made with contrib.rocks β though itβs a solo act, every commit counts!
βοΈ MIT License
MIT License
Copyright (c) 2024 DataViz Pro Dashboard
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



