No description
  • HTML 90.5%
  • Shell 5.5%
  • Python 2.1%
  • JavaScript 1.4%
  • Dockerfile 0.5%
Find a file
andres20980 f0249eb647
Some checks failed
CI / detectar (push) Successful in 16s
CI / secretos (push) Successful in 16s
CI / workflows (push) Failing after 25s
CI / tests (push) Successful in 14s
CI / calidad (push) Successful in 22s
CI / compilar (push) Successful in 11s
CI / dependencias (push) Successful in 13s
CI / sbom (push) Successful in 18s
CI / resultado (push) Failing after 11s
CI / ci (push) Failing after 0s
Merge pull request 'chore(ci): actualizar la CI común al SHA con SBOM' (#2) from session/20260726-1946-bump-ci into main
2026-07-26 19:56:03 +00:00
.forgejo/workflows chore(ci): actualizar la CI común al SHA con SBOM 2026-07-26 21:53:16 +02:00
.understand-anything Upgrade Megacore to 2026 standard with Biome, Lefthook, and security gates 2026-07-12 14:41:25 +02:00
docs/superpowers fix(cv): link repository portal 2026-07-23 14:17:05 +02:00
openwiki Initialize OpenWiki documentation 2026-07-12 13:35:20 +02:00
scripts feat(ops): add non-interactive deploy path via GCP service account 2026-07-26 21:28:01 +02:00
tests fix(cv): point repository link to git.andres20980.es 2026-07-26 20:52:33 +02:00
.gitignore feat(ops): add non-interactive deploy path via GCP service account 2026-07-26 21:28:01 +02:00
.no-mistakes.yaml Upgrade Megacore to 2026 standard with Biome, Lefthook, and security gates 2026-07-12 14:41:25 +02:00
.nojekyll chore: agregar .nojekyll para desactivar la compilacion de Jekyll en GitHub Pages 2026-07-04 16:06:21 +02:00
.relogin.env feat(ops): add non-interactive deploy path via GCP service account 2026-07-26 21:28:01 +02:00
AGENTS.md docs(gitops): declare trunk-based delivery policy 2026-07-25 09:52:12 +02:00
biome.json Evolve Megacore standard to 2026: Sync migrated biome.json and configurations 2026-07-12 16:06:40 +02:00
compile_pdfs.py feat: implementar descarga directa de PDFs vectoriales estáticos y script de compilación 2026-07-04 23:00:55 +02:00
CONTRIBUTING.md Apply Megacore standards: no-mistakes gate, credentials, and open-source files 2026-07-12 13:13:36 +02:00
CV_Andres_Sanchez_CAT.md feat(cv): enrich anonymized experience and ATS PDFs 2026-07-23 10:37:04 +02:00
CV_Andres_Sanchez_CAT.pdf fix(cv): point repository link to git.andres20980.es 2026-07-26 20:52:33 +02:00
CV_Andres_Sanchez_EN.md feat(cv): enrich anonymized experience and ATS PDFs 2026-07-23 10:37:04 +02:00
CV_Andres_Sanchez_EN.pdf fix(cv): point repository link to git.andres20980.es 2026-07-26 20:52:33 +02:00
CV_Andres_Sanchez_ES.md feat(cv): enrich anonymized experience and ATS PDFs 2026-07-23 10:37:04 +02:00
CV_Andres_Sanchez_ES.pdf fix(cv): point repository link to git.andres20980.es 2026-07-26 20:52:33 +02:00
Dockerfile Evolve Megacore standard to 2026: Add Dockerfile and nginx.conf 2026-07-12 15:59:23 +02:00
generate_pdfs.js fix: remaquetado en dos columnas de alta fidelidad, desanclado de cabecera y compilación con Chromium 2026-07-04 23:29:32 +02:00
index.html fix(cv): point repository link to git.andres20980.es 2026-07-26 20:52:33 +02:00
lefthook.yml chore(ops): integrate RTK proxy and automated OpenWiki CI pipeline 2026-07-15 14:46:18 +02:00
LICENSE Apply Megacore standards: no-mistakes gate, credentials, and open-source files 2026-07-12 13:13:36 +02:00
mem0.yaml Evolve Megacore standard to 2026: Upgrade to Lucide and Mem0 2026-07-12 15:19:59 +02:00
nginx.conf Evolve Megacore standard to 2026: Add Dockerfile and nginx.conf 2026-07-12 15:59:23 +02:00
profile.jpg Use local profile.jpg instead of temporary external LinkedIn CDN URL 2026-07-06 08:29:47 +02:00
README.md docs(readme): generate specific project documentation based on codebase analysis 2026-07-12 20:39:30 +02:00
SECURITY.md Apply Megacore standards: no-mistakes gate, credentials, and open-source files 2026-07-12 13:13:36 +02:00

📄 Curriculum Vitae - Andrés Sánchez Martín

Repositorio centralizado que gestiona, compila y despliega el currículum profesional de Andrés Sánchez Martín de forma automatizada y multiidioma. Este proyecto no solo actúa como un portfolio web interactivo y responsivo, sino que también implementa un flujo de compilación para generar versiones en formato PDF de alta calidad a partir de documentos fuente en Markdown.

El CV está completamente localizado en tres idiomas:

  • Español (ES)
  • Catalán (CAT)
  • Inglés (EN)

🚀 Características Principales

  • Web Interactiva (SPA): Una interfaz web moderna, limpia y rápida basada en index.html con soporte nativo de temas claro y oscuro (prefers-color-scheme), tipografía optimizada mediante Inter y diseño adaptativo para móviles y escritorio.
  • Generación Automatizada de PDFs: Scripts específicos en Python (compile_pdfs.py) y Node.js (generate_pdfs.js) que transforman el contenido estructurado en Markdown directamente a documentos PDF listos para imprimir o enviar.
  • Soporte Multiidioma: Archivos Markdown dedicados para cada idioma (CV_Andres_Sanchez_ES.md, CV_Andres_Sanchez_CAT.md y CV_Andres_Sanchez_EN.md) que sirven de única fuente de verdad para la web y los PDF.
  • Despliegue Contenedorizado: Configuración lista para producción con Docker utilizando una arquitectura multi-etapa que compila los recursos y los sirve de manera eficiente a través de Nginx.

🛠️ Tecnologías y Librerías

  • Frontend: HTML5, CSS3 (Variables CSS, Flexbox, CSS Grid), Vanilla JavaScript.
  • Automatización & Scripting:
    • Node.js (v20+) para la automatización con generate_pdfs.js (utilizando automatizadores de navegación para captura/conversión).
    • Python 3 para compilación alternativa y procesamientos ligeros con compile_pdfs.py.
  • Servidor Web & Despliegue: Nginx (optimizado mediante nginx.conf) y Docker.
  • Calidad de Código y Formateo: Biome para un análisis estático y formateo instantáneo de archivos JavaScript, HTML y JSON.

📂 Estructura del Repositorio

La arquitectura del proyecto está organizada de la siguiente manera:

├── .no-mistakes.yaml         # Configuración del proxy de validación pre-commit/pre-push
├── .nojekyll                 # Evita que GitHub Pages procese carpetas con guion bajo
├── AGENTS.md                 # Definiciones para integraciones con agentes de IA
├── biome.json                # Reglas de linting y formateo rápido con Biome
├── compile_pdfs.py           # Script Python para compilación de PDFs
├── CONTRIBUTING.md           # Guía de contribución al proyecto
├── CV_Andres_Sanchez_CAT.md  # Fuente del CV en Catalán
├── CV_Andres_Sanchez_CAT.pdf # PDF compilado en Catalán
├── CV_Andres_Sanchez_EN.md   # Fuente del CV en Inglés
├── CV_Andres_Sanchez_EN.pdf  # PDF compilado en Inglés
├── CV_Andres_Sanchez_ES.md   # Fuente del CV en Español
├── CV_Andres_Sanchez_ES.pdf  # PDF compilado en Español
├── Dockerfile                # Dockerfile multi-etapa (Build Node -> Serve Nginx)
├── generate_pdfs.js          # Script Node.js para exportar los HTML/MD a PDF
├── index.html                # SPA interactiva principal (CV Web)
├── lefthook.yml              # Configuración de Git Hooks (Lefthook)
├── LICENSE                   # Licencia del proyecto
├── mem0.yaml                 # Configuración de memoria persistente para el entorno
├── nginx.conf                # Configuración de Nginx para servir la SPA de forma segura
├── profile.jpg               # Imagen de perfil para la web del CV
├── SECURITY.md               # Política de seguridad y reporte de vulnerabilidades
└── scripts/
    ├── security_audit.sh     # Auditoría de seguridad local con Perplexity Bumblebee
    └── status.sh             # Dashboard de estado y validación de conformidad local

💻 Instalación y Uso Local

Requisitos Previos

  • Node.js (Versión 20 o superior recomendada)
  • Python (Versión 3.9 o superior, opcional para compilación alternativa)
  • Docker (Opcional, para ejecución en contenedores)

1. Clonar el repositorio

git clone https://github.com/tu-usuario/cv.git
cd cv

2. Ejecutar la Web en Local

Puedes abrir el archivo index.html directamente en tu navegador o servirlo con cualquier servidor estático local:

Usando Node.js (npx):

npx serve .

Usando Python:

python3 -m http.server 8000

Visita http://localhost:8000 en tu navegador.

3. Generar los PDFs de Forma Local

Para compilar nuevas versiones PDF a partir de los cambios realizados en los archivos Markdown:

Opción JavaScript (Recomendada):

npm install # Instala las dependencias necesarias de generación (Puppeteer, etc.)
node generate_pdfs.js

Opción Python:

pip install -r requirements.txt # Si aplica, para las dependencias de compilación
python compile_pdfs.py

4. Ejecución con Docker

Si prefieres emular el entorno de producción exacto utilizando Docker:

# Construir la imagen Docker
docker build -t cv-andres-sanchez .

# Ejecutar el contenedor en el puerto 8080
docker run -d -p 8080:80 cv-andres-sanchez

La aplicación web estará disponible en http://localhost:8080.


⚙️ Gobernanza del Proyecto

Este repositorio cuenta con un ecosistema de desarrollo moderno para garantizar que los commits y los entregables mantengan siempre el estándar de calidad más alto de Megasoft:

  • Control de Calidad en Commits: Gestionado mediante lefthook (lefthook.yml), el cual ejecuta validaciones y formateos automáticos con biome antes de permitir cualquier confirmación de código.
  • Validaciones de Seguridad: Se incluye un script de auditoría (scripts/security_audit.sh) basado en Bumblebee para analizar estáticamente posibles brechas de seguridad o fugas de credenciales locales.
  • Control de Integridad de Cambios: El archivo .no-mistakes.yaml actúa como proxy de validación para evitar que cambios erróneos o configuraciones incompletas se suban al flujo principal de integración.
  • Verificación de Estado: Puedes ejecutar el script de diagnóstico general para comprobar la salud del proyecto:
    bash scripts/status.sh
    

Megacore - Automatizando y estandarizando la calidad del software en Megasoft.