refactor: restructure project to classic MVC pattern
This commit is contained in:
25
src/infrastructure/mock/certification.json
Normal file
25
src/infrastructure/mock/certification.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"content": [
|
||||
{
|
||||
"id": "cert1",
|
||||
"name": "AWS Certified Developer Associate",
|
||||
"issuer": "Amazon Web Services",
|
||||
"date": "2022",
|
||||
"credentialId": "AWS-123456"
|
||||
},
|
||||
{
|
||||
"id": "cert2",
|
||||
"name": "MongoDB Certified Developer",
|
||||
"issuer": "MongoDB Inc.",
|
||||
"date": "2021",
|
||||
"credentialId": "MONGO-789012"
|
||||
},
|
||||
{
|
||||
"id": "cert3",
|
||||
"name": "Certified Scrum Master",
|
||||
"issuer": "Scrum Alliance",
|
||||
"date": "2020",
|
||||
"credentialId": "CSM-345678"
|
||||
}
|
||||
]
|
||||
}
|
||||
83
src/infrastructure/mock/chatbot.json
Normal file
83
src/infrastructure/mock/chatbot.json
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"content": {
|
||||
"welcome": {
|
||||
"message": "¡Hola! 👋 Soy el asistente virtual de Pablo. ¿Te interesa saber sobre su trabajo en backend, despliegue automatizado o LLMs locales?",
|
||||
"quickActions": [
|
||||
{
|
||||
"text": "¿Cuál es su experiencia laboral?",
|
||||
"category": "experience"
|
||||
},
|
||||
{
|
||||
"text": "¿Qué tecnologías domina?",
|
||||
"category": "skills"
|
||||
},
|
||||
{
|
||||
"text": "Cuéntame sobre sus proyectos",
|
||||
"category": "projects"
|
||||
},
|
||||
{
|
||||
"text": "¿Cómo puedo contactarlo?",
|
||||
"category": "contact"
|
||||
}
|
||||
]
|
||||
},
|
||||
"responses": {
|
||||
"experience": {
|
||||
"keywords": [
|
||||
"experiencia",
|
||||
"trabajo",
|
||||
"laboral",
|
||||
"empresa",
|
||||
"puesto",
|
||||
"carrera"
|
||||
],
|
||||
"response": "Pablo trabaja actualmente como Arquitecto de Software en la Xunta de Galicia, liderando desarrollos backend complejos. Anteriormente ha trabajado como consultor y freelance, siempre enfocado en eficiencia y automatización."
|
||||
},
|
||||
"skills": {
|
||||
"keywords": [
|
||||
"habilidades",
|
||||
"tecnologías",
|
||||
"stack",
|
||||
"lenguajes",
|
||||
"frameworks"
|
||||
],
|
||||
"response": "Domina tecnologías como Java (Spring Boot), Vue.js (Quasar), despliegue automatizado con Docker y GitHub Actions, y recientemente integración con modelos LLM offline."
|
||||
},
|
||||
"projects": {
|
||||
"keywords": [
|
||||
"proyectos",
|
||||
"desarrollado",
|
||||
"creado",
|
||||
"portfolio",
|
||||
"aplicaciones"
|
||||
],
|
||||
"response": "Ha desarrollado una app LLM offline en Java, un sistema de reservas autónomo para un hostel, y una plataforma completa de tramitación electrónica con firma digital y backend distribuido."
|
||||
},
|
||||
"contact": {
|
||||
"keywords": [
|
||||
"contacto",
|
||||
"email",
|
||||
"teléfono",
|
||||
"linkedin",
|
||||
"ubicación"
|
||||
],
|
||||
"response": "Puedes contactar a Pablo en pablo@pablotj.com o vía LinkedIn: linkedin.com/in/pablotj. Vive en Galicia, España."
|
||||
},
|
||||
"education": {
|
||||
"keywords": [
|
||||
"educación",
|
||||
"estudios",
|
||||
"universidad",
|
||||
"carrera",
|
||||
"certificaciones"
|
||||
],
|
||||
"response": "Estudió Ingeniería Informática en la Universidade de Vigo. Está certificado en arquitectura Java, GitOps y modelos LLM locales."
|
||||
}
|
||||
},
|
||||
"fallback": [
|
||||
"Buena pregunta. Pablo valora mucho el rendimiento y la mantenibilidad en sus proyectos.",
|
||||
"Interesante. Él suele aplicar principios de arquitectura limpia y buenas prácticas DevOps.",
|
||||
"Siempre busca mantener la simplicidad sin sacrificar funcionalidad o seguridad."
|
||||
]
|
||||
}
|
||||
}
|
||||
12
src/infrastructure/mock/education.json
Normal file
12
src/infrastructure/mock/education.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"content": [
|
||||
{
|
||||
"id": "edu1",
|
||||
"institution": "CIFP Daniel Castelao, Vigo",
|
||||
"degree": "Ciclo Formativo de Grado Superior en Desarrollo de Aplicaciones Multiplataforma",
|
||||
"period": "2015 - 2017",
|
||||
"description": "Formación técnica especializada en desarrollo de aplicaciones móviles y de escritorio multiplataforma, bases de datos, y programación orientada a objetos.",
|
||||
"grade": "No aplicable"
|
||||
}
|
||||
]
|
||||
}
|
||||
77
src/infrastructure/mock/experience.json
Normal file
77
src/infrastructure/mock/experience.json
Normal file
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"content": [
|
||||
{
|
||||
"id": "exp1",
|
||||
"company": "Bahia Software",
|
||||
"position": "Analista Programador Senior y Líder Tecnológico",
|
||||
"period": "2019 - Presente",
|
||||
"location": "O Milladoiro, Galicia, España / Remoto",
|
||||
"description": "Evolución desde programador junior hasta líder tecnológico. Responsable de análisis, desarrollo y liderazgo técnico.",
|
||||
"technologies": [
|
||||
"Java 8",
|
||||
"Java 11",
|
||||
"Spring Boot",
|
||||
"Spring Framework",
|
||||
"Spring Security",
|
||||
"Spring Cloud",
|
||||
"Docker",
|
||||
"Jenkins",
|
||||
"Keycloak",
|
||||
"Vue.js",
|
||||
"Oracle DB",
|
||||
"MariaDB",
|
||||
"SOAP",
|
||||
"REST",
|
||||
"WebLogic",
|
||||
"Tomcat",
|
||||
"SonarQube",
|
||||
"JMS",
|
||||
"Arquitectura Hexagonal"
|
||||
],
|
||||
"achievements": [
|
||||
"Liderazgo técnico en proyectos clave para la AMTEGA",
|
||||
"Automatización de despliegues y calidad de código con Sonar y Jenkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "exp2",
|
||||
"company": "Optare Solutions",
|
||||
"position": "Programador Junior",
|
||||
"period": "2018 - 2019",
|
||||
"location": "Vigo, Galicia, España",
|
||||
"description": "Inicio profesional con beca FEUGA y posterior incorporación como programador junior. Participación en proyectos Java, migración de versiones y tareas puntuales relacionadas con VoIP y AWS.",
|
||||
"technologies": [
|
||||
"Java",
|
||||
"Java 8",
|
||||
"Java 11",
|
||||
"Angular",
|
||||
"VoIP",
|
||||
"AWS"
|
||||
],
|
||||
"achievements": [
|
||||
"Migración de aplicaciones de Java 8 a Java 11",
|
||||
"Colaboración en desarrollo frontend con Angular",
|
||||
"Participación en entornos productivos de telecomunicaciones"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "exp3",
|
||||
"company": "Kidcode",
|
||||
"position": "Tutor de programación didáctica",
|
||||
"period": "2017 - 2018",
|
||||
"location": "Galicia, España",
|
||||
"description": "Tutor de tiempo libre para iniciación a la programación en niños de entre 5 y 12 años. Uso de herramientas educativas como Arduino, Raspberry Pi, Lego y entornos low-code.",
|
||||
"technologies": [
|
||||
"Arduino",
|
||||
"Raspberry Pi",
|
||||
"Lego",
|
||||
"Low-code"
|
||||
],
|
||||
"achievements": [
|
||||
"Diseño de actividades didácticas adaptadas por edades",
|
||||
"Fomento del pensamiento computacional en edades tempranas",
|
||||
"Introducción práctica a la robótica educativa"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
23
src/infrastructure/mock/profile.json
Normal file
23
src/infrastructure/mock/profile.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"content": {
|
||||
"id": -1,
|
||||
"name": "Pablo de la Torre",
|
||||
"title": "Softaware Developer",
|
||||
"subtitle": "Especializado en Java",
|
||||
"email": "contact@pablotj.com",
|
||||
"phone": "",
|
||||
"location": "Pontevedra, Galicia, España",
|
||||
"avatar": "assets/avatar-bot.png",
|
||||
"bio": "Desarrollador de software con más de 7 años de experiencia. Apasionado por crear sistemas sólidos, automatizar tareas y trabajar con contenedores. Recientemente, he empezado a explorar modelos LLM locales como parte de mis intereses técnicos.",
|
||||
"social": [
|
||||
{
|
||||
"url": "https://github.com/pablotj",
|
||||
"platform": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://linkedin.com/in/pablotj",
|
||||
"platform": "linkedin"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
78
src/infrastructure/mock/project.json
Normal file
78
src/infrastructure/mock/project.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"content": [
|
||||
{
|
||||
"id": "proj1",
|
||||
"title": "E-commerce Platform",
|
||||
"description": "Plataforma completa de comercio electrónico con más de 50,000 usuarios activos mensuales",
|
||||
"image": "/placeholder.svg?height=300&width=400",
|
||||
"technologies": [
|
||||
"Vue.js",
|
||||
"Node.js",
|
||||
"PostgreSQL",
|
||||
"Redis",
|
||||
"Stripe"
|
||||
],
|
||||
"features": [
|
||||
"Integración con múltiples pasarelas de pago",
|
||||
"Panel de administración con analytics",
|
||||
"Sistema de inventario en tiempo real"
|
||||
],
|
||||
"metrics": {
|
||||
"users": "50,000+",
|
||||
"uptime": "99.9%",
|
||||
"loadTime": "2s"
|
||||
},
|
||||
"demo": "https://demo-ecommerce.com",
|
||||
"repository": "https://github.com/pablo/ecommerce"
|
||||
},
|
||||
{
|
||||
"id": "proj2",
|
||||
"title": "Real-time Analytics Dashboard",
|
||||
"description": "Dashboard empresarial con visualizaciones interactivas y procesamiento de más de 1M eventos/día",
|
||||
"image": "/placeholder.svg?height=300&width=400",
|
||||
"technologies": [
|
||||
"React",
|
||||
"D3.js",
|
||||
"Socket.io",
|
||||
"InfluxDB",
|
||||
"Node.js"
|
||||
],
|
||||
"features": [
|
||||
"Visualizaciones en tiempo real",
|
||||
"Exportación de reportes automatizada",
|
||||
"Alertas personalizables"
|
||||
],
|
||||
"metrics": {
|
||||
"events": "1M+/día",
|
||||
"reduction": "70% tiempo análisis",
|
||||
"users": "500+"
|
||||
},
|
||||
"demo": "https://analytics-demo.com",
|
||||
"repository": "https://github.com/pablo/analytics"
|
||||
},
|
||||
{
|
||||
"id": "proj3",
|
||||
"title": "Microservices Architecture",
|
||||
"description": "Migración de monolito a arquitectura de microservicios con 12 servicios distribuidos",
|
||||
"image": "/placeholder.svg?height=300&width=400",
|
||||
"technologies": [
|
||||
"Node.js",
|
||||
"Docker",
|
||||
"Kubernetes",
|
||||
"AWS EKS",
|
||||
"MongoDB"
|
||||
],
|
||||
"features": [
|
||||
"Event Sourcing y CQRS",
|
||||
"Monitoreo con Prometheus",
|
||||
"Auto-scaling automático"
|
||||
],
|
||||
"metrics": {
|
||||
"services": "12",
|
||||
"latencyReduction": "60%",
|
||||
"availability": "99.95%"
|
||||
},
|
||||
"repository": "https://github.com/pablo/microservices"
|
||||
}
|
||||
]
|
||||
}
|
||||
201
src/infrastructure/mock/skill.json
Normal file
201
src/infrastructure/mock/skill.json
Normal file
@@ -0,0 +1,201 @@
|
||||
{
|
||||
"content": [
|
||||
{
|
||||
"name": "Backend",
|
||||
"icon": "Server",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Java",
|
||||
"level": 95,
|
||||
"years": 7
|
||||
},
|
||||
{
|
||||
"name": "Spring Boot",
|
||||
"level": 90,
|
||||
"years": 6
|
||||
},
|
||||
{
|
||||
"name": "Spring Framework",
|
||||
"level": 85,
|
||||
"years": 6
|
||||
},
|
||||
{
|
||||
"name": "Spring Security",
|
||||
"level": 80,
|
||||
"years": 5
|
||||
},
|
||||
{
|
||||
"name": "Spring Cloud",
|
||||
"level": 75,
|
||||
"years": 3
|
||||
},
|
||||
{
|
||||
"name": "Node.js",
|
||||
"level": 40,
|
||||
"years": 1
|
||||
},
|
||||
{
|
||||
"name": "Python",
|
||||
"level": 30,
|
||||
"years": 1
|
||||
},
|
||||
{
|
||||
"name": "JUnit",
|
||||
"level": 80,
|
||||
"years": 5
|
||||
},
|
||||
{
|
||||
"name": "Mockito",
|
||||
"level": 75,
|
||||
"years": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DevOps",
|
||||
"icon": "Server",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Docker",
|
||||
"level": 90,
|
||||
"years": 5
|
||||
},
|
||||
{
|
||||
"name": "Jenkins",
|
||||
"level": 85,
|
||||
"years": 4
|
||||
},
|
||||
{
|
||||
"name": "Keycloak",
|
||||
"level": 80,
|
||||
"years": 3
|
||||
},
|
||||
{
|
||||
"name": "CI/CD",
|
||||
"level": 85,
|
||||
"years": 4
|
||||
},
|
||||
{
|
||||
"name": "SonarQube",
|
||||
"level": 75,
|
||||
"years": 3
|
||||
},
|
||||
{
|
||||
"name": "Linux",
|
||||
"level": 85,
|
||||
"years": 6
|
||||
},
|
||||
{
|
||||
"name": "Git",
|
||||
"level": 90,
|
||||
"years": 6
|
||||
},
|
||||
{
|
||||
"name": "SVN",
|
||||
"level": 60,
|
||||
"years": 4
|
||||
},
|
||||
{
|
||||
"name": "Kubernetes",
|
||||
"level": 40,
|
||||
"years": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Base de Datos",
|
||||
"icon": "Server",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Oracle",
|
||||
"level": 85,
|
||||
"years": 5
|
||||
},
|
||||
{
|
||||
"name": "MariaDB",
|
||||
"level": 80,
|
||||
"years": 4
|
||||
},
|
||||
{
|
||||
"name": "JMS",
|
||||
"level": 75,
|
||||
"years": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Frontend",
|
||||
"icon": "Server",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Angular",
|
||||
"level": 85,
|
||||
"years": 5
|
||||
},
|
||||
{
|
||||
"name": "Bootstrap",
|
||||
"level": 75,
|
||||
"years": 4
|
||||
},
|
||||
{
|
||||
"name": "TypeScript",
|
||||
"level": 70,
|
||||
"years": 3
|
||||
},
|
||||
{
|
||||
"name": "Vue.js",
|
||||
"level": 40,
|
||||
"years": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Methodologies",
|
||||
"icon": "Server",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Agile",
|
||||
"level": 85,
|
||||
"years": 5
|
||||
},
|
||||
{
|
||||
"name": "Scrum",
|
||||
"level": 80,
|
||||
"years": 4
|
||||
},
|
||||
{
|
||||
"name": "Kanban",
|
||||
"level": 70,
|
||||
"years": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Monitoring",
|
||||
"icon": "Server",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Prometheus",
|
||||
"level": 30,
|
||||
"years": 1
|
||||
},
|
||||
{
|
||||
"name": "Grafana",
|
||||
"level": 30,
|
||||
"years": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Languages",
|
||||
"icon": "Server",
|
||||
"skills": [
|
||||
{
|
||||
"name": "Inglés",
|
||||
"level": 80,
|
||||
"years": 7
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user