Skip to content

dlimcode/analytics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PullmanMorrison Analytics Dashboard

Overview

The PullmanMorrison Analytics Dashboard is a comprehensive business intelligence tool designed for recruitment agencies. It provides real-time insights into recruiter productivity, revenue analytics, data quality metrics, and team performance through an intuitive and interactive interface.

Built with React and modern UI components, this dashboard offers a complete view of your recruitment operations with customizable filters, interactive charts, and detailed data tables to help make data-driven decisions.

Features

πŸ“Š Comprehensive Analytics

  • Overview Dashboard: Quick snapshot of all key performance indicators
  • Recruiter Productivity: Analyze individual recruiter performance metrics
  • Revenue Analytics: Track financial performance by client, industry, and team
  • Data Quality: Monitor database health and input tracking
  • Team Performance: Compare team metrics and identify top performers

πŸ” Advanced Filtering

  • Date Range Filtering: Filter data by predefined periods or custom date ranges
  • Entity Filtering: Filter by recruiters, clients, teams, and industries
  • Metric Selection: Choose which metrics to display in each dashboard
  • Filter Persistence: Filters are maintained when switching between tabs

πŸ“ˆ Interactive Visualizations

  • Multiple Chart Types: Bar charts, line charts, pie charts, and more
  • Real-Time Updates: Charts update dynamically based on selected filters
  • Responsive Design: Visualizations adapt to different screen sizes
  • Tooltips: Hover over chart elements to see detailed information

πŸ“‹ Data Tables

  • Sortable Columns: Click column headers to sort data
  • Pagination: Navigate through large data sets with ease
  • Export Functionality: Export data to CSV, Excel, or PDF formats
  • Empty State Handling: Clear messages when no data matches filters

Project Architecture

Component Structure

The dashboard follows a modular component-based architecture organized into logical categories:

Core Components

  • MainDashboard: The entry point component that orchestrates the entire dashboard.
  • Dashboard: A layout component that provides the overall structure.
  • Grid & GridItem: Flexible grid layout system for responsive dashboard design.
  • MetricCard: Displays key metrics with optional trends and charts.

Analytics Components

The dashboard is divided into 5 main analytical modules:

  1. OverviewPanel: Provides a high-level summary of all key metrics.
  2. RecruiterProductivity: Focuses on individual recruiter activities and performance.
  3. RevenueAnalytics: Tracks financial performance across clients and industries.
  4. DataInputTracking: Monitors data quality and input activities.
  5. TeamPerformance: Compares metrics across different teams.

Visualization Components

  • BarChartComponent: Renders bar charts for comparing categorical data.
  • LineChartComponent: Displays trends over time.
  • PieChartComponent: Shows data composition and proportions.
  • StackedBarChartComponent: Compares multiple categories within segments.
  • MultiLineChartComponent: Compares multiple trends over time.

Data Management

  • DataTable: Renders tabular data with sorting and pagination capabilities.
  • ExportButton: Provides functionality to export data in different formats.

Filtering System

The filtering system is composed of several interconnected components:

  • GlobalFilterButton: Entry point for filtering across the entire dashboard.
  • FilterModal: Modal dialog for selecting different filter criteria.
  • DateRangeSelector: Calendar-based date range selection.
  • EntitySelector: Multi-select component for filtering by entity types.
  • MetricsSelector: Allows selection of which metrics to display.
  • FilterBadges: Visual representation of active filters with removal capability.

Data Flow Architecture

The dashboard implements a unidirectional data flow pattern:

  1. State Management: Each tab (Overview, Recruiter, Revenue, etc.) maintains its own filter state.
  2. Filter Changes: When filters are updated:
    • Filter state is updated in the parent component (MainDashboard)
    • Changes propagate downward to analytical components
  3. Data Filtering: Each analytical component applies filters to its data
  4. Visualization Updates: Charts and tables re-render with filtered data

UI Component Hierarchy

MainDashboard
β”œβ”€β”€ Tabs (Overview, Recruiter, Revenue, Data, Team)
β”œβ”€β”€ GlobalFilterButton
β”‚   └── FilterModal
β”‚       β”œβ”€β”€ DateRangeSelector
β”‚       β”œβ”€β”€ EntitySelector
β”‚       └── MetricsSelector
β”œβ”€β”€ FilterBadges
└── Analytics Panels
    β”œβ”€β”€ MetricCards
    β”‚   └── Charts (Bar, Line, Pie, etc.)
    └── DataTables
        └── ExportButton

Theming System

The dashboard uses a CSS variables-based theming system:

  • Light/Dark Modes: Full support for light and dark color schemes.
  • Color Tokens: Semantic color variables for consistent UI.
  • Component Styling: Consistent styling across all UI components.

UI Components Library

The dashboard leverages a comprehensive UI component library built with:

  • RadixUI: For accessible and customizable UI primitives
  • Tailwind CSS: For utility-based styling
  • Recharts: For interactive data visualizations

Key UI components include:

  • Button: Various button styles and variants
  • Dialog: Modal dialogs for actions and detailed views
  • Tabs: For switching between different dashboard sections
  • Popover: For tooltips and contextual information
  • Calendar: For date selection
  • Table: For tabular data display
  • Badge: For status indicators and filter tags
  • Card: For containing related information
  • Dropdown: For selection inputs
  • Form inputs: Text inputs, checkboxes, etc.

Filter System Deep Dive

Filter Types

The dashboard supports multiple filter types:

  1. Date Filters:

    • Custom date ranges with calendar selection
    • Predefined ranges (Last Week, Last Month, Last Quarter, YTD)
  2. Entity Filters:

    • Recruiters: Filter by individual recruiters
    • Clients: Filter by specific clients
    • Industries: Filter by industry sectors
    • Teams: Filter by team groups
  3. Metric Filters:

    • Control which metrics are displayed in each dashboard
    • Show/hide specific data points

Filter Persistence

  • Filters are maintained separately for each dashboard tab
  • When switching tabs, the appropriate filters for that context are applied
  • The filter state is preserved during navigation

Filter UI Components

  • FilterModal: Main interface for setting all filter criteria
  • DateRangeSelector: Calendar interface with presets
  • EntitySelector: Searchable multi-select with checkboxes
  • MetricsSelector: Toggle switches for metric visibility
  • FilterBadges: Visual display of active filters

Data Export Features

The dashboard provides robust data export capabilities:

  • CSV Export: Structured data in comma-separated format
  • Excel Export: For more complex formatting and analysis
  • PDF Export: For reporting and sharing

The ExportButton component handles these exports, with appropriate formatting for each export type.

Performance Optimization

The dashboard implements several techniques to ensure optimal performance:

  • Memoization: useMemo and useCallback to prevent unnecessary re-renders
  • Virtualization: Efficient rendering of large datasets
  • Code Splitting: Lazy loading components as needed
  • Optimized Charts: Performant chart rendering with appropriate animations

Troubleshooting

Common Issues and Solutions

Charts Not Rendering Correctly

Issue: Charts appear blank or incorrectly sized.

Solution:

  • Ensure container has a defined height
  • Check that data format matches chart requirements
  • Verify that required props are correctly passed
  • For responsive issues, check if parent containers have proper sizing

Filter Not Applying to Data

Issue: Setting filters doesn't update the visualizations.

Solution:

  • Check filter state in browser console
  • Verify filter callback functions are correctly passed down component tree
  • Ensure filter logic in data filtering functions is correct
  • Confirm that filtered data is correctly passed to visualization components

Date Filter Selecting Wrong Range

Issue: Date range filtering is not working as expected.

Solution:

  • Check date format consistency (all dates should use the same format)
  • Verify start and end dates are correctly passed
  • Ensure date comparison logic handles time zones properly
  • For "Last X days/months" presets, verify calculation logic

Export Functionality Issues

Issue: Data exports missing data or formatting incorrectly.

Solution:

  • Verify export data is correctly formatted
  • Check for any transformations needed before export
  • Ensure export functions are handling async operations correctly
  • For large datasets, implement pagination or chunking

Slow Dashboard Performance

Issue: Dashboard is slow to respond, especially with large datasets.

Solution:

  • Implement pagination and limit initial data load
  • Add memoization for expensive calculations
  • Optimize chart rendering (reduce animations, simplify data)
  • Consider server-side filtering for very large datasets

Browser Compatibility

The dashboard is optimized for modern browsers:

  • Chrome 80+
  • Firefox 75+
  • Safari 13+
  • Edge 80+

For older browsers, consider polyfills for:

  • ES6+ features
  • CSS Variables
  • Flexbox/Grid layout

Mobile Responsiveness Issues

When encountering display issues on mobile devices:

  • Check viewport settings
  • Verify grid breakpoints are correctly configured
  • Ensure charts have minimum heights to prevent collapse
  • Test filter modals on small screens for usability

Advanced Customization

Adding New Metrics

To add new metrics to the dashboard:

  1. Add the metric to the data model
  2. Create visualization components if needed
  3. Update filter options to include the new metric
  4. Add the metric to relevant analytical components

Creating Custom Charts

To implement custom visualizations:

  1. Create a new chart component following existing patterns
  2. Implement Recharts components with appropriate props
  3. Add data transformation functions
  4. Integrate with MetricCard or standalone container

Extending Filter Capabilities

To add new filter types:

  1. Update the FilterModal component to include the new filter
  2. Create a selector component for the filter if needed
  3. Modify filter state structure in MainDashboard
  4. Update filter application logic in analytical components

Development Best Practices

When extending the dashboard:

  • Follow existing component patterns
  • Maintain unidirectional data flow
  • Keep components focused on single responsibilities
  • Document props and key functions
  • Implement proper error handling

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published