Portfolio profesional
La web reúne mi experiencia profesional, formación, competencias técnicas y proyectos. Mi perfil combina soporte, infraestructura, Microsoft 365, Intune, Azure, automatización, scripting y desarrollo de aplicaciones web.
Mi portfolio profesional, laboratorio técnico y espacio de experimentación web. Un proyecto desarrollado desde cero para reunir experiencia, proyectos reales, herramientas de administración de sistemas, juegos, código interactivo y un sistema propio de analítica y monitorización.
No quería construir un portfolio que se limitara a enumerar tecnologías, puestos de trabajo y enlaces. La idea de danilopez25.es es enseñar las dos partes principales de mi perfil: administración de sistemas y desarrollo, utilizando la propia web como demostración.
Por eso el proyecto ha ido creciendo hasta convertirse en algo más amplio: portfolio profesional, casos de estudio, laboratorio de código, herramientas de sysadmin, arcade con rankings, terminal interactiva y un sistema propio de Analytics y observabilidad.
La web reúne mi experiencia profesional, formación, competencias técnicas y proyectos. Mi perfil combina soporte, infraestructura, Microsoft 365, Intune, Azure, automatización, scripting y desarrollo de aplicaciones web.
Cada proyecto cuenta con su propia página de detalle. No se muestra únicamente el resultado final: también explico el objetivo, la arquitectura, el frontend, el backend, las decisiones técnicas y el trabajo realizado detrás de cada solución.
LAB es la zona experimental y técnica del portfolio. Está diseñada para que el visitante pueda probar directamente distintas partes del proyecto en lugar de limitarse a ver capturas o leer descripciones.
Actualmente reúne Arcade, Code Lab, Sysadmin Lab y Live Monitor, además de diferentes herramientas y entornos interactivos para probar código, animaciones, SQL y utilidades relacionadas con administración de sistemas.
La zona arcade incluye Snake, Tetris, Pacman, Space Shooter, Breakout, Space Invaders, Piedra, Papel o Tijera y Tres en Raya. Los juegos están desarrollados con HTML5, CSS, JavaScript puro y Canvas 2D, adaptados tanto a escritorio como a móvil.
Los jugadores pueden guardar sus resultados, consultar clasificaciones y competir por los primeros puestos. El sistema de rankings utiliza archivos JSON independientes para cada juego, manteniendo una solución ligera y sencilla para este tipo de datos.
Cada juego gestiona sus propias reglas, puntuación, controles, colisiones y lógica. Las experiencias basadas en Canvas utilizan requestAnimationFrame y sistemas adaptados a cada mecánica, sin depender de un motor de videojuegos externo.
En móvil aparecen controles táctiles específicos cuando son necesarios, mientras que en escritorio se mantienen los controles de teclado. El objetivo es conservar la misma experiencia visual y jugable en distintos tamaños de pantalla.
Code Lab concentra los experimentos relacionados con desarrollo frontend y aprendizaje. Incluye Animation Lab, SQL Lab y un Playground HTML/CSS/JavaScript. Cada herramienta está pensada para ser utilizada directamente desde el navegador y mantener la estética general del portfolio.
SQL Lab está orientado a practicar y comprender consultas SQL de forma visual y sencilla. La analítica puede registrar que una consulta ha sido ejecutada o que se ha producido un error, pero nunca almacena el texto SQL escrito por el visitante.
El Playground permite escribir HTML, CSS y JavaScript y comprobar el resultado mediante una previsualización integrada. El código escrito por el visitante permanece fuera del sistema de Analytics: únicamente se registran acciones genéricas como ejecuciones o uso de determinadas funciones.
Animation Lab reúne distintas animaciones y transiciones para probarlas directamente y consultar el código asociado. Sirve como espacio de experimentación visual y también como referencia de cómo están construidos determinados efectos utilizados dentro de la propia web.
Sysadmin Lab traslada parte de mi trabajo como administrador de sistemas al propio portfolio. En lugar de limitarme a mencionar PowerShell o automatización como competencias, la web incluye herramientas funcionales relacionadas con tareas reales de administración.
Entre ellas se encuentran Winget Generator y PowerShell Helper, capaces de generar contenido reutilizable y registrar de forma anónima acciones como generación, copia o descarga. El contenido generado por el usuario no se incorpora a Analytics.
El proyecto incorpora un sistema propio de analítica desarrollado con PHP, CodeIgniter 4, JavaScript y MariaDB/MySQL. No depende de un panel externo para conocer el uso general de la web: los eventos se registran en la propia infraestructura y se muestran mediante un Live Monitor público.
El monitor muestra visitantes únicos, sesiones, visitantes del día, visitantes activos, tráfico de los últimos 14 días, actividad reciente, contenido más visitado, países, dispositivos, navegadores y uso de herramientas y juegos. La información se actualiza mediante peticiones silenciosas sin recargar la página completa.
Cada visitante recibe un UUID anónimo almacenado en localStorage y cada sesión utiliza su propio identificador en sessionStorage. Las sesiones caducan tras un periodo de inactividad y el sistema puede distinguir entre visitantes históricos, visitas totales y actividad reciente.
Para calcular los visitantes activos, el navegador envía una señal periódica mientras la pestaña está visible. Esa señal actualiza la última actividad de la sesión sin generar miles de eventos innecesarios, permitiendo saber cuántos visitantes están activos en ese momento.
El sistema de Analytics está diseñado para evitar almacenar información personal. No se guardan nombres, correos electrónicos, direcciones IP, contenido SQL ni el código HTML, CSS o JavaScript introducido por los visitantes en las herramientas interactivas.
La dirección IP se utiliza únicamente de forma temporal en el servidor para intentar resolver el país de origen y se descarta inmediatamente. También se respeta la preferencia Do Not Track del navegador.
Los visores de código leen directamente los archivos CSS y JavaScript reales utilizados por los juegos y otras experiencias. De esta forma, el código que consulta el visitante coincide con el que se está ejecutando.
La intención es que el portfolio pueda demostrar cómo están construidas determinadas funcionalidades, y no limitarse a enseñar únicamente el resultado visual.
La web está disponible en español e inglés utilizando el locale de CodeIgniter y una preferencia guardada en sesión.
El cambio de idioma utiliza una transición visual integrada en la navegación para mantener la experiencia consistente entre ambas versiones.
Las vistas están adaptadas para escritorio, tablet y móvil. El proyecto mantiene una identidad visual oscura y violeta con fondo espacial, paneles translúcidos, navegación común, estados hover, transiciones y soporte para prefers-reduced-motion.
Los recursos locales utilizan cache-busting basado en la fecha de modificación de los archivos. El proyecto mantiene layouts compartidos, componentes reutilizables y separación entre vistas, estilos, JavaScript y lógica de servidor para facilitar su evolución.
Las etiquetas Open Graph y Twitter Cards controlan la presentación al compartir el portfolio en plataformas como LinkedIn o WhatsApp. La sección de contacto incluye validación de servidor y envío mediante SMTP.
danilopez25.es reúne en un único proyecto desarrollo web, administración de sistemas, automatización, bases de datos, analítica, observabilidad, privacidad y diseño de producto. El resultado no es únicamente una presentación profesional: es una aplicación en evolución constante que permite enseñar experiencia, probar herramientas reales y demostrar cómo están construidas.