A fully responsive, interactive GitHub portfolio dashboard that displays your GitHub profile information, repositories, and statistics in a beautiful dark-themed interface.
- Real-time GitHub Data: Fetches live data from GitHub API
- Verified Badge Display: Professional verified badge next to your name
- Actual GitHub Streak: Shows real contribution streak using GitHub Events API
- Interactive Repository Browser: Filter, search, and browse repositories
- Detailed Analytics: Language breakdown, repository statistics, and more
- Total Repositories: Count of all public repositories
- GitHub Streak: Current contribution streak with visual calendar
- Total Stars: Sum of stars across all repositories
- Followers Count: Number of followers with interactive modal
- Total Contributions: Estimated contribution count
- Lines of Code: Estimated total lines of code
- Dark Theme: Modern dark interface with blue accent colors
- Responsive Design: Works perfectly on mobile, tablet, and desktop
- Interactive Modals:
- Repository details modal
- Followers list modal
- Smooth Animations: CSS animations and transitions
- Search & Filter: Filter repositories by stars, update date, or search by name
- No Backend Required: Pure frontend implementation
- GitHub API Integration: Uses official GitHub REST API
- CORS Compatible: Works with GitHub's CORS policies
- Performance Optimized: Lazy loading for repositories
Simply open the index.html file in your browser!
- Fork this repository
- Go to repository Settings โ Pages
- Select source:
mainbranch - Save and visit your GitHub Pages URL
- Clone the repository:
git clone https://github.com/yourusername/github-portfolio-dashboard.git
cd github-portfolio-dashboard- Open
index.htmlin your browser or serve it using a local server:
# Using Python
python -m http.server 8000
# Using Node.js
npx serve .Edit the username variable in the JavaScript section (line ~1290):
const username = 'your-github-username'; // Change thisModify the CSS variables in the :root selector (line ~15):
:root {
--primary: #2563eb; /* Primary blue color */
--primary-light: #3b82f6; /* Lighter blue */
--dark: #0f172a; /* Dark background */
--dark-card: #1e293b; /* Card background */
--light: #f8fafc; /* Light text */
--gray: #94a3b8; /* Gray text */
--success: #10b981; /* Success color */
--warning: #f59e0b; /* Warning color */
--verified: #1DA1F2; /* Verified badge color */
}Update the streak image URL (line ~275):
<img src="https://camo.githubusercontent.com/...your-streak-image-url..."
alt="GitHub Streak Stats">github-portfolio-dashboard/
โ
โโโ index.html # Main HTML file
โ
โโโ CSS Features:
โ โโโ Responsive grid layouts
โ โโโ Dark theme with custom colors
โ โโโ Smooth animations and transitions
โ โโโ Modal styling
โ โโโ Mobile-friendly design
โ
โโโ JavaScript Modules:
โ โโโ GitHub API integration
โ โโโ Streak calculation logic
โ โโโ Repository filtering/search
โ โโโ Modal management
โ โโโ Event handling
โ
โโโ External Dependencies:
โโโ Font Awesome Icons
โโโ GitHub REST API
โโโ GitHub Readme Streak Stats
https://api.github.com/users/{username}- User profile datahttps://api.github.com/users/{username}/repos- Repository listhttps://api.github.com/users/{username}/events- Activity events (for streak)https://api.github.com/users/{username}/followers- Followers list
- Uses public GitHub API (60 requests per hour unauthenticated)
- Consider adding a GitHub Personal Access Token for higher limits
- Cached data to reduce API calls
The dashboard calculates your actual GitHub streak using:
- Primary Method: GitHub Events API to analyze daily contributions
- Fallback Method: Repository update patterns
- Visual Display: GitHub Readme Streak Stats image integration
- Pagination: Load more repositories with animated button
- Search: Real-time repository search
- Filtering: Sort by stars, recent updates, or all
- Details Modal: Click any repo for detailed view
- Language Distribution: Visual percentage breakdown
- Repository Stats: Averages and totals
- Contribution Metrics: Estimated contributions and code volume
- Clickable Stats Cards: Followers card opens modal
- Tab Navigation: Switch between repositories and analytics
- Hover Effects: Interactive hover states
- Loading States: Smooth loading animations
- Light Theme: Modify
--darkand--dark-cardvariables to lighter colors - Custom Colors: Update all CSS variables to match your brand
- Accent Colors: Change
--primaryfor different accent colors
Extend the updateStatsUI() function to add:
- Commit count
- Pull request statistics
- Issue tracking
- Repository topics
Add more analytics cards by:
- Creating new card HTML in analytics section
- Adding data fetching logic
- Implementing visualization
/* Mobile: < 768px */
@media (max-width: 768px) {
/* Stack profile header */
/* Single column repository grid */
/* Full-width search box */
}
/* Tablet: 768px - 1024px */
/* Default styles work well */
/* Desktop: > 1024px */
/* Multi-column layouts */
/* Fixed sidebars if added */- No Data Storage: All data is fetched live, not stored
- Public Data Only: Only accesses publicly available GitHub data
- No Authentication Required: Works without GitHub tokens (optional for rate limits)
- CORS Safe: Uses browser-safe API calls
- Rate Limiting: Unauthenticated API calls limited to 60/hour
- Streak Accuracy: Streak calculation depends on GitHub event data availability
- First Load Speed: May be slow with many repositories
- Image Loading: Streak image from external service may have loading delays
- Add Caching: Implement localStorage caching for API responses
- Add Pagination: Reduce initial repository load count
- Lazy Load Images: Implement lazy loading for avatars
- Minify Assets: Minify CSS and JavaScript for production
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Additional analytics visualizations
- Performance optimizations
- Theme customization options
- Accessibility improvements
- Mobile UX enhancements
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub REST API for data
- Font Awesome for icons
- GitHub Readme Streak Stats for streak visualization
- All contributors and users of this dashboard
For support, questions, or feature requests:
- Open an issue on GitHub
- Check existing issues for solutions
- Star the repository if you find it useful!
Planned features for future versions:
- Multiple theme support
- Export data as PDF/PNG
- Comparison with other users
- Contribution heatmap calendar
- Repository tagging system
- Weekly/Monthly statistics
- Offline mode with cached data
Made with โค๏ธ by Musfiqur Jahin
If you find this project helpful, please consider giving it a โญ on GitHub!