Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

📊 GitHub Insights Dashboard

A premium, interactive Streamlit web application that provides deep analytics, metrics, and side-by-side comparisons of GitHub repositories using the GitHub REST API.

Streamlit App Python 3.8+ GitHub API License: MIT


🌟 Features

🔒 Secure Authentication & Rate Limit Tracking

  • Authenticates securely via a GitHub Personal Access Token (PAT).
  • Displays live API rate limits and token quotas in the sidebar, preventing unexpected limits.

👥 Rich User & Org Profile Card

  • Summarizes profile details, bio, follower metrics, location, and repository counts in a modern glassmorphic card.

📈 Overview Metrics

  • Displays high-level stats at a glance: Total Repositories, Total Stars, Total Forks, and combined Repository Size.

🎯 Advanced Filtering

  • Filter repositories instantly by creation date ranges and repository sizes (in KB).

🛠️ Interactive Tabs & Visualizations

  1. 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.
  2. 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).
  3. 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.

🛠️ Tech Stack & Architecture

  • 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 requests library with custom error handling, automatic sleep logic for API rate limits, and concurrent detail fetching via ThreadPoolExecutor.
  • Performance: Cached repository data in .cache/ for 1 hour to optimize load times and API requests.

🚀 Getting Started

Prerequisites

  • 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.

Installation

  1. Clone the repository:

    git clone https://github.com/Rahim36712/github-dashboard.git
    cd github-dashboard
  2. Set up a Virtual Environment (Recommended):

    python -m venv venv
    # On Windows:
    venv\Scripts\activate
    # On macOS/Linux:
    source venv/bin/activate
  3. Install Dependencies:

    pip install -r requirements.txt

💻 Running the App

Start the Streamlit development server:

streamlit run dashboard.py

The application will open automatically in your browser at http://localhost:8501.


📁 Repository Structure

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

🤝 Contributing

Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add some AmazingFeature').
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

📄 License

Distributed under the MIT License. See LICENSE for more information.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages