尚未收集儲存庫資訊。
尚未偵測到更新。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.