Skip to content
View fabriziosalmi's full-sized avatar

Sponsors

@StuartJAtkinson

Block or report fabriziosalmi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
fabriziosalmi/README.md

πŸ“Š GitHub Repository Analytics Dashboard

Advanced Analytics & Insights for GitHub Repositories

Live Dashboard GitHub Stars License Last Update

🌐 View Live Dashboard β€’ πŸš€ Quick Start β€’ πŸ“– Documentation β€’ πŸ“Š Detailed Stats β€’ ✨ Features


πŸ“ˆ Live Statistics

Total Repos Total Stars Total Forks Total Commits Contributors Issues Resolved Resolution Rate

πŸ† Most Starred: certmate (898 ⭐) | πŸ’» Top Language: Python (43 repos) | πŸ“Š Avg: 38.0β˜… / 186.5 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.

🌟 Key Highlights

πŸ“¦ Total Repositories      πŸ† Community Stars      🍴 Total Forks      πŸ’» Languages
Auto-discovered            Tracked in real-time    Live counting       Full analysis

✨ 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

    git clone https://github.com/fabriziosalmi/repos.git
    cd repos
  2. Set up Python environment

    python3 -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    pip install -r requirements.txt
  3. Configure GitHub Token

    export MY_PAT="your_github_personal_access_token"
    # Or create a .env file with: MY_PAT=your_token_here
  4. Generate Data

    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:

    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:

# 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:

# 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:

{
  "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

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]
Loading

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:

: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:

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:

// Add custom sort option
<option value="custom">🎯 Custom Metric</option>

// 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 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


πŸ”’ 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 followers Twitter Follow

⭐ Star this repo if you find it useful!

Pinned Loading

  1. certmate certmate Public

    SSL Certificate Management System (API + UI)

    Python 900 53

  2. caddy-waf caddy-waf Public

    Caddy WAF (Regex Rules, IP and DNS filtering, Rate Limiting, GeoIP, Tor, Anomaly Detection)

    Go 663 22

  3. patterns patterns Public

    Automated OWASP CRS and Bad Bot Detection for Nginx, Apache, Traefik and HaProxy

    Python 296 7

  4. blacklists blacklists Public

    Hourly updated domains blacklist 🚫

    Python 39 1

  5. wildbox wildbox Public

    An open-source security platform for the community. Unified SIEM, SOAR, WAF, and more in a single, self-hosted solution.

    Python 91 3

  6. nginx-waf-ai nginx-waf-ai Public

    Automatically detect threats and deploy WAF rules using machine learning

    Python 9 3