https://github.com/fabriziosalmi/repos
My repositories
https://github.com/fabriziosalmi/repos
automation github-stars github-stats repositories tracker
Last synced: about 1 month ago
JSON representation
My repositories
- Host: GitHub
- URL: https://github.com/fabriziosalmi/repos
- Owner: fabriziosalmi
- License: agpl-3.0
- Created: 2024-07-06T14:59:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-01-27T01:40:49.000Z (about 1 month ago)
- Last Synced: 2026-01-27T13:40:16.977Z (about 1 month ago)
- Topics: automation, github-stars, github-stats, repositories, tracker
- Language: Python
- Homepage: https://fabriziosalmi.github.io/repos/
- Size: 2.56 MB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# π GitHub Repository Analytics Dashboard

### Advanced Analytics & Insights for GitHub Repositories
[](https://fabriziosalmi.github.io/repos/)
[](https://github.com/fabriziosalmi/repos/stargazers)
[](LICENSE)
[](https://github.com/fabriziosalmi/repos/commits)
**[π View Live Dashboard](https://fabriziosalmi.github.io/repos/)** β’ **[π Quick Start](TUTORIAL.md)** β’ **[π Documentation](SETUP.md)** β’ **[β¨ Features](FEATURES.md)**
---
## π Live Statistics







**π Most Starred: certmate (1127 β) | π» Top Language: Python (55 repos) | π Avg: 36.5β
/ 221.1 commits**
---
## π― Overview
A powerful, privacy-focused analytics dashboard that transforms GitHub repository data into beautiful, interactive visualizations. Built with modern web technologies and automated through GitHub Actions for real-time insights.
## β¨ Features
### π¨ **Modern, Interactive UI**
- **Dark Mode Design**: Professional GitHub-themed interface with smooth animations
- **Responsive Layout**: Perfect experience on desktop, tablet, and mobile
- **Real-time Search**: Instant repository filtering with debounced search
- **Advanced Filtering**: Filter by language, status, fork status, and more
### π **Advanced Analytics**
- **Interactive Charts**: Language distribution, stars comparison, activity timeline, fork analysis
- **Statistical Insights**: Repository trends, growth metrics, and engagement data
- **Language Statistics**: Detailed breakdown of technologies used across projects
- **Activity Tracking**: Repository update frequency and commit patterns
### π **Performance & Privacy**
- **Zero Tracking**: No cookies, no analytics, no data collection
- **Fast Loading**: Optimized assets and lazy loading for instant performance
- **Cached Data**: Smart caching system to reduce API calls
- **Progressive Enhancement**: Works even with JavaScript disabled (basic view)
### π€ **Automation & CI/CD**
- **GitHub Actions**: Automated daily updates via scheduled workflows
- **Auto Deployment**: Automatic build and deploy to GitHub Pages
- **Data Validation**: Comprehensive validation before publishing
- **Error Recovery**: Robust error handling and fallback mechanisms
---
## π Quick Start
### Prerequisites
- **Python 3.8+** for data generation
- **Node.js 18+** (optional, for frontend development)
- **GitHub Personal Access Token** (for API access)
### π§ Installation
1. **Clone the repository**
```bash
git clone https://github.com/fabriziosalmi/repos.git
cd repos
```
2. **Set up Python environment**
```bash
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
```
3. **Configure GitHub Token**
```bash
export MY_PAT="your_github_personal_access_token"
# Or create a .env file with: MY_PAT=your_token_here
```
4. **Generate Data**
```bash
python stats.py
```
This creates `docs/repositories-data.json` with your repository data.
5. **View the Dashboard**
Simply open `docs/index.html` in your browser, or use a local server:
```bash
python -m http.server 8000 -d docs
# Visit http://localhost:8000
```
---
## π οΈ Development
### Local Development Setup
#### **Backend (Python Data Generator)**
The Python script fetches repository data from GitHub API with advanced caching and validation:
```bash
# Install dependencies
pip install -r requirements.txt
# Run with verbose output
python stats.py --verbose
# Force refresh cache
python stats.py --no-cache
# Generate specific user stats
python stats.py --user username
```
**Key Features:**
- Smart caching (1-hour default TTL)
- Rate limit handling with exponential backoff
- Data validation and integrity checks
- Detailed progress indicators
- Backup and recovery mechanisms
#### **Frontend Development**
For UI modifications, the dashboard uses vanilla JavaScript with Chart.js:
```bash
# Install development server (optional)
npm install -g live-server
# Run with hot reload
live-server docs/
# Or use Python
python -m http.server 8000 -d docs
```
**Tech Stack:**
- Pure HTML/CSS/JavaScript (no build step required)
- Chart.js for data visualization
- CSS Grid & Flexbox for responsive layout
- Modern CSS variables for theming
---
## π Data Structure
The `repositories-data.json` file contains rich metadata for each repository:
```json
{
"name": "repository-name",
"full_name": "user/repository-name",
"description": "Repository description",
"url": "https://github.com/user/repo",
"stars": 100,
"forks": 50,
"watchers": 100,
"language": "Python",
"license": "MIT License",
"last_update": "2025-11-16T10:00:00Z",
"last_update_str": "2 hours ago",
"commits": 250,
"contributors": 5,
"open_issues_count": 10,
"language_stats": {
"Python": {"bytes": 50000, "percentage": 75.5},
"JavaScript": {"bytes": 15000, "percentage": 24.5}
},
"archived": false,
"fork": false,
"private": false
}
```
---
## π Automated Deployment
The dashboard auto-updates through GitHub Actions with multiple triggers:
### Workflow Triggers
| Trigger | Frequency | Description |
|---------|-----------|-------------|
| π **Push to Main** | On commit | Instant deployment on code changes |
| β° **Scheduled** | Daily at 00:00 UTC | Automatic data refresh |
| π±οΈ **Manual Dispatch** | On demand | Trigger via Actions tab |
### Deployment Pipeline
```mermaid
graph LR
A[Trigger] --> B[Fetch GitHub Data]
B --> C[Validate Data]
C --> D[Generate JSON]
D --> E[Deploy to Pages]
E --> F[Live Dashboard]
```
**Workflow Features:**
- β
Data validation before deployment
- πΎ Automatic backup of previous data
- π Secure token handling via GitHub Secrets
- π§ Failure notifications
- π Zero-downtime deployment
### Setup GitHub Pages Deployment
1. Go to repository **Settings** β **Pages**
2. Set source to **GitHub Actions**
3. Add `MY_PAT` secret in **Settings** β **Secrets** β **Actions**
4. Workflow runs automatically on next commit
---
## π Analytics & Insights
### Available Metrics
| Category | Metrics |
|----------|---------|
| **Repository Stats** | Total repos, stars, forks, watchers, issues |
| **Activity** | Last update, commit frequency, contribution timeline |
| **Languages** | Distribution, bytes written, file counts |
| **Engagement** | Stars per repo, fork ratio, issue response time |
| **Quality** | License compliance, documentation coverage |
### Visualization Types
- π₯§ **Donut Charts**: Language distribution across repositories
- π **Bar Charts**: Top repositories by stars, forks, or activity
- π **Line Charts**: Repository activity over time
- π΅ **Scatter Plots**: Correlation between stars and forks
- π **Trend Analysis**: Growth patterns and forecasts
---
## π¨ Customization
### Theming
Edit CSS variables in `docs/index.html` to customize colors:
```css
:root {
--bg-primary: #0d1117; /* Main background */
--bg-secondary: #161b22; /* Card background */
--accent-blue: #58a6ff; /* Primary accent */
--accent-green: #3fb950; /* Success color */
--text-primary: #e6edf3; /* Main text */
}
```
### Adding Custom Charts
Add new visualizations by extending the chart rendering functions:
```javascript
function renderCustomChart() {
const ctx = document.getElementById('customChart').getContext('2d');
new Chart(ctx, {
type: 'radar',
data: { /* your data */ },
options: { /* your options */ }
});
}
```
### Filtering & Sorting
Customize filter options in the JavaScript section:
```javascript
// Add custom sort option
π― Custom Metric
// Implement custom sort logic
case 'custom':
return calculateCustomMetric(b) - calculateCustomMetric(a);
```
---
## π€ Contributing
Contributions are welcome! Here's how you can help:
1. **π΄ Fork** the repository
2. **πΏ Create** a feature branch: `git checkout -b feature/amazing-feature`
3. **π» Commit** changes: `git commit -m 'Add amazing feature'`
4. **π€ Push** to branch: `git push origin feature/amazing-feature`
5. **π Open** a Pull Request
### Development Guidelines
- Follow existing code style and conventions
- Add tests for new features
- Update documentation for API changes
- Ensure all checks pass before submitting PR
---
## π License
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
---
## π Acknowledgments
- **GitHub API** for providing comprehensive repository data
- **Chart.js** for beautiful, responsive charts
- **GitHub Actions** for seamless automation
- **Open Source Community** for inspiration and support
---
## π Support
- π§ **Issues**: [GitHub Issues](https://github.com/fabriziosalmi/repos/issues)
- π¬ **Discussions**: [GitHub Discussions](https://github.com/fabriziosalmi/repos/discussions)
- π **Documentation**: [Setup Guide](SETUP.md)
---
## π Privacy & Security
- β
**No tracking or analytics**
- β
**No cookies or local storage abuse**
- β
**No external API calls from client**
- β
**All data fetched server-side**
- β
**Open source and auditable**
---
**Built with β€οΈ and GitHub Actionβ**
[](https://github.com/fabriziosalmi)
[](https://twitter.com/fabriziosalmi)
**β Star this repo if you find it useful!**