Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Sistema de inspección de calidad en planta empaquetadora de arándanos. Captura móvil offline-first y reportabilidad ejecutiva.
Translation pending
BusinessTypeScript · PLpgSQLGitHub @ALEXCHUYE14OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Sistema de Control de Calidad — Arándanos (BH-F-CCA-006) PWA offline-first para la inspección de calidad de producto terminado (P.T.) en clamshell en planta empaquetadora de arándanos. Dos roles: Inspector de campo (captura móvil) y Jefatura de Calidad (dashboard + reportería + sincronización con el Excel maestro). Construido con Next.js 15 (App Router, TypeScript), Tailwind CSS, Supabase (PostgreSQL + RLS + Realtime + Auth), Dexie/IndexedDB (offline), Zustand, Recharts, y export PDF/PNG + Excel.Read the full README ↗
PWA offline-first para la inspección de calidad de producto terminado (P.T.) en clamshell en planta empaquetadora de arándanos. Dos roles: Inspector de campo (captura móvil) y Jefatura de Calidad (dashboard + reportería + sincronización con el Excel maestro).
Construido con Next.js 15 (App Router, TypeScript), Tailwind CSS, Supabase (PostgreSQL + RLS + Realtime + Auth), Dexie/IndexedDB (offline), Zustand, Recharts, y export PDF/PNG + Excel.
npm install
cp .env.example .env.local # (opcional) completar credenciales de Supabase
npm run dev # http://localhost:3000
Sin credenciales de Supabase la app corre en modo local: todo se guarda en IndexedDB del dispositivo. Ideal para demo y pruebas de campo. Al configurar Supabase, se activa la sincronización en la nube y el tiempo real.
Comandos útiles: npm run build, npm start, npm run typecheck, npm run lint.
supabase/schema.sql.
Crea tablas (muestras, clamshells, profiles, defect_catalog), índices,
políticas RLS, funciones RPC (rendimiento_empacador, rendimiento_semanal)
y activa Realtime.URL y anon key a tu .env.local
(NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY).profiles con
rol = 'inspector' (trigger handle_new_user). Para marcar a alguien como
Jefatura de Calidad:
update public.profiles set rol = 'jefatura'
where id = (select id from auth.users where email = '[email protected]');
NEXT_PUBLIC_SUPABASE_URL/ANON_KEY configurados, /login pasa a ser
obligatorio para entrar (lo aplica src/middleware.ts) y /dashboard queda
restringido a perfiles jefatura — un inspector que intente entrar es
redirigido a /inspector. Sin esas variables, el sistema sigue 100% abierto
y local, como antes.NEXT_PUBLIC_SUPABASE_URL y
NEXT_PUBLIC_SUPABASE_ANON_KEY.Alternativa por CLI:
npm i -g vercel
vercel # primer deploy (preview)
vercel --prod # producción
ME-XXXXX); la cabecera se repite por fila.% = conteo de bayas con defecto / N° de bayas evaluadas
(por clamshell), exactamente como las fórmulas del maestro.Descarte = defectos críticos (cols 39–71) / total bayas;
Aprovechable = defectos leves (cols 27–38) / total bayas;
Cat 1 = 1 − Aprovechable − Descarte.ESTÁNDAR /CLAMSHELL = CUMPLE si NOTA = 15. La app deriva la
NOTA/veredicto desde la hoja Tolerancias (umbrales por categoría + suma ≤ 10%),
y permite que el inspector la ajuste manualmente.src/lib/columns.ts.Base de Datos, ubícate en la primera
celda de datos de una fila nueva y pega con Ctrl+V: cada valor cae en su
columna sin mover encabezados..xlsx con la hoja Base de Datos (124 columnas)
y reproduce las hojas Tolerancias y Control de Cambios.Los porcentajes se exportan como fracción (0–1); las celdas del maestro tienen formato de porcentaje, por lo que se muestran correctamente al pegar.
src/
middleware.ts Protección de rutas (login obligatorio, /dashboard = jefatura)
app/ Rutas (Next App Router)
page.tsx Selector de rol
login/ Login (email + contraseña, Supabase Auth)
inspector/ Lista + captura móvil
reporte/[id]/ Reporte visual + export PDF/PNG
dashboard/ Panel de Jefatura de Calidad
components/
ui/ Primitivos (button, card, input, badge)
inspector/ Captura (contador de defectos, formularios)
report/ Reporte visual 1:1
dashboard/ Gráficos (Recharts)
StatusBar.tsx Estado de conexión/sync + sesión activa (logout)
lib/
defects.ts Catálogo de 45 defectos + tolerancias
columns.ts Mapa exacto de las 124 columnas
calc.ts Motor de cálculo (% , KPIs, CUMPLE/NO CUMPLE)
excel.ts Copiar TSV + export XLSX
db.ts / sync.ts IndexedDB (Dexie) + sincronización Supabase
analytics.ts Agregaciones del dashboard
supabase.ts Cliente de navegador (cookies vía @supabase/ssr)
supabase-middleware.ts Cliente para middleware.ts (Edge)
hooks/
useMuestras.ts Acceso a datos (dexie-react-hooks)
useAuthSync.ts Sincroniza sesión de Supabase Auth → store
supabase/schema.sql Script completo de base de datos
public/ manifest, service worker, íconos PWA
RESIDUOS DE COSECHA, DEFECTOS DE APARIENCIA y OTROS se
fijaron en 5% (inferido del layout de la hoja Tolerancias). Son parametrizables
en src/lib/defects.ts (TOLERANCES)..xlsx original puede sustituirse
xlsx (SheetJS) por exceljs en src/lib/excel.ts; el mapa de columnas ya está
listo para ambos.src/app/providers.tsx).