- HTML 90.5%
- Shell 5.5%
- Python 2.1%
- JavaScript 1.4%
- Dockerfile 0.5%
|
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
|
||
|---|---|---|
| .forgejo/workflows | ||
| .understand-anything | ||
| docs/superpowers | ||
| openwiki | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| .no-mistakes.yaml | ||
| .nojekyll | ||
| .relogin.env | ||
| AGENTS.md | ||
| biome.json | ||
| compile_pdfs.py | ||
| CONTRIBUTING.md | ||
| CV_Andres_Sanchez_CAT.md | ||
| CV_Andres_Sanchez_CAT.pdf | ||
| CV_Andres_Sanchez_EN.md | ||
| CV_Andres_Sanchez_EN.pdf | ||
| CV_Andres_Sanchez_ES.md | ||
| CV_Andres_Sanchez_ES.pdf | ||
| Dockerfile | ||
| generate_pdfs.js | ||
| index.html | ||
| lefthook.yml | ||
| LICENSE | ||
| mem0.yaml | ||
| nginx.conf | ||
| profile.jpg | ||
| README.md | ||
| SECURITY.md | ||
📄 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.htmlcon 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.mdyCV_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.
- Node.js (v20+) para la automatización con
- 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 conbiomeantes 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.yamlactú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.