Skip to content

keshavcodes-in/Graphit

Repository files navigation

πŸ“Š Graphit - Advanced Interactive Data Visualization Platform

A modern, responsive web application built with Next.js 14, React, and TypeScript that transforms raw data into beautiful, interactive visualizations. Perfect for data analysts, business professionals, and anyone who needs to quickly explore and understand their data.

πŸš€ Live Demo: graphit

⚑️ Current Work in Progress

We are actively enhancing Graphit with table virtualization and streaming data support to handle large CSV and JSON files efficiently.This upgrade will enable interaction with much larger datasets.

πŸŽ₯ Demo

Screenshot 1: Data Visualization Dashboard

Data Visualization Dashboard

Screenshot 2: Interactive Table View

Interactive Table View


✨ Features

🎯 Core Functionality

  • Multiple Chart Types: Bar, Line, Area, Pie, and Scatter plots
  • Real-time Data Processing: Instant filtering, sorting, and searching
  • Smart Axis Selection: Automatic detection of data types for optimal visualization
  • Interactive Tables: Sortable columns with detailed record views
  • Data Export: Export filtered data as CSV files

πŸ“Š Sample Datasets

  • Bollywood Movies: Top Indian films with ratings, box office, and budget data
  • Indian Cities: Major cities with population, GDP, and area statistics
  • Indian Companies: Leading corporations with revenue and employee data

🎨 Modern UI/UX

  • Light & Dark Mode: Seamless theme switching with system preference detection
  • Glassmorphism Design: Modern glass-like effects with backdrop blur
  • Responsive Layout: Optimized for desktop, tablet, and mobile devices
  • Professional Color Palette: Carefully chosen colors for accessibility and aesthetics

πŸ” Advanced Analytics

  • Data Insights Panel: Real-time statistics and data quality metrics
  • Smart Search: Global search across all columns with result highlighting
  • Statistical Overview: Min, max, average calculations for numerical data
  • Data Quality Indicators: Visual representation of data completeness

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn package manager

πŸ“ Project Structure

Graphit/
β”œβ”€β”€ app/                    # Next.js 14 App Router
β”‚   β”œβ”€β”€ globals.css        # Global styles and theme variables
β”‚   β”œβ”€β”€ layout.tsx         # Root layout with theme provider
β”‚   └── page.tsx           # Main application page
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ ui/                # Shadcn/ui components
β”‚   β”œβ”€β”€ data-explorer      # Main data visualization component
β”‚   β”œβ”€β”€ theme-provider.tsx # Theme context provider
β”‚   └── theme-toggle.tsx   # Theme switching component
β”œβ”€β”€ public/                # Static assets
└── README.md             # Project documentation

πŸ› οΈ Built With

Frontend Framework

UI Components & Styling

Data Visualization

  • Recharts - Composable charting library built on React components
  • Custom Data Processing - Built-in algorithms for filtering, sorting, and aggregation

Development Tools

πŸ“Š Supported Data Formats

CSV Files

  • Comma-separated values with headers
  • Automatic type detection (string/number)
  • Support for missing values

JSON Files

  • Array of objects format
  • Nested object support
  • Flexible schema handling

Example Data Structure

[
  {
    "title": "Movie Name",
    "genre": "Drama",
    "rating": 8.4,
    "year": 2016,
    "budget_cr": 70,
    "collection_cr": 2023
  }
]

🎨 Theme Customization

The application supports extensive theme customization through CSS variables:

:root {
  --background: 250 250 250;    /* Light mode background */
  --foreground: 35 38 47;       /* Light mode text */
  --primary: 99 102 241;        /* Primary brand color */
  --secondary: 244 244 245;     /* Secondary elements */
  /* ... more variables */
}

.dark {
  --background: 35 38 47;       /* Dark mode background */
  --foreground: 250 250 250;    /* Dark mode text */
  /* ... dark mode overrides */
}

πŸ”§ Configuration

Chart Colors

Customize the chart color palette in `components/data-explorer.tsx`:

const CHART_COLORS = [
  "#6366F1", // Indigo
  "#10B981", // Emerald
  "#F59E0B", // Amber
  // Add more colors...
]

Sample Datasets

Add new sample datasets by updating the /public/datasets

πŸ“± Responsive Design

The application is fully responsive with breakpoints:

  • Mobile: < 768px
  • Tablet: 768px - 1024px
  • Desktop: > 1024px

Key responsive features:

  • Collapsible navigation
  • Adaptive grid layouts
  • Touch-friendly interactions
  • Optimized chart sizing

⭐ Star this repository if you found it helpful!

About

Data visualizer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors