[{"data":1,"prerenderedAt":109},["ShallowReactive",2],{"project-\u002Fproyectos\u002Frevenew":3},{"id":4,"title":5,"backendRepo":6,"body":7,"cover":90,"demo":91,"description":84,"extension":92,"meta":93,"navigation":94,"order":95,"path":96,"repo":97,"seo":98,"stack":99,"stem":106,"summary":107,"__hash__":108},"projects_es\u002Fproyectos\u002Frevenew.md","Revenew","https:\u002F\u002Fgithub.com\u002FKevin-Curruchich\u002Fai-sales-assistant",{"type":8,"value":9,"toc":83},"minimark",[10,15,19,23,26,76,80],[11,12,14],"h2",{"id":13},"problema","Problema",[16,17,18],"p",{},"Un negocio que vende de forma recurrente necesita saber rápido cuándo compró cada cliente, cuándo es probable que vuelva y a quién llamar esta semana. Esa información suele vivir en hojas de cálculo que no avisan de nada.",[11,20,22],{"id":21},"solución","Solución",[16,24,25],{},"Una SPA en React y TypeScript que consume una API propia (FastAPI y PostgreSQL, con el agente en LangGraph y Claude), donde se calculan las estimaciones de próxima compra. Algunas decisiones clave:",[27,28,29,37,43,49,60,66],"ul",{},[30,31,32,36],"li",{},[33,34,35],"strong",{},"Módulos por funcionalidad"," (clientes, productos, compras, ventas, caja, seguimiento, calendario, dashboard y agente), cada uno con su dominio, acciones, hooks y páginas.",[30,38,39,42],{},[33,40,41],{},"TanStack Query para el estado del servidor:"," registrar una venta mueve stock y estimaciones, así que se refrescan productos, clientes, dashboard, seguimientos y calendario a la vez.",[30,44,45,48],{},[33,46,47],{},"Filtros, paginación y fechas en la URL",", para compartir cualquier vista.",[30,50,51,54,55,59],{},[33,52,53],{},"Agente de ventas con IA:"," los cambios que propone (ventas, compras, movimientos de caja, cobros) llegan como tarjetas que el usuario aprueba, corrige o cancela antes de ejecutarse. Las respuestas llegan en streaming (SSE con ",[56,57,58],"code",{},"fetch",", porque el pedido es un POST con body), y el parser y el estado del chat son funciones puras con tests.",[30,61,62,65],{},[33,63,64],{},"Fechas en la zona horaria local:"," convertir a UTC hacía que las ventas de después de las 6 p. m. en Guatemala cayeran en el día siguiente.",[30,67,68,71,72,75],{},[33,69,70],{},"CI en cada PR"," (lint, typecheck, tests) y deploy automático a Firebase Hosting al mergear a ",[56,73,74],{},"main",".",[11,77,79],{"id":78},"resultado","Resultado",[16,81,82],{},"En desarrollo activo, con releases versionadas y CHANGELOG (v0.14.0). El flujo completo funciona: clientes, inventario, ventas con varios ítems, caja, seguimiento con filtros (7\u002F14\u002F30 días y atrasados), calendario, dashboard y agente con confirmaciones.",{"title":84,"searchDepth":85,"depth":85,"links":86},"",2,[87,88,89],{"id":13,"depth":85,"text":14},{"id":21,"depth":85,"text":22},{"id":78,"depth":85,"text":79},null,"https:\u002F\u002Frevenew-95e3a.web.app\u002F","md",{},true,1,"\u002Fproyectos\u002Frevenew","https:\u002F\u002Fgithub.com\u002FKevin-Curruchich\u002Frevenew",{"title":5,"description":84},[100,101,102,103,104,105],"React","TypeScript","TanStack Query","Tailwind CSS","Zod","Firebase","proyectos\u002Frevenew","Panel para negocios con ventas recurrentes: estima cuándo vuelve a comprar cada cliente y a quién dar seguimiento, sin hojas de cálculo.","Pl8pNb3a_BRh8WYpAc9cPvr0d0yHHrQN2vmhcmR4ssI",1791866601096]