A static web application that visualizes GitHub statistics and collaboration patterns. Try it here
- π Interactive dashboard with multiple visualization types
- π Time-based analysis of repository activity
- π₯ Collaboration pattern insights
- π¨ Modern, responsive UI
- β‘ Fast performance with Vite, React and Typescript
- Clone the repository
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Open http://localhost:5173 in your browser
The application is designed to be easily extensible. Here's how to add a new chart component:
-
Add your chart component to
src/components/Dashboard/Components.tsx
:// Inside src/components/Dashboard/Components.tsx // Add your chart component function NewChart({ data }: ChartProps) { return ( <div className="chart-container"> {/* Your chart implementation */} </div> ); } // Add it to the DashboardComponents object export const DashboardComponents = { // ... existing components newChart: NewChart, };
-
The chart will automatically be available in the dashboard through the
DashboardComponents
object. -
Style your chart using the shared styles in
src/styles.ts
The application provides several generic chart components that you can use:
-
Bar Chart (
GenericBarChart
)interface BarChartProps { title: string; data: { name: string; value: number }[]; bars: { dataKey: string; name: string; fill: string }[]; formatter?: (value: ValueType) => string; XAxisProps?: object; }
-
Pie Chart (
GenericPieChart
)interface PieChartProps { title: string; data: { name: string; value: number }[]; colors: string[]; formatter?: (value: ValueType) => string; }
-
Line Chart (
GenericLineChart
)interface LineChartProps { title: string; data: { name: string; value: number }[]; lines: { dataKey: string; name: string; stroke: string }[]; formatter?: (value: ValueType) => string; }
-
Table (
GenericTable
)interface TableProps { title: string; data: any[]; columns: { key: string; label: string; render?: (value: any) => ReactNode }[]; limit?: number; fullWidth?: boolean; }
- Use TypeScript for type safety
- Follow the existing chart component patterns
- Implement responsive design
- Include loading and error states
- Add tooltips for data points
- Use the shared color palette from
CHART_COLORS
.
βββ src/
β βββ components/
β β βββ Charts/ # Chart visualization components
β β β βββ Bar.tsx # Bar chart component
β β β βββ Line.tsx # Line chart component
β β β βββ Pie.tsx # Pie chart component
β β β βββ Table.tsx # Table visualization
β β β βββ Utils.tsx # Shared chart utilities
β β β βββ index.ts # Chart exports
β β βββ Dashboard/ # Dashboard components
β β β βββ Visualization.tsx # Dashboard layout and components
β β βββ Dashboard.tsx # Main dashboard container
β β βββ Footer.tsx # Application footer
β β βββ GitHubLogo.tsx # GitHub logo component
β β βββ Header.tsx # Application header
β β βββ Upload.tsx # File upload component
β βββ utils/
β β βββ calculateStats.ts # Statistics calculation utilities
β β βββ generateTestData.ts # Test data generation
β β βββ parseCsv.ts # CSV parsing utilities
β βββ App.tsx # Main application component
β βββ main.tsx # Application entry point
β βββ styles.ts # Shared styles
β βββ types.ts # TypeScript type definitions
βββ public/ # Static assets
βββ index.html # HTML entry point
βββ package.json # Project dependencies
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite configuration
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License - feel free to use this project for your own purposes.
Built with β€οΈ by the Expert Services Team