LumaFlow Studio

Caso de estudio / Producto full-stack

Plataforma de flujo de trabajo para fotógrafos que conecta planificación, CRM, finanzas, entregas y asistencia local con IA sin convertir el proyecto en un SaaS ficticio.

Mi rol

Diseñé y desarrollé el producto completo: interfaz React, API Laravel, autenticación, modelo de datos multiusuario, módulos de negocio, IA local, pruebas y documentación.

Interfaz de IA local de LumaFlow Studio, sin modelo instalado
Vista del proyecto · Captura de la interfaz

Un estudio fotográfico acumula herramientas aisladas y pierde contexto.

01 / Problema y contexto

Sesiones, clientes, tareas, presupuestos, facturas, localizaciones y entregas suelen vivir en aplicaciones separadas. El objetivo era modelar esas relaciones en un producto evaluable y reproducible, manteniendo privacidad y límites de alcance claros.

02 / Objetivos

  • Centralizar el flujo de una sesión desde la planificación hasta la entrega.
  • Proteger cada recurso mediante propiedad por usuario y autenticación Sanctum.
  • Integrar IA local bajo demanda sin claves externas ni coste inicial de JavaScript.
  • Dejar arquitectura, instalación y límites documentados para revisión técnica.

03 / Proceso

01

Dominio

Definí entidades y relaciones alrededor de clientes, sesiones, tareas, documentos financieros y galerías.

02

Arquitectura

Separé frontend y backend por HTTP, con controladores delgados, servicios de dominio, requests y resources.

03

Producto

Construí módulos conectados, navegación por teclado, búsqueda global y estados operativos reproducibles.

04

Calidad

Cerré el producto con tests, Docker, documentación técnica y una lista explícita de funciones pendientes.

04 / Decisiones

Técnicas

  • Consultas limitadas por user_id mediante scopes y relaciones de Eloquent.
  • 404 para recursos ajenos, evitando confirmar que existen.
  • Lógica de dominio en servicios y validación en Form Requests.
  • WebLLM y modelos WebGPU cargados solo cuando el usuario activa IA.

UX y producto

  • El panel y el calendario priorizan tareas, sesiones y entregas que requieren acción.
  • Búsqueda global y atajos reducen navegación repetitiva.
  • Estados de sistema hacen visibles API, datos, almacenamiento e IA opcional.
  • La PWA conserva una estructura base sin conexión; los modelos pesados siguen bajo demanda.

SPA React y API Laravel independientes, conectadas por HTTP y respaldadas por MySQL.

05 / Arquitectura

React 19ViteTailwind CSS 4Laravel 13PHP 8.3SanctumMySQL 8WebGPUWebLLMDockerPWAVitest / PHPUnit

06 / Desafío

Mantener coherencia entre muchos módulos sin convertir controladores, estado o navegación en puntos de acoplamiento difíciles de probar.

07 / Solución

Organicé el código por dominio, separé estado remoto y local, encapsulé reglas en servicios y documenté contratos, instalación y límites del producto.

Release pública de código con 56 tests backend y 33 frontend.

08 / Resultado verificable

Aprendizajes

  • Un producto de portfolio gana credibilidad cuando documenta también lo que no implementa.
  • La privacidad y la propiedad de datos deben formar parte del modelo, no añadirse al final.
  • La IA local aporta valor solo cuando no penaliza el flujo principal ni oculta sus límites.