diff --git a/data/cv-es.json b/data/cv-es.json index 620949d..d2b9086 100644 --- a/data/cv-es.json +++ b/data/cv-es.json @@ -333,14 +333,35 @@ "APIs OpenAI y Anthropic" ] }, + { + "category": "Lenguajes de Programación", + "proficiency": 4, + "items": [ + "JavaScript (ES6+)", + "Go (Golang)", + "Java", + "Groovy", + "PHP", + "XML", + "XSLT", + "Action Script", + "Shell Scripts (Unix)", + "C", + "C++" + ] + }, { "category": "Ecosistema JavaScript", "proficiency": 5, "items": [ "JavaScript Avanzado (ES6+)", "React y Ecosistema React", + "Redux", + "Flux", "Node.js y Express", - "Webpack, Vite, Herramientas de Build Modernas" + "Webpack, Vite", + "Gulp", + "Grunt" ] }, { @@ -350,7 +371,43 @@ "HTML5, CSS3, Web Semántica", "Diseño y Desarrollo de APIs REST", "LESS, SASS, Preprocesadores CSS", - "Diseño Responsive y Mobile-First" + "Diseño Responsive y Mobile-First", + "JSP", + "PHP", + "Handlebars", + "Moustache", + "Velocity", + "Freemarker", + "jQuery", + "mooTools", + "DOM", + "Ajax", + "SEO", + "WebServices" + ] + }, + { + "category": "Frameworks PHP", + "proficiency": 4, + "items": [ + "Yii Framework", + "Zend Framework", + "API de Wordpress", + "API de Joomla" + ] + }, + { + "category": "Frameworks Java", + "proficiency": 4, + "items": [ + "Play! Framework", + "Struts", + "Spring Framework", + "Hibernate", + "Ibatis", + "Magnolia CMS", + "XWiki", + "Framework TESEO" ] }, { @@ -364,6 +421,33 @@ "PHP" ] }, + { + "category": "Servidores de Aplicaciones", + "proficiency": 4, + "items": [ + "Apache", + "WAMP", + "MAMP", + "Tomcat", + "JBoss", + "Resin", + "Jetty", + "Websphere", + "Weblogic" + ] + }, + { + "category": "CMS y Entornos de Producción Web", + "proficiency": 4, + "items": [ + "Joomla", + "Wordpress", + "RapidWeaver", + "Servoy", + "WebRatio", + "Magnolia CMS" + ] + }, { "category": "Bases de Datos", "proficiency": 4, @@ -372,6 +456,8 @@ "MySQL", "Oracle", "MongoDB (NoSQL)", + "Hypersonic", + "Dominio de SQL", "Diseño y Optimización de Bases de Datos" ] }, @@ -394,6 +480,16 @@ "Testing Automatizado", "Metodologías Ágiles" ] + }, + { + "category": "Herramientas de Diseño", + "proficiency": 3, + "items": [ + "Corel Draw", + "Adobe PhotoShop", + "Adobe Illustrator", + "GIMP" + ] } ], "soft_skills": [ @@ -405,24 +501,38 @@ "Formación y Mentoría", "Gestión de Relaciones con Clientes", "Flexibilidad y Adaptabilidad", - "Marketing y Gestión de Recursos" + "Marketing y Gestión de Recursos", + "Preparación y puesta en marcha de proyectos", + "Comunicación fluida con los clientes", + "Contratación de personal", + "Gestión de tareas", + "Reportes mensuales" ] }, "languages": [ { "language": "Español", "proficiency": "Nativo", - "level": 5 + "level": 5, + "detail": "Nativo" + }, + { + "language": "Catalán", + "proficiency": "Comprensión", + "level": 2, + "detail": "Comprensión" }, { "language": "Inglés", "proficiency": "Profesional Avanzado", - "level": 4 + "level": 4, + "detail": "Oral (Medio/Alto) Escrito (Alto)" }, { "language": "Italiano", "proficiency": "Intermedio", - "level": 3 + "level": 3, + "detail": "Oral (Medio/Alto) Escrito (Medio)" } ], "projects": [ @@ -559,8 +669,84 @@ "description": "Certificación de protección de datos y cumplimiento GDPR" } ], + "courses": [ + { + "title": "Servoy World 2011", + "institution": "Servoy", + "location": "Amsterdam", + "date": "2011-02", + "duration": "3 días", + "description": "Convención bianual que se celebra en Amsterdam en la que se discute acerca del mundo Servoy." + }, + { + "title": "Formador de Formadores", + "institution": "FOREM Extremadura", + "location": "Cáceres", + "date": "2009-06", + "duration": "150 horas", + "description": "Realizado con aprovechamiento curso de Metodología Didáctica (Formador de Formadores)" + }, + { + "title": "Windows 2003 Server", + "institution": "Cámara de Comercio de Cáceres", + "location": "Cáceres", + "date": "2006-01", + "duration": "80 horas", + "description": "Curso de 80 Horas impartido por la Cámara de Comercio de Cáceres." + }, + { + "title": "I Jornada Extremeña sobre la Industria del Software", + "institution": "Universidad de Extremadura", + "location": "Cáceres", + "date": "2005-07", + "duration": "3 días", + "description": "Jornadas de 3 días de duración impartidas por la Universidad de Extremadura." + } + ], + "references": [ + { + "title": "Cartas de recomendación de TwenTiC", + "url": "http://www.drolosoft.com/2010/downloads/recomendacion.pdf", + "type": "recommendation" + }, + { + "title": "Carta de presentación", + "url": "http://www.domestika.org/empleo/demanda/txeo", + "type": "presentation" + }, + { + "title": "Portfolio Completo (Inglés)", + "url": "http://www.behance.net/txeo", + "type": "portfolio" + }, + { + "title": "Portfolio Completo (Castellano)", + "url": "http://www.domestika.org/portfolios/txeo", + "type": "portfolio" + }, + { + "title": "Perfil de LinkedIn", + "url": "https://www.linkedin.com/in/juan-andr%C3%A9s-moreno-rubio-3277729/", + "type": "profile" + }, + { + "title": "Perfil de Tecnoempleo", + "url": "https://www.tecnoempleo.com/juan-andres-moreno-rubio.mpt", + "type": "profile" + }, + { + "title": "Currículum Vitae en PDF en Inglés", + "url": "http://www.morenoyrubio.com/cv/cv_jamr_2021_en.pdf", + "type": "cv" + }, + { + "title": "Currículum Vitae Cronológico", + "url": "http://morenoyrubio.com/cv/cv_cronologico_jamr_2021_es.pdf", + "type": "cv" + } + ], "other": { - "driverLicense": "Tipo C" + "driverLicense": "Tipo B" }, "meta": { "version": "2024", diff --git a/internal/models/cv.go b/internal/models/cv.go index ebcb2e9..43a59c6 100644 --- a/internal/models/cv.go +++ b/internal/models/cv.go @@ -18,6 +18,8 @@ type CV struct { Projects []Project `json:"projects"` Awards []Award `json:"awards"` Certifications []Certification `json:"certifications"` + Courses []Course `json:"courses"` + References []Reference `json:"references"` Other Other `json:"other"` Meta Meta `json:"meta"` } @@ -90,6 +92,7 @@ type Language struct { Language string `json:"language"` Proficiency string `json:"proficiency"` Level int `json:"level"` + Detail string `json:"detail,omitempty"` // Optional detail like "Oral (Medio/Alto) Escrito (Alto)" } type Project struct { @@ -116,6 +119,21 @@ type Certification struct { Description string `json:"description"` } +type Course struct { + Title string `json:"title"` + Institution string `json:"institution"` + Location string `json:"location"` + Date string `json:"date"` + Duration string `json:"duration"` + Description string `json:"description"` +} + +type Reference struct { + Title string `json:"title"` + URL string `json:"url"` + Type string `json:"type"` // "recommendation", "portfolio", "profile", "cv", "presentation" +} + type Other struct { DriverLicense string `json:"driverLicense"` } diff --git a/static/css/main.css b/static/css/main.css index 4a7c0f2..c607c09 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -427,6 +427,73 @@ a:hover { .language-item { font-size: 0.9rem; color: var(--text-dark); + margin-bottom: 0.5rem; +} + +.language-item small { + display: block; + font-size: 0.8em; + margin-top: 0.2rem; + font-style: italic; +} + +/* Courses */ +.course-item { + margin-bottom: 1rem; + padding-bottom: 0.8rem; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.course-item:last-child { + border-bottom: none; + padding-bottom: 0; + margin-bottom: 0; +} + +.course-item strong { + font-size: 0.95em; + color: var(--text-dark); + line-height: 1.3; +} + +.course-item small { + display: block; + font-size: 0.85em; + color: var(--text-gray); + margin-top: 0.2rem; +} + +.course-desc { + font-size: 0.85em; + color: var(--text-gray); + margin-top: 0.4rem; + line-height: 1.4; + text-align: justify; +} + +/* References */ +.reference-item { + margin-bottom: 0.6rem; + line-height: 1.4; +} + +.reference-item a { + font-size: 0.9em; + color: var(--accent-blue); + text-decoration: none; + word-break: break-word; +} + +.reference-item a:hover { + text-decoration: underline; +} + +.ref-type { + display: block; + font-size: 0.8em; + color: var(--text-gray); + font-style: italic; + margin-top: 0.2rem; } /* Footer */ diff --git a/templates/cv-content.html b/templates/cv-content.html index 337f192..54e1d5d 100644 --- a/templates/cv-content.html +++ b/templates/cv-content.html @@ -13,39 +13,70 @@ @@ -119,15 +150,4 @@ {{end}} - -
-

{{if eq .Lang "es"}}Idiomas{{else}}Languages{{end}}

-
- {{range .CV.Languages}} -
- {{.Language}}: {{.Proficiency}} -
- {{end}} -
-
diff --git a/templates/index.html b/templates/index.html index bbe99db..74256e4 100644 --- a/templates/index.html +++ b/templates/index.html @@ -137,15 +137,16 @@
- +