ByeCode · Arquitectura y evaluación del prototipo

<aside> 📌

Decisión de stack: Laravel + React + Inertia.js, con navegación SPA y sin API REST separada para la interfaz. PostgreSQL, Eloquent, Vite, TypeScript, Tailwind, shadcn/ui, jobs Laravel, Pest y OpenAI desde el servidor.

Estado: diseño y plan de pruebas completos; auditoría estática del kit público realizada. La aplicación, las llamadas al modelo y las pruebas de funcionamiento todavía están pendientes de implementación y ejecución.

</aside>

8. Arquitectura técnica

ByeCode · Diseño de implementación · Versión 1.0 · 10 de octubre de 2026.

Este apartado convierte el Modelo de IA y su flujo de información en una aplicación Laravel. El stack fue acordado con el usuario. Los módulos, tablas y rutas siguientes son decisiones de diseño propuestas; todavía no existe una aplicación implementada ni un despliegue verificado.

8.1. Arquitectura elegida

ByeCode será un monolito modular Laravel con React e Inertia.js, con navegación tipo SPA y un mismo repositorio. Laravel recibirá las solicitudes, controlará el estado y entregará a React las propiedades autorizadas de cada página. Inertia permite este modelo con rutas y controladores del servidor; el starter kit oficial integra React, TypeScript, Tailwind y shadcn/ui. Documentación de Laravel.

Capa Tecnología acordada Responsabilidad en ByeCode
Backend Laravel + PHP Ingesta, sesiones, permisos, reglas, orquestación y publicación.
Frontend React + TypeScript Listado de casos, historial, explicación, estados y formularios.
Unión frontend/backend Inertia.js Navegación, envío de formularios y propiedades de página.
Construcción Vite Compilar los recursos del frontend.
Interfaz Tailwind CSS + shadcn/ui Componentes visuales y diseño consistente.
Persistencia PostgreSQL + Eloquent Eventos, estado, evaluaciones, recomendaciones y trazabilidad.
Procesamiento diferido Jobs y colas de Laravel Evaluaciones de IA y reintentos controlados.
IA OpenAI API desde Laravel Interpretación semántica y propuesta estructurada.
Pruebas del backend Pest Reglas, importación, persistencia, rutas y publicación.

Las versiones concretas se fijarán en los archivos de dependencias al iniciar la implementación. El modelo de IA, sus límites de consumo y el proveedor de hosting permanecen pendientes. Next.js deja de formar parte de esta arquitectura; Supabase y Vercel no son dependencias confirmadas.

8.2. Alcance del prototipo y ampliaciones

El flujo mínimo del reto debe cargar el kit JSONL, agrupar casos, deduplicar eventos, interpretar mensajes mediante IA, aplicar R1–R6, conservar decisiones anteriores y exportar un array JSON. Un botón de evaluación es suficiente según el documento oficial. Reto, pp. 1–3 (Reto_Byecode_Participantes_24h.pdf, copia local del proyecto).

Entrega inicial Ampliación del producto
Importación de manifest.json, events.jsonl y updates.jsonl. Conectores autorizados de cotizaciones, CRM, almacén y producción.
Historial, métricas temporales y restricciones por caso. Versiones de cotización, líneas, tallas, stock, capacidad y aceptaciones parciales.
Recomendación, evidencia, incertidumbre y comparación antes/después. Ranking de cartera, revisión humana y feedback ampliado.
Exportación de los once campos oficiales. Informes operativos y exportaciones adicionales con contratos separados.

La especialización de prendas blank no debe alterar los casos oficiales: una pregunta sobre instalación o entrega se interpreta según su propio contexto. No se agregará información del nicho para completar artificialmente el kit.

8.3. Componentes y recorrido de una evaluación

flowchart TD
    UI["React: casos, historial y recomendaciones"] --> WEB["Rutas web Laravel e Inertia"]
    FILE["Kit JSONL y manifest"] --> IMP["Importador y adaptador del kit"]
    WEB --> IMP
    IMP --> DB[("PostgreSQL: historial, estado y trabajo pendiente")]
    WEB --> EVAL["Solicitud de evaluación"]
    EVAL --> DB
    DB --> JOB["Worker Laravel"]
    JOB --> SNAP["Contexto inmutable y restricciones"]
    SNAP --> AI["Adaptador OpenAI"]
    AI --> CHECK["Contrato, evidencia, reglas y vigencia"]
    CHECK --> PUB["Recomendación o error explícito"]
    PUB --> DB
    DB --> WEB
    WEB --> UI
    WEB --> OUT["Exportación JSON oficial"]
  1. El usuario carga un lote. El servidor valida cada línea y registra errores sin detener los demás casos válidos.
  2. Una transacción registra cada evento nuevo, actualiza el estado y deja constancia duradera del trabajo pendiente. Una repetición idéntica no cambia métricas ni versiones.
  3. Se solicita una evaluación y se devuelve la página con estado pendiente. La llamada al modelo se realiza en el worker.
  4. El worker prepara una instantánea con eventos conocidos, hora de evaluación, reglas y versión del contexto. Calcula tiempos y alternativas preliminares en PHP.