No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
Sistema de gestión logística para una empresa de encomiendas y paquetería, rediseñado a partir del sistema legado ("Neo_Encomiendas") con una interfaz moderna y una arquitectura de frontend mantenible. Este proyecto es solo frontend: no hay backend real. Todos los datos son simulados con un store en memoria (Zustand) que persiste en localStorage, así que podés navegar, crear, editar y eliminar registros y los cambios se mantienen entre recargas del navegador.Read the full README ↗
Sistema de gestión logística para una empresa de encomiendas y paquetería, rediseñado a partir del sistema legado ("Neo_Encomiendas") con una interfaz moderna y una arquitectura de frontend mantenible.
Este proyecto es solo frontend: no hay backend real. Todos los datos son simulados con un store en memoria (Zustand) que persiste en localStorage, así que podés navegar, crear, editar y eliminar registros y los cambios se mantienen entre recargas del navegador.
localStorage)geist, tipografías oficiales de Vercel, sin depender de Google Fonts)El tema está inspirado en el estilo de Vercel: base neutra en blanco y negro puro (fondo #000 en modo oscuro), tipografía Geist y un único color de acento en azul celeste (oklch(0.588 0.158 241.966), equivalente a sky-600/sky-500) para botones, estados activos, enlaces y foco. Todos los colores viven como variables OKLCH en src/app/globals.css, así que cambiar el acento de marca es cuestión de editar --primary, --ring, --sidebar-primary e --info.
pnpm install
pnpm dev
Abrí http://localhost:3000. Vas a ser redirigido a /login.
Usuario de prueba: cualquier DNI o alias de la nómina de personal simulada funciona con cualquier contraseña de 4+ caracteres (es un login simulado, no hay validación real). Por ejemplo:
41114146demo1234Para producción:
pnpm build
pnpm start
src/
├── app/ # Rutas (App Router)
│ ├── login/ # Pantalla de acceso
│ └── (app)/ # Grupo de rutas autenticadas (sidebar + header)
│ ├── panel/ # Tablero principal (kanban de filtros)
│ ├── encomiendas/ # Alta, activas, pendientes, recepción, etc.
│ ├── levantes/
│ ├── cajas/ # Cierre de caja y control
│ ├── crr/ # Contra reembolso
│ ├── clientes/
│ ├── personal/
│ ├── vehiculos/
│ ├── sucursales/
│ ├── rutas/
│ ├── localidades/
│ └── mercadopago/ # Integración simulada
├── components/
│ ├── ui/ # Primitivas shadcn/ui (button, input, table, dialog, etc.)
│ ├── layout/ # Sidebar, header, guard de autenticación
│ ├── shared/ # DataTable genérica, StatCard, StatusBadge, ConfirmDialog, etc.
│ └── <dominio>/ # Componentes específicos por módulo (encomiendas, clientes, personal...)
├── store/ # Zustand: auth-store, data-store (CRUD de todas las entidades), ui-store
├── lib/
│ ├── mock/ # Datos de referencia y generación determinística de datos de prueba
│ ├── format.ts # Helpers de formato (moneda, fecha)
│ └── utils.ts # Helper `cn()` de clases
└── types/ # Modelo de dominio (Encomienda, Cliente, Personal, Vehiculo, etc.)
useDataStore (Zustand). Si en el futuro se conecta un backend real, solo hay que reemplazar las acciones del store por llamadas a una API; los componentes no necesitan cambiar.DataTable genérica (ordenamiento, búsqueda, paginación) y una familia de StatusBadge se reutilizan en más de 15 pantallas distintas.localStorage y regenerar los datos desde src/lib/mock.