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.
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
| 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 |
- Real-time repository count, commit contributions, pull requests, and releases
- Color-coded metric cards with responsive design
- GitHub avatar and profile information display
- Interactive line chart showing weekly contribution patterns
- Contribution calendar data with color-coded activity levels
- Total contribution statistics and trends
- Horizontal bar chart displaying programming language distribution
- GitHub's official language colors for accurate representation
- Percentage-based tooltips and visual breakdown
- Responsive sidebar navigation with collapsible design
- Dark/light theme support (ready for implementation)
- Consistent spacing and typography using Tailwind CSS
- Smooth animations and transitions
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)
- 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
- Recharts integration with custom chart configurations
- Responsive chart containers that adapt to different screen sizes
- Color consistency using GitHub's official language color palette
- 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
- React 19 with latest hooks and patterns
- Memoized computations for expensive data transformations
- Efficient re-rendering with proper dependency arrays
- Node.js 18+
- npm or yarn
- GitHub Personal Access Token
# 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# .env.local
GITHUB_TOKEN=ghp_your_github_personal_access_tokenGetting a GitHub Token:
- Go to GitHub Settings โ Developer settings โ Personal access tokens
- Generate new token with
repoanduserscopes - Copy token to your
.env.localfile
work in progress
- 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
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.
This project is licensed under the MIT License - see the LICENSE file for details.
๐ซก Nelaka Withanage
- GitHub: @NelakaWith
- LinkedIn: in/nelaka-withanage
- Portfolio: nelakawith.netlify.app
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