Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thecarbun/github-stat-checker
A Streamlit app to check various GitHub stats
https://github.com/thecarbun/github-stat-checker
github github-stats githubcontributions githubstats python streamlit
Last synced: 2 days ago
JSON representation
A Streamlit app to check various GitHub stats
- Host: GitHub
- URL: https://github.com/thecarbun/github-stat-checker
- Owner: TheCarBun
- License: mit
- Created: 2025-01-26T09:20:03.000Z (10 days ago)
- Default Branch: main
- Last Pushed: 2025-02-02T17:34:53.000Z (3 days ago)
- Last Synced: 2025-02-02T18:28:06.653Z (3 days ago)
- Topics: github, github-stats, githubcontributions, githubstats, python, streamlit
- Language: Python
- Homepage: https://git-stats.streamlit.app/
- Size: 33.2 KB
- Stars: 3
- Watchers: 1
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![image](https://github.com/user-attachments/assets/b018c10a-db2b-4c56-9832-6cafda16ed1f)
# GitHub Stat Checker
GitHub Contribution Tracker is a **Streamlit** web application that visualizes GitHub user contributions with insightful metrics, charts, and achievements. This app uses the **GitHub GraphQL API** to fetch and display data about a user's contribution history, enabling users to track and analyze their growth.
## Features
- **Summary Stats**:
- Total contributions across all repositories.
- Highest contributions in a single day.
- Current streak of consecutive contribution days.
- Longest streak of consecutive contribution days.- **Visualizations**:
- **Contributions Over Time**: A line chart showing daily contributions.
- **Yearly Growth**: A bar chart summarizing contributions year by year.
- **Weekly Contribution Heatmap**: An interactive table visualizing contributions by the day of the week and week of the year.
- **Day-of-Week Analysis**: Contributions grouped by the day of the week.
- **Weekday vs. Weekend Contributions**: A bar chart comparing contributions made on weekdays versus weekends.- **Custom Metrics**:
- Most productive day: Displays the date with the highest contributions.
- Contribution streaks: Real-time updates of current and longest streaks.- **Achievements**:
- Dynamic achievements unlocked based on contribution activity, such as:
- **"🔥 Streak Warrior"**: A streak of over 30 days.
- **"💪 Commit Master"**: Total contributions exceeding 1000.- **Language Usage (upcoming)**:
- Extendable with GitHub API to display language usage stats for repositories.## Installation
### Prerequisites
1. Python 3.7 or higher.
2. GitHub [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classi) with GraphQL API access.
3. Streamlit (`pip install streamlit`).### Setup Instructions
1. Clone the repository:
```bash
git clone https://github.com/TheCarBun/GitHub-Stat-Checker.git
cd GitHub-Stat-Checker
```2. Install dependencies:
```bash
pip install -r requirements.txt
```3. Run the app:
```bash
streamlit run app.py
```4. Open your browser and navigate to the URL shown in the terminal (usually `http://localhost:8501`).
---
## Usage
1. Enter your **GitHub Username**.
2. Provide a **GitHub Personal Access Token** (with `read:user` and `repo` scopes for GraphQL API access).
3. View detailed stats, visualizations, and achievements based on your contribution data.### How to Generate a GitHub Personal Access Token
1. Go to [GitHub Developer Settings](https://github.com/settings/tokens).
2. Click on **Generate new token (classic)** or **Generate token** (for fine-grained).
3. Select the following scopes:
- `repo`
- `read:user`
4. Copy the generated token and use it in the app.## Folder Structure
```
github-contribution-tracker/
├── github_stats.py # Logic for fetching and processing GitHub contribution data.
├── app.py # Streamlit app for displaying the dashboard.
├── requirements.txt # Python dependencies.
└── README.md # Project documentation.
```---
### Future Improvements
- Add more dynamic achievements.
- Include repository-specific stats (e.g., most active repositories).
- Display contributions grouped by month.
- Add user rankings for team or organization collaboration.
- Add language usage data.## Screenshots
Click to View Images 📷
![image](https://github.com/user-attachments/assets/f8d8ede2-40ea-493a-9c50-ba043492c8be)
![image](https://github.com/user-attachments/assets/c8883411-8afe-403b-bad2-300897bba48d)
![image](https://github.com/user-attachments/assets/a18e3d50-29e9-43a7-91ad-30413c4039e4)
![image](https://github.com/user-attachments/assets/3e87ffb6-30b5-40ee-b1bd-50c1c63ff465)
## Contributing
Contributions are welcome! To contribute:
1. Fork the repository.
2. Create a feature branch: `git checkout -b feature/your-feature`.
3. Commit changes: `git commit -m 'Add your feature'`.
4. Push to your fork: `git push origin feature/your-feature`.
5. Create a pull request.## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Acknowledgements
- **[Streamlit](https://streamlit.io/)**: For building the interactive web application.
- **[GitHub GraphQL API](https://docs.github.com/en/graphql)**: For data fetching.