America/New_York
Proyectos
/
Iniciar un proyecto
Disponible ahoraChatea conmigo
Proyectos

Smart Scan – Plataforma Multi-Tenant de Registro de Sesiones para Operaciones de Almacén

Imagen principal del proyecto
Avatar
November 15, 2025

Registro de entrega

Fecha del registro: 15 de noviembre de 2025. La tecnología y las capturas describen la versión entregada según quedó documentada en esta fecha. Cualquier observación de rendimiento corresponde al mismo registro puntual. El sitio enlazado puede incluir cambios posteriores realizados por el cliente u otros proveedores.
Smart Scan es un companion de registro de sesiones de escaneo de grado empresarial diseñado para complementar sistemas existentes de gestión de inventario. A diferencia de plataformas tradicionales de inventario, Smart Scan se enfoca exclusivamente en documentar actividades de escaneo de UPC, tanto entrantes como salientes, proporcionando registros de sesión limpios y exportables que se integran perfectamente con sus flujos de trabajo actuales de ERP, WMS o hojas de cálculo. Construido con un stack tecnológico moderno incluyendo Next.js 15, TypeScript y PostgreSQL, la plataforma cuenta con soporte completo de multi-tenancy, permitiendo que múltiples organizaciones operen independientemente con datos aislados y controles de acceso personalizados. El sistema enfatiza transparencia, sin hacer promesas falsas sobre seguimiento de stock, en cambio, sobresale en lo que hace: capturar, organizar y exportar datos de sesiones de escaneo con reportes PDF profesionales y etiquetas de envío. Aislamiento completo de inquilinos con bases de datos independientes, gestión de usuarios y seguimiento de sesiones. Los administradores del sistema pueden gestionar múltiples organizaciones desde un dashboard centralizado con métricas en tiempo real incluyendo conteos de usuarios, volúmenes de sesiones y totales de ítems escaneados por inquilino. Construido sobre NextAuth.js con estrategia JWT, con revocación automática de sesión cuando usuarios o inquilinos son desactivados. El sistema impone una política de sesión única por usuario para usuarios regulares mientras permite a administradores del sistema acceso concurrente a través de múltiples dispositivos. Soporte de flujo dual para operaciones de recepción y envío. Las sesiones entrantes capturan escaneos de UPC inbound con seguimiento de cantidad en tiempo real, mientras que las sesiones salientes organizan envíos por número de caja con desglose detallado de ítems. Ambos flujos generan logs listos para exportar y reportes PDF profesionales. Generación de reportes PDF personalizados usando jsPDF con soporte de autotable. Las características incluyen resúmenes de sesión, etiquetas de caja (formato estándar y 4x6 de envío) y footers con marca de www.smrtscan.com para descubribilidad. Sistema de permisos de tres niveles (USER, MANAGER, ADMIN) más rol de administrador del sistema. Los permisos escalan apropiadamente con managers/admins accediendo a operaciones sensibles, paneles de gestión de usuarios y herramientas de configuración de inquilinos. Base de datos de UPC con alcance de inquilino con atributos de modelo, capacidad de almacenamiento y color. Soporta importaciones masivas vía CSV/JSON con validación, detección de duplicados y capacidades integrales de búsqueda/filtrado. Estadísticas de sesión en vivo, seguimiento de actividad reciente y filtrado por rangos de estado/fecha. Los administradores del sistema reciben métricas agregadas a través de todos los inquilinos incluyendo usuarios totales, sesiones e ítems escaneados. Soporte completo de modo oscuro vía next-themes con transiciones light/dark seamless. Interfaz mobile-responsive optimizada para tablets y escáneres handheld usados en entornos de almacén.
  • Next.js 15.3.4 – App Router con React Server Components para rendimiento óptimo
  • React 19 – Último React con características concurrentes e hidratación mejorada
  • TypeScript 5 – Type safety completo a través de client y server boundaries
  • Tailwind CSS 3.4.17 – Estilos utility-first con sistema de diseño personalizado
  • next-themes 0.4.6 – Implementación seamless de modo oscuro/claro
  • Lucide React – Biblioteca de iconos modernos para elementos de interfaz consistentes
  • Next.js API Routes – Endpoints de servidor type-safe con manejo de errores apropiado
  • PostgreSQL – Base de datos relacional de grado de producción con cumplimiento ACID
  • Prisma ORM 6.10.1 – Cliente de base de datos type-safe con gestión de migraciones
  • NextAuth.js 4.24.11 – Autenticación basada en JWT con manejo de sesiones personalizado
  • bcryptjs – Hashing de contraseñas con salt rounds para almacenamiento seguro de credenciales
  • JWT Strategy – Autenticación stateless con refresco automático de token
  • Session Revocation – Invalidación de sesión en tiempo real para usuarios/inquilinos desactivados
  • Implementación RBAC – Seguridad a nivel de fila con acceso a datos con alcance de inquilino
  • jsPDF 3.0.1 – Generación de PDF del lado del cliente con layouts personalizados
  • jspdf-autotable 5.0.2 – Formateo de tablas para reportes de sesión
  • SWR 2.3.6 – Hooks de React para obtención de datos con caching
  • nodemailer 6.10.1 – Notificaciones por correo para alertas del sistema
Separación completa a nivel de base de datos con queries con alcance de inquilino forzadas vía middleware de Prisma. Todos los catálogos de UPC, sesiones y usuarios están estrictamente aislados, con administradores del sistema teniendo acceso de solo lectura a métricas de inquilinos sin ver datos sensibles de sesión. Enfoque de seguridad de tres capas: validación de token JWT, verificaciones de revocación de sesión y verificación de contexto de inquilino. Cuando un inquilino o usuario es desactivado, todas las sesiones activas son revocadas inmediatamente con mensajes de logout descriptivos explicando la razón. Los usuarios regulares mantienen una sesión activa a la vez, nuevos logins revocan automáticamente sesiones previas con notificaciones de "acceso desde otro dispositivo". Los administradores del sistema evaden esta restricción para gestionar múltiples inquilinos simultáneamente. Todos los PDFs generados incluyen branding sutil en footer (www.smrtscan.com) para descubribilidad mientras mantienen apariencia profesional. Soporta reportes de tamaño carta estándar y etiquetas térmicas 4x6 con formateo consistente. Cobertura TypeScript end-to-end con tipos generados por Prisma fluyendo desde el esquema de base de datos a través de rutas de API a componentes frontend. Manejo de errores personalizado asegura respuestas consistentes a través de todos los endpoints. Desafío: Asegurar aislamiento completo de datos mientras se mantiene rendimiento de query eficiente a través de inquilinos.
Solución: Se implementó scoping a nivel de Prisma con restricciones únicas compuestas (tenantId + identifier) e índices de base de datos optimizados para queries filtradas por inquilino. Se agregó middleware para inyectar automáticamente contexto de inquilino en todas las operaciones de base de datos.
Desafío: Invalidación de sesión en tiempo real cuando usuarios/inquilinos son desactivados sin overhead de polling.
Solución: Se construyó una capa de gestión de sesiones personalizada sobre NextAuth con seguimiento de sesiones respaldado por base de datos. Los callbacks de JWT verifican estado de revocación en cada request, con mensajes de logout distintos para diferentes razones de desactivación (usuario inactivo, inquilino inactivo, login concurrente).
Desafío: Generar PDFs multi-página con tablas y layouts personalizados sin bloquear el hilo de interfaz.
Solución: Se implementó generación de PDF del lado del cliente con jsPDF, permitiendo procesamiento asíncrono con indicadores de progreso. Se optimizó el renderizado de tablas para sesiones con 1000+ ítems escaneados usando procesamiento por chunks.
Desafío: Mantener consistencia de tipos desde el esquema de base de datos a través de rutas de API a componentes React.
Solución: Se aprovecharon los tipos generados por Prisma con interfaces TypeScript personalizadas para respuestas de API. Se crearon definiciones de tipos compartidas para extensiones de sesión de NextAuth, asegurando seguridad en tiempo de compilación para verificaciones de rol y contexto de inquilino.
Desafío: Proveer a administradores del sistema métricas en tiempo real a través de todos los inquilinos sin degradación de rendimiento.
Solución: Se usó Promise.all() para paralelizar queries de métricas por inquilino (conteos de usuarios, totales de sesiones, agregados de ítems) con funciones de agregación eficientes de Prisma. Se implementó capa de caching para métricas de dashboard con intervalos de refresco de 5 minutos.
  • Autenticación basada en JWT con refresco automático de token en cada request
  • Verificaciones de revocación de sesión integradas en callbacks de JWT para cumplimiento en tiempo real
  • Capa de almacenamiento de sesiones personalizada trackeando info de dispositivo y razones de revocación
  • Logout forzado con mensajes contextuales (inquilino desactivado, usuario desactivado, login concurrente)
  • Restricciones únicas compuestas asegurando unicidad con alcance de inquilino (ej., tenantId + upcCode)
  • Índices optimizados para queries frecuentemente filtradas (scoping de inquilino, estado de sesión, rangos de fecha)
  • Migraciones de Prisma con estrategia de despliegue zero-downtime
  • Reglas de cascade deletion manteniendo integridad referencial a través de la eliminación de inquilinos
  • Renderizado condicional de componentes basado en rol/permisos en tiempo de compilación
  • Administradores del sistema ven panel de gestión de inquilinos con métricas agregadas
  • Usuarios regulares acceden a flujos de trabajo con alcance de inquilino (escaneo, gestión de sesiones, catálogo de UPC)
  • Managers/admins desbloquean gestión de usuarios con operaciones conscientes de inquilino
  • Motor de layout personalizado para reportes de sesión con tablas de ítems agrupados
  • Formato de etiqueta térmica 4x6 para etiquetas de caja con soporte potencial de código QR
  • Numeración de página, timestamps y branding sutil en footer en todos los exports
  • Indicadores de progreso para generación grande de PDF (1000+ ítems)
  • Obtención de datos impulsada por SWR con actualizaciones optimistas de interfaz
  • Revalidación automática en focus/reconexión para listas de sesiones
  • Estadísticas de sesión en vivo actualizándose durante operaciones de escaneo
  • Inputs de búsqueda/filtrado debounced previniendo llamadas API excesivas
Smart Scan ha transformado flujos de trabajo de escaneo de almacén para múltiples organizaciones a través de su enfoque enfocado y transparente en el registro de sesiones. Posicionándose como una herramienta companion en lugar de un sistema de inventario de reemplazo, llena un gap crítico en los stacks tecnológicos de almacén existentes. Escala Multi-Tenant
Soportando exitosamente múltiples organizaciones con aislamiento completo de datos, revocación automatizada de sesiones y administración de sistema centralizada. Cada inquilino opera independientemente con roles de usuario personalizados y catálogos de UPC.
Integridad de Sesión
Cero pérdida de datos con política de sesión única forzada para usuarios regulares. La revocación de sesión ocurre instantáneamente cuando usuarios/inquilinos son desactivados, con mensajes de logout descriptivos guiando a usuarios hacia administradores.
Excelencia en Exportación
Generación profesional de PDF para todos los tipos de sesión con branding consistente. Las etiquetas 4x6 se integran perfectamente con flujos de trabajo de envío existentes, mientras que los reportes completos de sesión proveen documentación lista para auditoría.
Type Safety y Confiabilidad
Cobertura TypeScript end-to-end detecta bugs en tiempo de compilación. Los tipos generados por Prisma aseguran que los cambios de esquema de base de datos se propaguen de manera segura a través de todas las capas de la aplicación.
Experiencia de Desarrollador
Separación limpia de concerns con rutas de API manejando lógica de negocio, React Server Components optimizando cargas iniciales y client components gestionando interactividad. Hot reload durante desarrollo con loops de feedback instantáneos.
Este proyecto muestra patrones avanzados de desarrollo full-stack incluyendo multi-tenancy, gestión de sesiones, control de acceso basado en roles y flujos de autenticación seguros. La arquitectura balancea complejidad con mantenibilidad, usando frameworks modernos (Next.js 15, React 19, Prisma) para entregar características enterprise con velocidad de startup. El énfasis en transparencia, sin hacer promesas falsas sobre seguimiento de inventario, demuestra madurez de producto y comprensión de necesidades reales de almacén. Smart Scan hace una cosa excepcionalmente bien: documentar sesiones de escaneo con reportes profesionales exportables. Ver Proyecto