[{"data":1,"prerenderedAt":276},["ShallowReactive",2],{"service-projects-es-printer-management-wichtel-wunsch-impax-tours-hotel-checkin-platform":3},[4,78,148,211],{"id":5,"title":6,"body":7,"category":56,"challenge":57,"description":50,"extension":58,"featured":59,"image":60,"images":60,"impact":61,"meta":62,"navigation":63,"order":64,"path":65,"seo":66,"slug":67,"solution":68,"stem":69,"tagline":70,"tags":71,"testimonial":60,"testimonial_author":60,"testimonial_role":60,"url":60,"__hash__":77},"projects_es\u002Fprojects\u002Fes\u002Fprinter-management.md","Plataforma de Gestión de Impresoras",{"type":8,"value":9,"toc":49},"minimark",[10,15,19,23,42,46],[11,12,14],"h2",{"id":13},"descripción-del-proyecto","Descripción del Proyecto",[16,17,18],"p",{},"Desarrollado en CAMAO Tec (posteriormente renombrada mmmake), este proyecto consistió en construir una aplicación web de gestión de impresoras para un minorista europeo con múltiples tiendas. El objetivo era ofrecer a los equipos de operaciones una visión clara de todos los dispositivos de impresión físicos en su red de tiendas europeas, incluyendo configuraciones, ubicaciones y metadatos asociados.",[11,20,22],{"id":21},"funcionalidades","Funcionalidades",[24,25,26,30,33,36,39],"ul",{},[27,28,29],"li",{},"Panel de vista general de dispositivos en todas las ubicaciones",[27,31,32],{},"Operaciones CRUD para impresoras, configuraciones y metadatos",[27,34,35],{},"Autenticación OIDC\u002FOAuth con validación de audiencia y control de acceso basado en permisos",[27,37,38],{},"Integración de una biblioteca de componentes UI interna basada en StencilJS",[27,40,41],{},"Capa de datos simulados para mantener el ritmo de entrega durante el desarrollo de la API",[11,43,45],{"id":44},"aspectos-técnicos","Aspectos Técnicos",[16,47,48],{},"La aplicación fue construida con Vue 3, marcando la primera adopción del framework en la empresa. La REST API seguía OpenAPI Spec 3 y requirió implementar un flujo de autenticación OIDC completo contra un proveedor de identidad interno. Donde el diseño divergía de la biblioteca de componentes, colaboré directamente con sus propietarios para identificar y resolver problemas, con correcciones que se propagaron a todos los consumidores del framework.",{"title":50,"searchDepth":51,"depth":51,"links":52},"",2,[53,54,55],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":44,"depth":51,"text":45},"web-app","Un minorista europeo con múltiples tiendas necesitaba una interfaz web para gestionar impresoras físicas en todas sus ubicaciones — con vista general de dispositivos, configuraciones, asignación de ubicaciones y metadatos. El proyecto también sirvió como la primera adopción de Vue en la pila tecnológica de la empresa.","md",false,null,"La aplicación se entregó con éxito y se convirtió en la base para futuras extensiones. El equipo fue incorporado completamente a Vue. Las correcciones aportadas a la biblioteca de componentes beneficiaron a todos los consumidores del framework.",{},true,3,"\u002Fprojects\u002Fes\u002Fprinter-management",{"title":6,"description":50},"printer-management","Desarrollé la aplicación web con Vue 3 y una biblioteca de componentes UI interna basada en StencilJS, conectada a una REST API siguiendo OpenAPI Spec 3 con autenticación OIDC. Implementé el flujo OAuth completo incluyendo validación de audiencia y permisos, cubrí las divergencias entre el diseño y la biblioteca de componentes, y mantuve los plazos usando datos y servicios simulados mientras la API aún estaba en desarrollo. También incorporé al equipo de desarrollo en Vue, con formación en buenas prácticas de diseño de componentes y el ecosistema Vue.","projects\u002Fes\u002Fprinter-management","Gestión de dispositivos en toda Europa para retail",[72,73,74,75,76],"Vue 3","TypeScript","OIDC","REST API","StencilJS","ZJOYN0e-khhfTABnCOIPDOaU0Q3WPC_Et8ogR4BMzjA",{"id":79,"title":80,"body":81,"category":56,"challenge":125,"description":50,"extension":58,"featured":63,"image":126,"images":127,"impact":130,"meta":131,"navigation":63,"order":132,"path":133,"seo":134,"slug":135,"solution":136,"stem":137,"tagline":138,"tags":139,"testimonial":60,"testimonial_author":60,"testimonial_role":60,"url":146,"__hash__":147},"projects_es\u002Fprojects\u002Fes\u002Fwichtel-wunsch.md","Wichtel-Wunsch",{"type":8,"value":82,"toc":120},[83,85,88,92,115,117],[11,84,14],{"id":13},[16,86,87],{},"Wichtel-Wunsch es un proyecto personal — una Progressive Web App mobile-first para organizar eventos de amigo invisible y gestionar listas de deseos. Resuelve el problema de coordinación de los intercambios de regalos sin depender de chats grupales ni hojas de cálculo.",[11,89,91],{"id":90},"funcionalidades-principales","Funcionalidades Principales",[24,93,94,97,100,103,106,109,112],{},[27,95,96],{},"Crear y gestionar eventos con un enlace de invitación compartible",[27,98,99],{},"Listas de deseos personales con enlaces opcionales a tiendas para cada participante",[27,101,102],{},"Todas las listas visibles para todos los miembros del evento — sin más adivinanzas",[27,104,105],{},"Autenticación con Google OAuth a través de Supabase Auth",[27,107,108],{},"PWA instalable con soporte de notificaciones push",[27,110,111],{},"Exportación de datos conforme al RGPD (Art. 15)",[27,113,114],{},"Diseño completamente responsivo y mobile-first",[11,116,45],{"id":44},[16,118,119],{},"Desarrollado con Nuxt 4 y Vue 3 en el frontend, respaldado por Supabase (PostgreSQL) para la base de datos y la autenticación. Cada tabla está protegida con políticas de Row Level Security. El proyecto incluye una suite de tests completa: 163 tests de base de datos con pgTAP para restricciones de esquema, reglas RLS y comportamiento de la aplicación, además de tests E2E con Cypress.",{"title":50,"searchDepth":51,"depth":51,"links":121},[122,123,124],{"id":13,"depth":51,"text":14},{"id":90,"depth":51,"text":91},{"id":44,"depth":51,"text":45},"Organizar un amigo invisible es complicado: ¿quién le compra a quién, qué quiere cada persona y cómo coordinar todo sin arruinar la sorpresa? Las herramientas existentes son demasiado complejas o requieren cuentas en plataformas de terceros en las que muchos no confían.","\u002Fimages\u002Fprojects\u002Fwichtel-wunsch.webp",[126,128,129],"\u002Fimages\u002Fprojects\u002Fwichtel-wunsch-event.webp","\u002Fimages\u002Fprojects\u002Fwichtel-wunsch-admin.webp","Una PWA limpia e instalable que hace que los eventos de amigo invisible sean sencillos de organizar. La app cumple con el RGPD con función de exportación de datos, está protegida con Row Level Security en cada tabla de la base de datos y cuenta con 163 tests automatizados de base de datos que cubren integridad de esquema, políticas RLS y lógica de negocio.",{},6,"\u002Fprojects\u002Fes\u002Fwichtel-wunsch",{"title":80,"description":50},"wichtel-wunsch","Desarrollé Wichtel-Wunsch como una Progressive Web App mobile-first con Nuxt 4, Vue 3 y Supabase. Los usuarios pueden crear eventos, invitar amigos mediante un enlace compartido y gestionar listas de deseos personales con enlaces opcionales a tiendas. Todas las listas de los participantes son visibles dentro del evento, para que nadie tenga que adivinar. La autenticación se realiza mediante Google OAuth, y la app es instalable en cualquier dispositivo.","projects\u002Fes\u002Fwichtel-wunsch","Amigo invisible y listas de deseos PWA",[140,141,73,142,143,144,145],"Nuxt","Vue.js","Supabase","PostgreSQL","TailwindCSS","PWA","https:\u002F\u002Fwichtel-wunsch.app","SsDtA9rNh51mt5jBymhj4BdPdEQ4pmYOc9H5jlHwTJI",{"id":149,"title":150,"body":151,"category":189,"challenge":190,"description":50,"extension":58,"featured":63,"image":191,"images":60,"impact":192,"meta":193,"navigation":63,"order":194,"path":195,"seo":196,"slug":197,"solution":198,"stem":199,"tagline":200,"tags":201,"testimonial":206,"testimonial_author":207,"testimonial_role":208,"url":209,"__hash__":210},"projects_es\u002Fprojects\u002Fes\u002Fimpax-tours.md","IMPAX Tours",{"type":8,"value":152,"toc":184},[153,155,158,162,179,181],[11,154,14],{"id":13},[16,156,157],{},"IMPAX Tours es una plataforma online para reservar experiencias de viaje al aire libre, especializada en campamentos de surf y alojamientos backpacker en todo el mundo. Por encargo de IMPAX Tours UG, desarrollé la plataforma web completa como desarrollador full-stack freelance durante un período de 10 meses.",[11,159,161],{"id":160},"características-principales","Características Principales",[24,163,164,167,170,173,176],{},[27,165,166],{},"Búsqueda por ubicación con filtros por destino, tipo de alojamiento y disponibilidad",[27,168,169],{},"Flujo de reserva integrado con procesamiento de pagos",[27,171,172],{},"Panel de gestión para proveedores de campamentos de surf y alojamientos",[27,174,175],{},"Diseño responsive para usuarios móviles y de escritorio",[27,177,178],{},"Sección de sostenibilidad con información sobre viajes ecológicos",[11,180,45],{"id":44},[16,182,183],{},"La plataforma se construyó con un backend Laravel y un frontend Vue.js. La arquitectura está diseñada para escalar y admite múltiples proveedores con su propio sistema de gestión de contenidos. La funcionalidad de búsqueda está impulsada por una solución de filtrado basada en base de datos con criterios geográficos.",{"title":50,"searchDepth":51,"depth":51,"links":185},[186,187,188],{"id":13,"depth":51,"text":14},{"id":160,"depth":51,"text":161},{"id":44,"depth":51,"text":45},"booking-platform","IMPAX Tours necesitaba una plataforma escalable donde los viajeros pudieran encontrar y reservar directamente campamentos de surf y alojamientos backpacker en todo el mundo, con búsqueda, filtros por destino e integración de pagos.","\u002Fimages\u002Fprojects\u002Fimpax-tours.webp","La plataforma se lanzó con éxito, permitiendo a viajeros de todo el mundo encontrar y reservar alojamientos de aventura. El proyecto se completó en 10 meses de trabajo freelance y recibió los más altos elogios del director general.",{},1,"\u002Fprojects\u002Fes\u002Fimpax-tours",{"title":150,"description":50},"impax-tours","Desarrollé toda la plataforma como desarrollador full-stack utilizando Laravel como backend y Vue.js como frontend. La solución incluye búsqueda por ubicación, filtros por destino y tipo de alojamiento, y un flujo de reserva y pago completamente integrado.","projects\u002Fes\u002Fimpax-tours","Plataforma de reservas de surf y viajes",[141,202,203,204,205],"Laravel","PHP","MySQL","Booking","El Sr. Enns completó sus tareas con nuestra completa satisfacción y cumplió nuestras expectativas en todos los aspectos. Lamentamos perderle como freelancer.","Andre Baumunk","Director General, IMPAX Tours UG","https:\u002F\u002Fimpax-tours.com","Ly7EmT2ndNNpZZzoZEGD_5JPWxs-AIrtQIuDfZbC46I",{"id":212,"title":213,"body":214,"category":56,"challenge":256,"description":50,"extension":58,"featured":63,"image":257,"images":258,"impact":262,"meta":263,"navigation":63,"order":51,"path":264,"seo":265,"slug":266,"solution":267,"stem":268,"tagline":269,"tags":270,"testimonial":272,"testimonial_author":273,"testimonial_role":274,"url":60,"__hash__":275},"projects_es\u002Fprojects\u002Fes\u002Fhotel-checkin-platform.md","Sistema Digital de Check-in Hotelero",{"type":8,"value":215,"toc":251},[216,218,221,223,246,248],[11,217,14],{"id":13},[16,219,220],{},"Este proyecto consistió en construir un sistema digital de check-in y reserva de habitaciones para un grupo hotelero, desplegado en tablets de vestíbulo. La aplicación guía a los huéspedes paso a paso por todo el proceso, desde la selección de habitación hasta la confirmación de la reserva.",[11,222,22],{"id":21},[24,224,225,228,231,234,237,240,243],{},[27,226,227],{},"Plano interactivo para selección de habitación con indicación de disponibilidad en tiempo real",[27,229,230],{},"Vista comparativa de tipos de habitación (Estándar, Deluxe, Suite)",[27,232,233],{},"Formulario de datos personales con validación del lado cliente",[27,235,236],{},"Pantalla de resumen de reserva con vista completa antes de confirmar",[27,238,239],{},"Captura de firma digital con soporte táctil",[27,241,242],{},"Integración de términos y condiciones y tasa turística",[27,244,245],{},"Interfaz completamente en alemán adaptada a la identidad visual del cliente",[11,247,45],{"id":44},[16,249,250],{},"La aplicación fue desarrollada con Vue.js y un backend PHP\u002FREST API. El plano interactivo muestra la disponibilidad de habitaciones de forma dinámica basándose en datos del backend. El flujo multistep utiliza gestión de estado en el cliente para preservar los datos del huésped entre pasos.",{"title":50,"searchDepth":51,"depth":51,"links":252},[253,254,255],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":44,"depth":51,"text":45},"Un grupo hotelero necesitaba reemplazar su proceso de check-in de huéspedes en papel con una aplicación web moderna y adaptada a tablets, que guiara a los huéspedes de forma autónoma por la selección de habitación, la entrada de datos y la confirmación de reserva.","\u002Fimages\u002Fprojects\u002Fhotel-checkin-platform.webp",[257,259,260,261],"\u002Fimages\u002Fprojects\u002Fhotel-checkin-personal-data.webp","\u002Fimages\u002Fprojects\u002Fhotel-checkin-room-selection.webp","\u002Fimages\u002Fprojects\u002Fhotel-checkin-floor-plan.webp","El sistema eliminó por completo el check-in en papel, redujo significativamente el tiempo medio de registro y permitió gestionar digitalmente la disponibilidad de habitaciones y los datos de huéspedes desde el primer día.",{},"\u002Fprojects\u002Fes\u002Fhotel-checkin-platform",{"title":213,"description":50},"hotel-checkin-platform","Desarrollé una aplicación web de varios pasos con Vue.js: plano interactivo para selección de habitación, formulario de datos personales con validación, resumen de reserva con firma digital y una interfaz completamente en alemán adaptada a la identidad de marca del cliente.","projects\u002Fes\u002Fhotel-checkin-platform","Sistema digital de check-in hotelero",[141,73,203,75,271],"Hotel","Fantastische Zusammenarbeit mit einem hohem Grad an Zuverlässigkeit, Geschwindigkeit und Qualität.","Stephan Wiese","COO, bloc group","m7ey3gNl9UCuqYv9zLXLoUw1sOgQUvlBqjYqARv3dYU",1783940055562]