A premium, interactive Streamlit web application that provides deep analytics, metrics, and side-by-side comparisons of GitHub repositories using the GitHub REST API.
- Authenticates securely via a GitHub Personal Access Token (PAT).
- Displays live API rate limits and token quotas in the sidebar, preventing unexpected limits.
- Summarizes profile details, bio, follower metrics, location, and repository counts in a modern glassmorphic card.
- Displays high-level stats at a glance: Total Repositories, Total Stars, Total Forks, and combined Repository Size.
- Filter repositories instantly by creation date ranges and repository sizes (in KB).
-
Dashboard & Explorer
- Top 10 Repositories: Visualized via an interactive Plotly bar chart colored by primary language.
- Language Distribution: Pie chart illustrating language breakdown by code bytes across repositories.
- Interactive Explorer Table: Sortable, searchable data table featuring repo stats, creation/update dates, and direct links.
- Data Exports: Download CSVs for raw details, language statistics, or a high-level summary report.
-
Growth & Commits
- Star Growth Trends: Detailed cumulative star growth over time for top repositories.
- Contributor Leaderboard: Shows contributions count and direct profile links for top contributors.
- Commit Activity: High-fidelity area chart showcasing daily commit patterns (up to the last 100 commits).
-
Repository Side-by-Side Comparison
- Allows choosing any two repositories from your portfolio.
- Computes delta stats (difference in Stars, Forks, Issues, Pull Requests, Contributors, and Size) with visual indicators.
- Grouped dual-bar charts comparing key metrics side-by-side.
- Frontend / App Framework: Streamlit for rapid dashboard building and styling.
- Charts / Visualizations: Plotly (Express and Graph Objects) for interactive charts.
- Data Wrangling: Pandas for data structuring and CSV exporting.
- API Client: Standard
requestslibrary with custom error handling, automatic sleep logic for API rate limits, and concurrent detail fetching viaThreadPoolExecutor. - Performance: Cached repository data in
.cache/for 1 hour to optimize load times and API requests.
- Python: Version 3.8 or higher.
- GitHub PAT: A GitHub Personal Access Token (classic or fine-grained) is required. You can generate one at GitHub Developer Settings.
-
Clone the repository:
git clone https://github.com/Rahim36712/github-dashboard.git cd github-dashboard -
Set up a Virtual Environment (Recommended):
python -m venv venv # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
-
Install Dependencies:
pip install -r requirements.txt
Start the Streamlit development server:
streamlit run dashboard.pyThe application will open automatically in your browser at http://localhost:8501.
github-dashboard/
│
├── .cache/ # Local JSON cache for API responses (ignored in Git)
├── .streamlit/ # Streamlit configuration settings
│
├── dashboard.py # Main application UI and page layout logic
├── github_api.py # GitHub API client class with authentication and helpers
├── utils.py # Concurrency, caching, processing, and formatting helpers
│
├── requirements.txt # Python package dependencies
├── README.md # Project documentation
└── push_to_github.py # Helper script to initialize and push to GitHub
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project.
- Create your 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.
Distributed under the MIT License. See LICENSE for more information.