|
| 1 | +# shellaquiles/stats |
| 2 | + |
| 3 | +[](https://shellaquiles.github.io/stats/) |
| 4 | +[](https://opensource.org/licenses/MIT) |
| 5 | +[](https://www.python.org/) |
| 6 | +[](https://www.chartjs.org/) |
| 7 | +[](https://playwright.dev/) |
| 8 | +[](https://github.com/features/actions) |
| 9 | + |
| 10 | +Dashboard web estático y automático para visualizar la **Huella Digital** y métricas de proyectos en GitHub (stars, forks, clones, commits, visitas y colaboradores). |
| 11 | + |
| 12 | +Impulsado por la comunidad de **[shellaquiles.org](https://shellaquiles.org)**. |
| 13 | + |
| 14 | +<p align="center"> |
| 15 | + <a href="https://shellaquiles.github.io/stats/"> |
| 16 | + <img src="https://img.shields.io/badge/🚀_VER_DEMO_EN_VIVO-shellaquiles.github.io%2Fstats-22c55e?style=for-the-badge&logo=githubpages&logoColor=white" alt="Ver Demo en Vivo" /> |
| 17 | + </a> |
| 18 | +</p> |
| 19 | + |
| 20 | +> 💡 **Tu URL personal tras hacer Fork:** `https://<TU-USUARIO>.github.io/stats/` |
| 21 | +> *(Por ejemplo, si tu usuario es `@pixelead0`, tu página se publicará en `https://pixelead0.github.io/stats/`).* |
| 22 | +
|
| 23 | +--- |
| 24 | + |
| 25 | +## Crea tu propio dashboard de estadísticas en 3 minutos |
| 26 | + |
| 27 | +Solo necesitas hacer un fork. El sistema detecta tu usuario en automático y publica tus métricas sin que tengas que tocar código: |
| 28 | + |
| 29 | +### 1. Haz Fork |
| 30 | +Haz clic en el botón **Fork** arriba a la derecha para copiar el repo a tu cuenta u organización. |
| 31 | + |
| 32 | +### 2. Activa GitHub Pages |
| 33 | +1. Ve a **Settings** > **Pages** en tu repo (o entra a `https://github.com/<TU_USUARIO>/stats/settings/pages`). |
| 34 | +2. En **Build and deployment** > **Source**, elige **Deploy from a branch**. |
| 35 | +3. En **Branch**, selecciona **`gh-pages`** y carpeta `/(root)`. |
| 36 | +4. Guarda los cambios. |
| 37 | + |
| 38 | +*(Nota: Si la rama `gh-pages` aún no aparece, se creará sola al terminar el paso 3. Para más detalles puedes ver la [documentación oficial de GitHub Pages](https://docs.github.com/es/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site)).* |
| 39 | + |
| 40 | +### 3. Corre la sincronización inicial |
| 41 | +1. Ve a la pestaña **Actions** en tu repo. |
| 42 | +2. Si los workflows están pausados, presiona el botón verde para activarlos (*"I understand my workflows, go ahead and enable them"*). |
| 43 | +3. Selecciona **`Auto-Sync Telemetry & Deploy to GitHub Pages`** a la izquierda. |
| 44 | +4. Haz clic en **Run workflow** > **Run workflow** (ver [cómo ejecutar workflows manualmente](https://docs.github.com/es/actions/managing-workflow-runs/manually-running-a-workflow)). |
| 45 | + |
| 46 | +### 4. Consulta tus resultados en vivo |
| 47 | + |
| 48 | +Cuando el workflow termine de ejecutarse (tarda ~1 minuto): |
| 49 | + |
| 50 | +1. **Tu Dashboard público**: Estará publicado en: |
| 51 | + ```text |
| 52 | + https://<TU_USUARIO>.github.io/stats/ |
| 53 | + ``` |
| 54 | +2. **Tu Tarjeta Social**: Se habrá generado la miniatura `og-preview.png` (2400x1260 px) para compartir en redes. |
| 55 | +3. **Historial de ejecuciones**: Puedes ver el estado de cada corrida en la pestaña **Actions** de tu repositorio. |
| 56 | + |
| 57 | +> 📌 **Tip:** Agrega tu enlace `https://<TU_USUARIO>.github.io/stats/` en la sección **About** (en el engrane ⚙️ a la derecha de la portada de tu repo en GitHub) y marca la casilla *"Use your GitHub Pages website"*. Así tú y tus visitantes podrán entrar con 1 solo clic. |
| 58 | +
|
| 59 | +A partir de este momento, tus métricas se actualizarán en automático todos los días a las **06:00 UTC**. |
| 60 | + |
| 61 | +--- |
| 62 | + |
| 63 | +## ¿Qué incluye el dashboard? |
| 64 | + |
| 65 | +GitHub muestra tu actividad reciente, pero no te da una vista global del impacto de tus proyectos. Este dashboard genera una página web pública y ligera con: |
| 66 | + |
| 67 | +- **Huella Digital**: Radar multieje con el balance de Stars, Forks, Commits, Clones y Visitas. |
| 68 | +- **Stats Globales**: Tabla interactiva para ordenar tus repositorios por cualquier métrica o fecha de creación. |
| 69 | +- **Por Repositorio**: Tarjetas individuales con stack técnico y enlaces a código/demos. |
| 70 | +- **Colaboradores y Core Team**: Reconocimiento a quienes aportan código a tus repos (sin bots). |
| 71 | +- **Captura para Redes Sociales**: Genera en automático una tarjeta `og-preview.png` en alta resolución (2400x1260 px) para compartir en Twitter/X o LinkedIn. |
| 72 | +- **Zero-Config**: Filtra en automático tus repos públicos propios (`type=source`) y se actualiza solo cada 24 horas vía GitHub Actions sin costo de servidores. |
| 73 | + |
| 74 | +--- |
| 75 | + |
| 76 | +## Desarrollo local |
| 77 | + |
| 78 | +Si quieres probarlo en tu máquina: |
| 79 | + |
| 80 | +```bash |
| 81 | +# 1. Clonar |
| 82 | +git clone https://github.com/<TU_USUARIO>/stats.git |
| 83 | +cd stats |
| 84 | + |
| 85 | +# 2. Correr servidor local (http://localhost:8000) |
| 86 | +make dev |
| 87 | + |
| 88 | +# 3. Generar la captura para redes |
| 89 | +make preview |
| 90 | +``` |
| 91 | + |
| 92 | +--- |
| 93 | + |
| 94 | +## Arquitectura |
| 95 | + |
| 96 | +```mermaid |
| 97 | +flowchart LR |
| 98 | + GH[GitHub API] --> PY[scripts/update_metrics.py] |
| 99 | + PY --> DATA[data.json] |
| 100 | + DATA --> HTML[index.html] |
| 101 | + DATA --> SHOT[scripts/generate_preview.py] |
| 102 | + SHOT --> IMG[og-preview.png] |
| 103 | + HTML --> GHP[gh-pages] |
| 104 | + IMG --> GHP |
| 105 | +``` |
| 106 | + |
| 107 | +```text |
| 108 | +├── .github/workflows/sync_metrics.yml # Automatización CI/CD |
| 109 | +├── scripts/ |
| 110 | +│ ├── update_metrics.py # Extractor de datos (GitHub API) |
| 111 | +│ └── generate_preview.py # Generador de tarjeta social (Playwright) |
| 112 | +├── templates/ |
| 113 | +│ └── share.html # Plantilla para la captura social |
| 114 | +├── index.html # Dashboard web interactivo |
| 115 | +├── Makefile # Comandos de desarrollo local |
| 116 | +├── VERSION # Versión oficial (1.0.0) |
| 117 | +├── CHANGELOG.md # Historial de cambios |
| 118 | +└── README.md # Documentación del proyecto |
| 119 | +``` |
| 120 | + |
| 121 | +- **Extractor**: Python puro con GitHub CLI (`gh`). Filtra forks (`--source`), auto-detecta usuario/org y calcula antigüedad. |
| 122 | +- **Frontend**: HTML5, Vanilla CSS y Vanilla JS. Sin frameworks pesados. Gráficos con Chart.js e iconos Lucide. |
| 123 | +- **Captura Social**: Playwright headless renderizando `templates/share.html` a escala 2x Retina. |
| 124 | +- **Despliegue**: GitHub Actions publicando a rama huérfana `gh-pages`. |
| 125 | + |
| 126 | +--- |
| 127 | + |
| 128 | +## Sobre Shellaquiles |
| 129 | + |
| 130 | +Este proyecto es parte de las herramientas de código abierto desarrolladas por la comunidad de **[shellaquiles.org](https://shellaquiles.org)**. Si te gusta el desarrollo de herramientas de terminal, CLI y utilidades para devs, únete a la comunidad: |
| 131 | + |
| 132 | +- Web: [https://shellaquiles.org](https://shellaquiles.org) |
| 133 | +- GitHub: [https://github.com/shellaquiles](https://github.com/shellaquiles) |
| 134 | +- Otros proyectos: `cron-quiles`, `tribuTACOS`, `pandocquiles`, `KARNITAS`. |
| 135 | + |
| 136 | +--- |
| 137 | + |
| 138 | +## Licencia |
| 139 | + |
| 140 | +MIT © Shellaquiles. |
0 commit comments