Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
mantenimientos de flotas
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Sistema de mantenimiento para flotas de camiones en Argentina, multiempresa: cada flota con sus datos separados, y talleres y recapadoras como proveedores vinculados.
src/: aplicación Next.js con tres apps (Tallerflota, Chofer y Taller) sobre las mismas cuentas.supabase/migrations: esquema de base de datos para Supabase, en orden.supabase/pruebas: pruebas del esquema en un Postgres local.prototipo/flota-al-dia.html: prototipo navegable de las pantallas, con datos de ejemplo.Cada persona entra directo a la suya según su rol, y cada una se instala en el celular con su propio ícono.
| App | Dirección | Para quién | Qué hace |
|---|---|---|---|
| Tallerflota | /empresa/<id>/panel | Dueños, administración, jefe de taller | Tablero de costos (por unidad, por chofer, por mes), viajes, taller, gastos, vencimientos, equipo |
| Tallerflota Chofer | /chofer | Choferes | Escanear el QR de la unidad, chequeo de salida, viaje, combustible y gastos, aviso de fallas con fotos |
| Tallerflota Taller | /taller | Mecánicos | Fallas pendientes, resolver en un paso con fotos y costos, órdenes largas, historial |
Cada unidad tiene un código de 8 caracteres y su QR (ficha de la unidad → Imprimir etiqueta, o
Flota y choferes → Imprimir QR para todas). El QR abre /u/<código>:
Las etiquetas se imprimen desde la versión publicada, para que el QR apunte a internet y no a la PC.
Actividad, en el menú debajo de Equipo (sólo administradores): quién cambió roles, invitó o quitó personas, borró unidades, gastos o documentos, cerró órdenes, descartó fallas o intentó entrar donde su rol no deja, con hora, IP y navegador. Lo anota la base con triggers; nadie lo puede editar ni borrar.
Qué puede hacer cada rol está en una sola tabla, src/lib/permisos.ts. Quien intenta entrar donde su rol
no deja ve qué no puede hacer, qué roles sí pueden y a quién pedírselo.
planes): ahí se cambian los precios y la página de venta se actualiza sola.solicitudes.Las flotas que ya existían antes de la migración 0006 quedaron activas, sin tope ni vencimiento. Para cambiarlas,
editá su fila en suscripciones.
Equipo → Invitar a alguien: se elige el rol y se manda el enlace por WhatsApp, se copia o se muestra como QR. El enlace sirve una sola vez y vence en 7 días.
supabase/migrations (0001, 0002, 0003…). Una migración ya aplicada no se edita: los cambios
van en la siguiente. /api/estado dice si falta alguna.https://flotapp.vercel.app).http://localhost:3000/** y https://<tu-dominio-de-vercel>/**..env.example como .env.local y completá los valores
(Supabase → Project Settings → API).NEXT_PUBLIC_SUPABASE_URL y NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY en
Vercel → Settings → Environment Variables. NEXT_PUBLIC_SITE_URL no hace falta: en Vercel la app
toma su dirección de cada pedido. Si cambiás una variable, volvé a publicar (Redeploy), porque
las NEXT_PUBLIC_* se fijan al compilar.vercel.json fija las funciones en la misma región que la base de Supabase, para que
cada consulta no cruce el continente: São Paulo (gru1 en Vercel, sa-east-1 en Supabase).FLOTAPP_SECRETO_LIMITES (sólo servidor, 32+ caracteres al azar) firma las claves del límite de
intentos de ingreso y registro.localhost),
cargá NEXT_PUBLIC_TURNSTILE_SITE_KEY en Vercel y en .env.local, publicá, y recién después
activalo en Supabase → Authentication → Bot and Abuse Protection con la clave secreta. Al revés, el
ingreso se traba.select valor from secretos where clave = 'pagos'; y copiá ese valor en Vercel
como . Con ese secreto la app anota los pagos sin usar la llave maestra de la base.npm install
npm run dev
npm test
npm run test:db
npm test corre las pruebas de las reglas de carga. npm run test:db levanta un Postgres local y corre
las pruebas de aislamiento, permisos, viajes, taller y tablero del esquema.
npm run demo
Levanta la app con una flota de ejemplo en memoria (unidades, viajes, fallas con fotos, gastos y
vencimientos), sin Supabase ni cuentas: sirve para ver y probar cada pantalla. Lo que se carga dura
mientras corre el servidor. El rol se cambia con la cookie demo_rol (admin, jefe_taller,
mecanico, chofer o lectura). Sólo funciona en desarrollo: una compilación de producción lo ignora.
FLOTAPP_SECRETO_PAGOSMP_ACCESS_TOKEN
(primero el de prueba, después el de producción).https://<tu-dominio>/api/pagos/mercadopago, con los eventos
Planes y suscripciones y Pagos. Copiá la clave secreta en Vercel como MP_WEBHOOK_SECRET.APRO). Los avisos de prueba se mandan con el simulador de Webhooks./api/health responde 200 si la app y la base andan (para monitoreo, sin datos de
configuración). /api/estado, sólo para administradores, muestra qué variables de Supabase existen
(sólo los nombres), si las migraciones están al día y la demora a la base. Nunca devuelve claves.