[{"data":1,"prerenderedAt":89},["ShallowReactive",2],{"proyecto-\u002Fproyectos\u002Fpanel-operacion-dinamica":3},{"id":4,"title":5,"areas":6,"body":10,"cliente":32,"confidencial":33,"description":16,"destacado":34,"enlace":35,"extension":36,"galeria":37,"highlights":57,"logo":35,"marca":35,"meta":70,"navigation":34,"orden":71,"path":72,"portada":73,"resumen":75,"rol":76,"seo":77,"stack":78,"stem":86,"titulo":87,"__hash__":88},"proyectos\u002Fproyectos\u002Fpanel-operacion-dinamica.md","Panel Operacion Dinamica",[7,8,9],"Operación","Panel administrativo","Migración Vue 2 → Vue 3",{"type":11,"value":12,"toc":28},"minimark",[13,17,25],[14,15,16],"p",{},"Detrás del storefront de Dinámica hay una plataforma de operación de almacén: el\npanel interno que usa el equipo para mover la operación día a día —inventario,\npedidos, planeación de rutas de reparto, recepción, acomodo, escaneo y post-venta—\ncon control de acceso por más de veinte tipos de usuario.",[14,18,19,20,24],{},"Mi trabajo aquí tiene dos partes. La primera, como contribuidor principal del\npanel original en Vue 2 a lo largo del tiempo. La segunda, y la que más me\nrepresenta: ",[21,22,23],"strong",{},"liderar en solitario la reescritura completa a Vue 3"," con Vite y\nTypeScript strict. No fue empezar de cero: fue replicar uno a uno los contratos\ndel backend y del servidor de tiempo real, manteniendo paridad de rutas, roles y\nfuncionalidades, para migrar sin perder lo que ya funcionaba en producción.",[14,26,27],{},"También soy co-autor del servidor de tiempo real en Node.js que da vida al panel:\nse suscribe a canales de Redis y reemite los cambios por Socket.io, de modo que\nlo que pasa en la operación se refleja en la interfaz sin recargar.",{"title":29,"searchDepth":30,"depth":30,"links":31},"",2,[],"Dinámica Ferretera",false,true,null,"md",[38,45,50],{"src":39,"alt":40,"ancho":41,"alto":42,"tipo":43,"caption":44},"\u002Fimg\u002Fproyectos\u002Fpanel-dinamica\u002Fscanner-desktop.webp","Flujo de escaneo de una venta en el panel, tema oscuro, paso \"Iniciar\".",1600,781,"desktop","Flujo de escaneo — escritorio. (Nombres y cifras internas redactados.)",{"src":46,"alt":47,"ancho":41,"alto":48,"tipo":43,"caption":49},"\u002Fimg\u002Fproyectos\u002Fpanel-dinamica\u002Fhome.webp","Inicio del panel de operación con tablero de indicadores y gráfica semanal.",791,"Inicio del panel, con tablero de indicadores. (Datos internos redactados.)",{"src":51,"alt":52,"ancho":53,"alto":54,"tipo":55,"caption":56},"\u002Fimg\u002Fproyectos\u002Fpanel-dinamica\u002Fscanner-mobile.webp","El mismo flujo de escaneo del panel en pantalla de teléfono.",600,1299,"mobile","El panel también responde en móvil. (Datos internos redactados.)",[58,61,64,67],{"titulo":59,"texto":60},"Operación completa de almacén","Áreas para administración, supervisión, inventario, planeación de rutas, recepción, acomodo, escaneo y post-venta, con control de acceso por más de veinte tipos de usuario.",{"titulo":62,"texto":63},"Reescritura Vue 2 → Vue 3","Lideré la migración del panel de Vue 2 (Vue CLI) a Vue 3 con Vite y TypeScript strict, replicando uno a uno los contratos del backend y del servidor de tiempo real, con paridad de rutas y roles.",{"titulo":65,"texto":66},"Tiempo real","Un servidor de tiempo real en Node.js (Socket.io + Redis pub\u002Fsub), del que soy co-autor, empuja los cambios en vivo al panel a partir de eventos del backend.",{"titulo":68,"texto":69},"Datos y métricas","Tableros con KPIs, tablas y gráficas para seguimiento de la operación, construidos con TanStack Query y Table sobre la API en Rails.",{},3,"\u002Fproyectos\u002Fpanel-operacion-dinamica",{"src":39,"alt":74,"ancho":41,"alto":42,"tipo":43},"Panel de operación en tema oscuro, con el flujo de escaneo de una venta.","Panel interno de operación de almacén, con una reescritura completa de Vue 2 a Vue 3.","Autor de la reescritura y contribuidor principal del panel",{"description":16},[79,80,81,82,83,84,85],"Vue 3","Vite","TypeScript","Pinia","TanStack Query","Socket.io + Redis","Ruby on Rails","proyectos\u002Fpanel-operacion-dinamica","Panel de operación · Dinámica","QxcAXvCemVcl4I3FsDT1MRS_uba97_9GQEOU65Vrcl4",1787768137144]