Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Aplicación web para que negocios con uno o varios locales organicen los turnos de trabajo de sus empleados: quién trabaja qué día, en qué horario, y quién cubre feriados y domingos. Reemplaza la planilla o el cuaderno que se usa hoy para armar los turnos. También incluye un módulo de Productos para llevar el catálogo, los costos y los precios de venta del negocio, y un módulo de Caja para registrar ingresos y egresos de dinero por local y turno. Es multi-tenant: cada empresa que la usa está completamente aislada de las demás (a nivel de base de datos, no solo de interfaz).查看完整 README ↗
Aplicación web para que negocios con uno o varios locales organicen los turnos de trabajo de sus empleados: quién trabaja qué día, en qué horario, y quién cubre feriados y domingos. Reemplaza la planilla o el cuaderno que se usa hoy para armar los turnos. También incluye un módulo de Productos para llevar el catálogo, los costos y los precios de venta del negocio, y un módulo de Caja para registrar ingresos y egresos de dinero por local y turno.
Es multi-tenant: cada empresa que la usa está completamente aislada de las demás (a nivel de base de datos, no solo de interfaz).
Si tenés una pestaña abierta en la compu y cargás algo desde el celular, no hace falta apretar F5: al volver a esa pestaña (cambiar de ventana o app y volver) se actualiza sola.
En el celular (pantallas de menos de 768 px) hay una barra fija abajo con cinco secciones — Inicio, Horarios, Productos, Caja y Más (ahí están Usuarios, solo para Super Administrador, y Cerrar sesión) — y la sección en la que estás parado se resalta en negrita con una marca terracota arriba. Dentro de Horarios (de un local), Productos y Caja, arriba de cada pantalla hay pestañas livianas (solo texto, con una raya abajo en la activa) para saltar directo a las demás pantallas de esa sección; el título de la pantalla se omite cuando la pestaña ya lo dice. En Productos las pestañas son Productos, Categorías, Marcas y Proveedores, y un menú ⋯ al lado de Crear producto lleva a Importar Excel, Actualizar costos, Reportes y Funcionalidades — así cada pantalla tiene un único botón fuerte y los filtros van en un botón con borde. En la compu se mantiene la vista de siempre: encabezado con los íconos de Usuarios/Horarios/Productos/Caja (el de la sección actual resaltado en negro y Salir a la derecha), accesos directos en Inicio y un menú con la flecha junto al título para saltar entre pantallas de una sección. En el celular la paleta es azul petróleo y arena (botones y acentos azul petróleo, fondos arena, y un toque terracota en la sección activa); en la compu sigue siendo blanco/gris/negro, sin colores de marca. En las dos, el color se reserva para dar significado puntual (ej. verde/rojo para Ingreso/Egreso en Caja, o distinguir secciones dentro de una misma pantalla).
Otros ajustes solo del celular: los botones, campos y selectores son más altos (40–44 px) para tocarlos sin errar; en los formularios de los paneles laterales el botón Guardar queda fijo abajo (arriba del teclado) sin tener que scrollear hasta el final, y la barra de abajo se esconde mientras se escribe; en el listado de Productos cada fila muestra el precio de venta, Editar/Desactivar/Borrar van en un menú ⋯ (para no tocar Borrar sin querer) y el buscador queda fijo arriba al scrollear (el listado arranca vacío, con una tarjeta "Sin filtros aplicados", hasta que se busca, se filtra o se toca "Ver todos los productos"; en la compu se ve completo siempre); y el botón Funcionalidades se reduce a un ícono "i" en la misma fila que el botón principal (Crear horario, Filtros del Resumen de Caja) para ganar lugar; y en todas las pantallas de Caja hay un botón flotante Nuevo movimiento que además recuerda el último local y turno usados en ese dispositivo, y el Resumen o los Movimientos que estén abiertos se actualizan solos al guardar.
Ninguna confirmación usa el popup nativo del navegador: desactivar/reactivar, borrar para siempre, anular, o un ajuste masivo de costos, todas muestran el mismo diálogo estilizado de la app. Y una lista vacía ("Todavía no hay...") siempre se ve con un ícono arriba del texto, no solo texto gris.
Producción: gestion-turnos-nu.vercel.app
La app tiene dos vistas según el ancho de la pantalla: celular (menos de 768 px) y compu (768 px o más). En el celular está pensada para usar con una mano y cargar cosas rápido; en la compu se mantiene la vista de siempre. Los cambios de celular no tocan la compu.
| Celular | Compu | |
|---|---|---|
| Navegación principal | Barra fija abajo: Inicio, Horarios, Productos, Caja y Más (Usuarios, solo Super Administrador, y Cerrar sesión). La sección actual va en negrita con una marca terracota. | Encabezado arriba con íconos de Usuarios, Horarios, Productos y Caja (el actual en negro) y Salir. |
| Moverse dentro de una sección | Pestañas livianas arriba (solo texto, con raya abajo en la activa): Caja (Resumen, Movimientos, Etiquetas, Deudas), Productos (Productos, Categorías, Marcas, Proveedores), y cada Horario (Calendario, Configuración, Domingos, Feriados). | Flecha junto al título que abre un menú con las demás pantallas de la sección. |
| Inicio | Solo "Quién trabaja hoy" y "Caja de hoy". | Además, accesos directos a Horarios, Productos, Caja y Usuarios. |
| Colores | Azul petróleo y arena, con un toque terracota en lo activo. | Blanco, gris y negro. |
| Ayuda | Ícono ⓘ a la derecha del botón principal. En las pantallas principales (Horarios, Resumen de Caja, Productos) abre "Funcionalidades"; en las demás (Categorías, Marcas, Proveedores, Etiquetas, Deudas, Actualizar costos, Reportes) muestra el texto que explica esa pantalla, que se oculta del cuerpo para ahorrar lugar. | El texto explicativo queda arriba de cada pantalla y hay un botón "Funcionalidades" de ancho completo. |
| Botones y campos | Más altos (40–44 px) para tocarlos sin errar; filtros como botón con borde y un solo botón fuerte por pantalla. | Tamaño normal. |
| Formularios (paneles laterales) | Botón Guardar fijo abajo, arriba del teclado; la barra inferior se esconde mientras se escribe. | Botón al final del formulario. |
| Productos | El listado arranca vacío con la tarjeta "Sin filtros aplicados" (o "Ver todos los productos"); cada fila muestra el precio, con Editar, Desactivar y Borrar en un menú ⋯; buscador fijo arriba; menú ⋯ junto a Crear producto con Importar Excel, Actualizar costos y Reportes. | Listado completo, acciones en cada fila y hub con accesos a Marcas, Categorías, Proveedores, Actualizar costos, Reportes e Importar Excel. |
| Caja | Botón flotante "Nuevo movimiento" en todas las pantallas (recuerda el último local y turno usados); Resumen y Movimientos se actualizan solos al guardar. | Botón "Nuevo movimiento" arriba de Movimientos y botones Movimientos, Etiqueta y Deuda en el Resumen. |
Al loguearte, / muestra un dashboard con accesos directos a Horarios, Productos, Caja (y Usuarios si sos Super Administrador; solo en la compu, en el celular los reemplaza la barra de abajo), quién trabaja hoy en cada local (o si ese turno está Feriado/Cerrado/Sin asignar) y un resumen de Ingresos/Egresos de Caja del día, con link al detalle.
Catálogo de productos del negocio, con Marcas, Categorías y Proveedores como entidades propias (ABM completo: crear, editar, desactivar/reactivar y borrar en forma definitiva). En las tres, cada fila se puede desplegar para ver sus productos (cargados bajo demanda) y reasignar cualquiera a otra marca/categoría/proveedor ahí mismo, sin pasar por el formulario completo de edición.
Registro de ingresos y egresos de dinero de cada local, pensado para cargarse rápido desde el celular al cerrar un turno. Reutiliza los Horarios (locales) y Turnos de la sección anterior — Caja no tiene su propia noción de local ni turno.
/caja): botón "Funcionalidades" con el detalle de todo lo de esta sección (igual que en Productos), un Balance grande arriba (el número que más importa de un vistazo) y, debajo, Ingresos/Egresos/Promedio diario más chicos como dato de apoyo, un gráfico de líneas con los ingresos por día (el eje X muestra hasta 5 fechas espaciadas parejo dentro del período, siempre incluyendo la primera y la última, para que no se amontonen ni se superpongan en el celular), y tres tarjetas colapsables (contraídas por defecto): "Venta por semana" (divide el mes en cuestión en 4 semanas fijas — 1-7, 8-14, 15-21 y 22-fin de mes — con una subtarjeta por semana mostrando Ingresos, Egresos y Promedio diario de esa semana; solo aparece cuando el período es "Este mes" o "Mes anterior", tomando el mes correspondiente en cada caso), "Mejor y peor día" e "Ingresos por turno". Todo filtrable por período (Hoy, Ayer, Últimos 7/30 días, Este mes — el que muestra por defecto —, Mes anterior, Elegir mes —cualquier mes de los últimos años, ej. Enero 2026, sin escribir fechas— o un rango a elección), local, turno y tipo, colapsado detrás de un botón "Filtros" con su "Limpiar filtros", como en Productos. Mientras carga, muestra un esqueleto gris con la forma de lo que va a aparecer en vez de un simple "Cargando..."./caja/movimientos, por defecto muestra el mes en curso): listado filtrable por fecha, local, turno, tipo y etiqueta, con un botón "+ Nuevo movimiento" arriba de los filtros que abre el alta en un panel lateral (se puede anclar para cargar varios seguidos, igual que "Crear producto" en Productos): Tipo (Ingreso ↑ / Egreso ↓) → Etiqueta (filtrada según el tipo elegido; se puede crear una nueva sin salir del formulario) → Importe → Fecha → Local → Turno (o "Sin turno") → Observación opcional. El campo Importe admite sumar varias ventas con + o restar con - (ej. 5000+3000+1500), mostrando el total calculado en vivo. Cada fila muestra Tipo, Etiqueta e Importe, y se puede desplegar para ver fecha, local, turno, usuario y observación; los botones de Editar/Anular quedan separados del de "ver más" para no tocar el equivocado desde el celular. Un Administrador o Super Administrador puede editar cualquier campo de un movimiento (por si se cargó mal) o anularlo con un motivo opcional — un movimiento anulado no se borra, queda visible en el historial marcado como "Anulado" y deja de contar en los totales./caja/etiquetas, solo Administrador/Super Administrador): ABM para clasificar los movimientos (ej. "Venta del Día", "Pago del Mes", "Compra Mercadería"). Una etiqueta ya usada en algún movimiento no se puede borrar ni cambiar de tipo (Ingreso/Egreso) — se desactiva en su lugar, y sigue apareciendo en el historial.| Rol | Alcance | Qué puede hacer |
|---|---|---|
| Administrador de Plataforma | Global, no pertenece a ninguna organización | Da de alta organizaciones nuevas junto con su primer Super Administrador; activa/desactiva organizaciones. Sin acceso operativo a los turnos de ninguna empresa. |
| Super Administrador | Una organización | Todo lo que puede un Administrador, más: crear otros Administradores, y es el único que puede asignar ese rol. |
| Administrador | Una organización | Gestiona horarios, turnos, asignaciones, feriados, domingos y usuarios (crear, editar, activar/desactivar, invitar, restablecer contraseña, borrar en forma definitiva una vez desactivado). No puede crear organizaciones ni Super Administradores. |
| Empleado | Una organización | Solo lectura: ve sus horarios, la grilla semanal, feriados y domingos correspondientes, y puede descargar el horario. |
mainLa seguridad no depende del frontend: todo el aislamiento entre organizaciones y los permisos por rol están reforzados con RLS y funciones de base de datos, no solo con lo que muestra la interfaz.
npm install
npm run dev
Necesita un archivo .env.local con las credenciales del proyecto de Supabase (NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY).
Las migraciones de base de datos están en supabase/migrations/, en orden — se corren manualmente en el SQL Editor de Supabase.
npm run dev # servidor de desarrollo
npm run build # build de producción
npm run test # tests (Vitest)
npm run lint # ESLint
npm run bootstrap # crea la primera organización + su Super Administrador
npm run bootstrap:platform # crea un Administrador de Plataforma
bootstrap y bootstrap:platform son para desarrollo/recuperación técnica: el alta normal de una organización nueva se hace desde /platform una vez que existe al menos un Administrador de Plataforma.
/caja/deudas$ 185.000) pero se guardan como número puro, sin signos.