Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.