Portada
Todo el sistema de Harol en un vistazo
Qué piezas viven en este repositorio, cómo se conectan, dónde corre cada una y en qué estado están.
Todos los artículos
- Arquitectura Cómo está armado el repositorio Mapa de carpetas, tecnologías de cada pieza y el recorrido de un cambio desde el admin o un commit hasta el sitio en línea.
- Portafolio El portafolio por dentro Secciones del sitio, componentes, contenido en JSON y su validación, idiomas, los casos MIGOZZ, ARIA, DevPanel y Portafolio, la franja de DevPanel, imágenes y pruebas.
- Admin El admin, la cabina de control del contenido Para qué sirve el editor de admin.hgsportafolio.site, qué se edita en cada estación, cómo se revisa y publica un cambio y el resumen semanal por correo.
- Seguridad Seguridad del admin y del sitio Entrada con PIN y código por correo, sesiones, límites, intermediario de GitHub, CSP, cabeceras, formulario, dependencias, búsqueda de secretos y qué haría falta para publicar el repositorio.
- Correos Los correos que envía el sistema Cuándo se envía cada correo del formulario de contacto, del admin y del resumen semanal, a quién, con qué proveedor y cómo se evita el abuso.
- Hoja de vida La hoja de vida, de un JSON a dos PDF Fuente única en cv_data.json, generación automática de los PDF en español e inglés y las decisiones para pasar filtros ATS.
- Perfil de GitHub El README del perfil de GitHub Cómo se arman el README del perfil y sus gráficas, cómo se publica en el repositorio público, qué workflows lo mantienen al día y qué código se publica.
- Operación Workflows, despliegues y ramas Qué hace cada workflow de GitHub Actions, cuándo corre y qué bloquea; los dos sitios de Netlify con sus previews; Dependabot y las ramas main y desarrollo.
- Operación Dominio, DNS y posicionamiento El dominio hgsportafolio.site en Hostinger y Netlify, Search Console, sitemap, canonical, hreflang, datos estructurados y por qué Google aún no muestra el favicon.
- Operación Variables de entorno y lo que falta configurar Cada variable de cada sitio, qué hace y dónde se pone, sin valores, y la lista de pasos pendientes para que el admin, los correos, la analítica y el resumen semanal funcionen.
- Marca personal Marca personal en LinkedIn La guía para el perfil de LinkedIn, los banners y la publicación del portafolio, y cómo se regeneran sus imágenes.
- Historial Cronología del repositorio Los hitos del proyecto por fecha, tomados de git log, desde el README del perfil en 2024 hasta los casos de estudio de ARIA, DevPanel y el propio portafolio, y el resumen semanal, en octubre de 2026.
- Pendientes Lo que falta y lo que conviene mejorar Pasos que dependen de Harol y mejoras sugeridas, cada una con su porqué.
Este repositorio privado (DevCat-HGS/portfolio-hgs en GitHub) reúne la presencia profesional de Harol Guerrero Salgado: el portafolio web, el editor de contenido, la hoja de vida en PDF, el README del perfil de GitHub y el material de LinkedIn. Todo sale de los mismos datos y se publica con un commit en main.
Las piezas
| Pieza | Carpeta | Dónde se ve | Qué es |
|---|---|---|---|
| Portafolio | portfolio/ | https://hgsportafolio.site (sitio de Netlify portafolio-hgs) | Página bilingüe en React 19 + Vite, con los casos de estudio de MIGOZZ (/migozz/), ARIA (/aria/), DevPanel (/devpanel/) y del propio portafolio (/portafolio/). |
| Admin | admin/ | admin.hgsportafolio.site (sitio de Netlify admin-hgs) | Editor propio en React que lee y publica el contenido del portafolio y del CV en este repositorio. También recibe el formulario de contacto, envía sus correos, guarda los mensajes y manda un resumen semanal por correo. |
| Hoja de vida | curriculum/ | portfolio/public/cv/ (botón de descarga del sitio) | Generador en Python que produce el CV en PDF en español e inglés desde cv_data.json. |
| Perfil de GitHub | README.md, README.es.md, profile/, privacity/, scripts/ | Repositorio público DevCat-HGS/DevCat-HGS | README del perfil, con gráficas de lenguajes generadas y copiado al repo público por un workflow. |
linkedin/ | Perfil de LinkedIn (manual) | Guía, banners y publicación con la misma identidad visual del sitio. | |
| Documentación | Doc/ | https://docs.hgsportafolio.site (repo público DevCat-HGS.github.io) | Estos artículos y su página index.html, publicados por el workflow Publish docs en cada push a main que toque Doc/. |
Cómo se conectan
- El contenido visible del portafolio vive en
portfolio/src/content/data/*.jsony el del CV encurriculum/cv_data.json. - El admin edita esos JSON y publica un solo commit en
maina través de una función de Netlify que guarda el token de GitHub. - Ese commit dispara los workflows de GitHub Actions (CV, imágenes, pruebas) y el deploy de Netlify del portafolio.
- El formulario de contacto del portafolio envía cada mensaje a una función del admin, que lo guarda y manda los correos.
- El README del perfil se regenera aparte (gráficas diarias) y se copia al repositorio público.
- Cada lunes, una función programada del admin lee Umami y Search Console y le manda a Harol un resumen de la semana.
El detalle está en arquitectura.
Estado actual
- El portafolio está en línea en el dominio propio
hgsportafolio.site;portafolio-hgs.netlify.appsigue abierto como respaldo (ver dominio y SEO). - El admin acaba de pasar a entrada con PIN más código por correo y sesión firmada; el token de GitHub ya no pasa por el navegador (commit
bf84696, 2026-10-21). - El formulario de contacto ya no usa Netlify Forms: envía al admin, que guarda el mensaje (estación «Mensajes») y, con Resend configurado, envía la copia a Harol y la confirmación al visitante (commit
f4be780, 2026-10-21). - El caso de estudio de ARIA está en
/aria/y/en/aria/, editable desde el admin; la tarjeta y el CV describen ARIA como trabajo de equipo, con S3 Vectors y un tiempo medido (commitsb9d13b1y8bbfdbf, 2026-10-21). - DevPanel, la app de escritorio de código abierto de Harol, tiene caso de estudio en
/devpanel/y/en/devpanel/, tarjeta destacada y una franja propia en la portada después de los proyectos. ARIA y DevPanel comparten la plantillaCaseStudyPage(commits06a3e2by90ff404, 2026-10-21). - El propio portafolio tiene caso de estudio en
/portafolio/y/en/portafolio/, con la misma plantillaCaseStudyPagey una tarjeta destacada después de DevPanel. Como su código es privado, el caso, la tarjeta y el texto de respaldo enlazan a esta documentación endocs.hgsportafolio.site(commit433174c, 2026-10-22). - La documentación se publica en
https://docs.hgsportafolio.sitey su página es siempre clara, sobre papel crema (commits83ccd6by6a21775, 2026-10-22). - SENA Cloud y SensoresAPP tienen repos públicos nuevos y limpios, enlazados desde sus tarjetas. Los repos de clientes se quedan privados (ver perfil de GitHub).
- La analítica con Umami está lista en el código; se activa con
VITE_UMAMI_WEBSITE_ID(solo el UUID) enportafolio-hgs. - El resumen semanal por correo (
weekly-digest) está desplegado, pero no envía nada hasta que se configuren sus variables enadmin-hgs. - Vite 8.3.5 en los dos proyectos; sin alertas abiertas de Dependabot tras
f3089f8. gitleaks revisa el historial en cada push. - El repo sigue privado: hacerlo público pide un repo nuevo con historial limpio, decisión aplazada (ver seguridad).
- La carpeta
img/ya no está en el repositorio (commit236c9d3). - Falta configuración de Harol: las variables del admin en Netlify (incluidas las del formulario y del resumen semanal) y la verificación del dominio en Resend. Mientras falten, el admin no deja entrar y el formulario no envía correos. Lista completa en configuración y pendientes.
- Ramas: solo
main(producción) ydesarrollo.
Índice de artículos
| # | Artículo | De qué va |
|---|---|---|
| 2 | Arquitectura | Carpetas, tecnologías y el camino de un cambio hasta el sitio. |
| 3 | Portafolio | Secciones, componentes, contenido en JSON, idiomas, casos MIGOZZ, ARIA, DevPanel y Portafolio, imágenes, formulario, analítica y pruebas. |
| 4 | Admin | Estaciones (incluidas «Mensajes», ARIA, DevPanel y Portafolio), edición, imágenes, borradores, publicación y resumen semanal. |
| 5 | Seguridad | Entrada al admin, sesiones, límites, intermediario de GitHub, CSP, cabeceras, dependencias, gitleaks y publicación del repo. |
| 6 | Correos | Formulario de contacto, códigos de acceso y resumen semanal, con Resend. |
| 7 | Hoja de vida | Fuente única, generación de los PDF y diseño para ATS. |
| 8 | Perfil de GitHub | README del perfil, gráficas, publicación y qué código se hace público. |
| 9 | CI/CD | Workflows, Netlify, Dependabot y ramas. |
| 10 | Dominio y SEO | Dominio, DNS, Search Console, sitemap y datos estructurados. |
| 11 | Configuración | Variables de entorno por sitio y lo que falta configurar. |
| 12 | Guía, banners y publicación. | |
| 13 | Historial | Cronología del repositorio según git log. |
| 14 | Pendientes | Lo que falta, lo que depende de Harol y mejoras sugeridas. |