Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
블루베리 포장 공장의 품질 검사 시스템으로 오프라인 모바일 캡처와 경영진 보고 기능을 제공합니다
Sistema de inspección de calidad en planta empaquetadora de arándanos. Captura móvil offline-first y reportabilidad ejecutiva.
비즈니스TypeScript · PLpgSQLGitHub @ALEXCHUYE14온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
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.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).