Skip to content

A modern Next.js (App Router) dashboard visualizing GitHub repository metrics such as deployments, commits, and workflow runs. Built with TypeScript, Tailwind CSS, shadcn/ui, lucide-react, and Recharts to demonstrate real-world frontend architecture.

License

Notifications You must be signed in to change notification settings

NelakaWith/pulse-ops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

69 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฉบ PulseOps - GitHub Analytics Dashboard

A modern GitHub analytics dashboard built with Next.js 16 and TypeScript, featuring real-time user metrics, contribution visualization, and language usage insights. Demonstrates advanced data visualization, GraphQL & REST API integration, and modern React patterns.


๐ŸŽฏ Project Overview

PulseOps transforms GitHub user data into actionable insights through interactive charts and metrics cards. The dashboard fetches comprehensive user information via GitHub's GraphQL and REST APIs and presents it in a clean, responsive interface perfect for developers, recruiters, and team leads.

Key Highlights:

  • ๐Ÿ“ˆ Real-time GitHub Analytics - Live contribution data and repository insights
  • ๐ŸŽจ Modern UI/UX - Clean design with shadcn/ui components and Tailwind CSS
  • ๐Ÿ“Š Interactive Charts - Line charts for contributions, bar charts for language usage
  • ๐Ÿ”ง TypeScript-First - Full type safety across components and API integration
  • โšก Performance Optimized - Efficient data fetching with Apollo GraphQL client and REST API endpoints

๐Ÿ› ๏ธ Tech Stack

Category Technology Purpose
Framework Next.js 16 (App Router) Server-side rendering, routing, API routes
Language TypeScript 5 Type safety and developer experience
Styling Tailwind CSS 4 + shadcn/ui Responsive design and component library
Data Fetching Apollo Client + GraphQL/REST Efficient GitHub API integration
Charts Recharts 2.15 Interactive data visualizations
Icons Lucide React 0.546 Consistent, modern iconography
State Management React 19 (built-in hooks) Component state and data flow

โœจ Features

๐Ÿ“Š User Metrics Dashboard

  • Real-time repository count, commit contributions, pull requests, and releases
  • Color-coded metric cards with responsive design
  • GitHub avatar and profile information display

๐Ÿ“ˆ Contribution Analytics

  • Interactive line chart showing weekly contribution patterns
  • Contribution calendar data with color-coded activity levels
  • Total contribution statistics and trends

๐ŸŒ Language Usage Insights

  • Horizontal bar chart displaying programming language distribution
  • GitHub's official language colors for accurate representation
  • Percentage-based tooltips and visual breakdown

๐ŸŽจ Modern Interface

  • Responsive sidebar navigation with collapsible design
  • Dark/light theme support (ready for implementation)
  • Consistent spacing and typography using Tailwind CSS
  • Smooth animations and transitions

๐Ÿ“ Project Structure

pulse-ops/
โ”œโ”€โ”€ .env.local                        # Environment variables
โ”œโ”€โ”€ .gitignore                        # Git ignore rules
โ”œโ”€โ”€ LICENSE                           # GNU AGPL v3 License
โ”œโ”€โ”€ README.md                         # Project documentation
โ”œโ”€โ”€ package.json                      # Dependencies and scripts
โ”œโ”€โ”€ package-lock.json                 # Dependency lock file
โ”œโ”€โ”€ next.config.ts                    # Next.js configuration
โ”œโ”€โ”€ next-env.d.ts                     # Next.js TypeScript declarations
โ”œโ”€โ”€ tsconfig.json                     # TypeScript configuration
โ”œโ”€โ”€ tsconfig.tsbuildinfo              # TypeScript build info
โ”œโ”€โ”€ eslint.config.mjs                 # ESLint configuration
โ”œโ”€โ”€ postcss.config.mjs                # PostCSS configuration
โ”œโ”€โ”€ components.json                   # shadcn/ui configuration
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ layout.tsx                    # Root layout with sidebar
โ”‚   โ”œโ”€โ”€ page.tsx                      # Home page
โ”‚   โ”œโ”€โ”€ globals.css                   # Global styles
โ”‚   โ”œโ”€โ”€ favicon.ico                   # Site favicon
โ”‚   โ”œโ”€โ”€ metrics/
โ”‚   โ”‚   โ”œโ”€โ”€ page.tsx                  # Main metrics dashboard
โ”‚   โ”‚   โ”œโ”€โ”€ types.ts                  # Shared TypeScript interfaces
โ”‚   โ”‚   โ””โ”€โ”€ components/
โ”‚   โ”‚       โ”œโ”€โ”€ userMetrics.tsx       # User profile and metric cards
โ”‚   โ”‚       โ”œโ”€โ”€ contributionChart.tsx # Weekly contribution line chart
โ”‚   โ”‚       โ””โ”€โ”€ languageUsage.tsx     # Language distribution chart
โ”‚   โ”œโ”€โ”€ repos/                        # Repository pages
โ”‚   โ””โ”€โ”€ api/
โ”‚       โ”œโ”€โ”€ github/
โ”‚       โ”‚   โ””โ”€โ”€ route.ts              # GitHub REST API proxy endpoint
โ”‚       โ””โ”€โ”€ github-graphql/
โ”‚           โ””โ”€โ”€ route.ts              # GitHub GraphQL API proxy endpoint
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ ui/                           # shadcn/ui components
โ”‚   โ”œโ”€โ”€ app-sidebar.tsx               # Navigation sidebar
โ”‚   โ””โ”€โ”€ dev-hydration-debug.tsx       # Development debugging component
โ”œโ”€โ”€ hooks/
โ”‚   โ””โ”€โ”€ use-mobile.ts                 # Responsive design hook
โ”œโ”€โ”€ lib/
โ”‚   โ””โ”€โ”€ utils.ts                      # Utility functions and helpers
โ”œโ”€โ”€ docs/
โ”‚   โ””โ”€โ”€ devops_monitor_plan.md        # Project planning documentation
โ”œโ”€โ”€ public/                           # Static assets
โ”‚   โ”œโ”€โ”€ file.svg                      # File icon
โ”‚   โ”œโ”€โ”€ globe.svg                     # Globe icon
โ”‚   โ”œโ”€โ”€ next.svg                      # Next.js logo
โ”‚   โ”œโ”€โ”€ vercel.svg                    # Vercel logo
โ”‚   โ””โ”€โ”€ window.svg                    # Window icon
โ””โ”€โ”€ styles/                           # Additional stylesheets (if any)

๐Ÿ”ง Key Technical Concepts

API Integration

  • GraphQL API v4 for comprehensive user data fetching (repositories, contributions, languages)
  • REST API v3 for additional data sources and fallback endpoints
  • Efficient query structure with optimized data fetching patterns
  • Type-safe data fetching with generated TypeScript interfaces

Data Visualization

  • Recharts integration with custom chart configurations
  • Responsive chart containers that adapt to different screen sizes
  • Color consistency using GitHub's official language color palette

Component Architecture

  • Separation of concerns: data fetching in page components, presentation in UI components
  • Reusable metric card system with data-driven rendering
  • Type-safe props and interfaces throughout the component tree

Modern React Patterns

  • React 19 with latest hooks and patterns
  • Memoized computations for expensive data transformations
  • Efficient re-rendering with proper dependency arrays

๐Ÿš€ Setup Instructions

Prerequisites

  • Node.js 18+
  • npm or yarn
  • GitHub Personal Access Token

Installation

# Clone the repository
git clone https://github.com/NelakaWith/pulse-ops.git
cd pulse-ops

# Install dependencies
npm install

# Set up environment variables
cp .env.local.example .env.local
# Add your GitHub token to .env.local:
# GITHUB_TOKEN=ghp_your_token_here

# Run development server
npm run dev

Environment Variables

# .env.local
GITHUB_TOKEN=ghp_your_github_personal_access_token

Getting a GitHub Token:

  1. Go to GitHub Settings โ†’ Developer settings โ†’ Personal access tokens
  2. Generate new token with repo and user scopes
  3. Copy token to your .env.local file

๐ŸŽจ Demo Screenshots

work in progress


๐Ÿ”ฎ Future Enhancements

  • Multi-user Support - Compare multiple GitHub profiles
  • Advanced Analytics - Commit frequency patterns, repository health scores
  • Export Features - PDF reports and data export functionality
  • Real-time Updates - WebSocket integration for live data updates
  • Team Analytics - Organization-level insights and team comparisons
  • Mobile App - React Native version for mobile analytics

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.


๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ‘จโ€๐Ÿ’ป Author

๐Ÿซก Nelaka Withanage


๐Ÿ“ License

This project is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 - see the LICENSE file for details.

Built with โค๏ธ using Next.js, TypeScript, and the GitHub GraphQL/REST APIs

About

A modern Next.js (App Router) dashboard visualizing GitHub repository metrics such as deployments, commits, and workflow runs. Built with TypeScript, Tailwind CSS, shadcn/ui, lucide-react, and Recharts to demonstrate real-world frontend architecture.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published