A powerful Python tool that fetches and visualizes the most-starred Python repositories from GitHub using the GitHub API. Get insights into trending Python projects with interactive charts and comprehensive repository information.
- π Smart Repository Search: Fetches top Python repositories sorted by stars
- π Interactive Visualizations: Beautiful Plotly charts with hover information
- π― Comprehensive Data: Repository details including stars, owners, descriptions, and URLs
- π Clickable Links: Direct links to repositories in visualizations
- π Real-time Data: Always up-to-date information from GitHub API
- Python 3.7+
- GitHub Personal Access Token (for higher API rate limits)
-
Clone the repository
git clone https://github.com/sanajjadhav15/Python-Repositories-Explorer.git
-
Install dependencies
pip install requests python-dotenv plotly
-
Set up environment variables Create a
.envfile in the root directory:GITHUB_TOKEN=your_github_token_here
Run the Jupyter notebook:
jupyter lab python_repos.ipynbOr run as a Python script:
python python_repos.py- Go to GitHub Settings > Developer settings > Personal access tokens
- Generate a new token with
public_reposcope - Add it to your
.envfile
- Repository Count: Modify the API call to fetch more repositories
- Sorting Options: Change sorting criteria (stars, forks, updated)
- Language Filter: Explore repositories in other programming languages
- Visualization Style: Customize Plotly chart appearance
The tool provides:
- Repository Statistics: Total count, stars, forks, and more
- Interactive Bar Chart: Hover for detailed information
- Clickable Repository Links: Direct navigation to GitHub repositories
- Owner Information: Repository maintainers and organizations
- Responsive Design: Charts adapt to different screen sizes
- Hover Information: Detailed repository info on hover
- Clickable Elements: Direct links to GitHub repositories
- Professional Styling: Clean, modern chart appearance
This project uses the GitHub Search API:
- Endpoint:
https://api.github.com/search/repositories - Query Parameters:
q=language:python&sort=stars - Rate Limiting: Respects GitHub API rate limits
- Authentication: Uses personal access tokens for higher limits
Each repository object contains:
name: Repository nameowner: Owner informationstargazers_count: Number of starsdescription: Repository descriptionhtml_url: GitHub repository URLcreated_at: Creation dateupdated_at: Last update date
- GitHub API for providing repository data
- Plotly for interactive visualizations
- Python community for amazing open-source projects