Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
App de control de producción para una planta de lácteos (fasalact): captura mobile-first de cada etapa del proceso (preparación de baches, envasado, encajado, enmangado), programa de producción semanal con importación de Excel, cumplimiento planeado vs. ejecutado, estadísticas por operario, control de calidad con firma digital, e informes imprimibles con trazabilidad completa. • Producción: https://control-planta-three.vercel.app • Repo: jefeplantatocancipa/control-planta查看完整 README ↗
App de control de producción para una planta de lácteos (fasalact): captura mobile-first de cada etapa del proceso (preparación de baches, envasado, encajado, enmangado), programa de producción semanal con importación de Excel, cumplimiento planeado vs. ejecutado, estadísticas por operario, control de calidad con firma digital, e informes imprimibles con trazabilidad completa.
@base-ui/react)useActionState)| Rol | Acceso |
|---|---|
jefe_planta | Todo, incluida Administración |
supervisor | Proceso, Baches, Envasado, Encajado, Enmangado, Programa, Cumplimiento, Estadísticas |
operario | Inicio, Proceso (solo lectura, para ver el estado en vivo) |
planeacion | Inicio, Proceso, Programa |
calidad | Inicio, Proceso, Baches, Envasado — solo lectura del proceso; puede firmar (aprobar/rechazar) cada etapa/turno ya cerrado, sin poder iniciar ni finalizar nada |
/proceso) — tablero en vivo del proceso actual, etapa por etapa, con el envasado en curso (unidades, tiempo de inicio, paradas)./baches) — preparación de baches por etapas configurables por producto, con captura de insumos (checklist con lote/peso/marca), lecturas periódicas (curvas de fermentación, etc.), tanques, y balance de masa. Firma de calidad por etapa. Informe imprimible con trazabilidad completa y merma de masa (insumos vs. kg empacados, o vs. el "Kg" final de la etapa de empaque para productos que no se envasan)./envasado) — inicio de envasado ligado a un bache, insumos de empaque con inventario inicial/final, turnos por franja horaria ("cortes") con lecturas de calidad (peso, sellado, fechado) y estibas, paradas de línea, firma de calidad por turno, informe imprimible./encajado) — empacado en cajas de lo ya envasado; se crea automáticamente al cerrar un envasado./enmangado) — etiquetado de vasos, con su propio catálogo (vasos blancos, referencias) y programa, independiente de envasado./programa) — programa semanal de producción (baches y envasado) con importadores de Excel, cumplimiento real vs. planeado, y estados de las órdenes automáticos (según el avance real) con override manual./cumplimiento) — planeado vs. ejecutado por semana y por mes./estadisticas) — desempeño por operario y por proceso./admin) — productos, etapas de proceso, insumos, catálogo de envasado (referencias, insumos, turnos), y usuarios (crear, cambiar rol, resetear contraseña).pendiente → en_proceso → completado), con override manual siempre disponible.calidad o jefe_planta. Las etapas se cierran normalmente sin importar si ya fueron firmadas.closed_by), no solo quién fue elegido como operario responsable al iniciarla.started_at, ended_at, completed_at). Si hace falta corregir alguno, es una corrección manual por SQL directo en Supabase — a propósito, para que el registro conserve su credibilidad.is_staff() (jefe_planta/supervisor) y current_role_is(role) como funciones base (0002_rls.sql); cuando distintos roles necesitan distinto acceso a una misma tabla, la política se separa por operación (_select/_insert/_update/_delete).Crea una cuenta y un proyecto en supabase.com.
En Project Settings → API, copia la Project URL, la anon public key y la service_role key.
Copia .env.local.example a .env.local y pega esos valores:
NEXT_PUBLIC_SUPABASE_URL=https://xxxxxxxxxxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
La service_role key es secreta (nunca se expone al cliente) y solo se usa en server actions ya protegidas por rol, para lo que el rol authenticated no puede hacer por RLS: crear usuarios, resetear contraseñas y leer correos de login en Administración → Usuarios.
Con la CLI de Supabase: supabase link y luego supabase db push. Alternativamente, en el SQL Editor del proyecto, ejecutá en orden numérico los archivos de supabase/migrations/:
| Migración | Qué agrega |
|---|---|
0001_init.sql | Esquema base, catálogos y las 8 etapas de bache por defecto |
0002_rls.sql | Políticas de RLS por rol (is_staff(), current_role_is()) |
0003_views.sql | Vistas para los dashboards (proceso actual, cumplimiento, estadísticas) |
0004_grants.sql | Permisos de tabla para authenticated (necesario además de RLS) |
0005_enmangado_independiente.sql | Programa y órdenes propias de enmangado |
0006_enmangado_vasos_blancos.sql | Catálogo de vasos blancos y referencias de enmangado |
0007_alistamiento_insumos.sql | Etapa "Alistamiento de insumos" con checklist (lote/peso/marca) |
0008_insumos_receta.sql | Catálogo de insumos y receta por producto |
0009_captures_insumos.sql | Flag independiente para etapas con checklist de insumos |
0010_captures_readings.sql | Flag independiente para etapas con lecturas periódicas (curvas) |
0011_programa_import_baches.sql | Columnas para el importador de Excel del programa de baches |
0012_volumen_por_bache.sql | Volumen estándar por producto, para sugerir el volumen del bache |
0013_envasado_orders.sql | Programa de envasado (envasado_orders), importador del Formato de Empaque |
0014_envasado_referencias.sql | Catálogo de referencias empacadas (sku, peso unitario, multiempaque) |
0015_envasado_order_link.sql | Vincula un envasado a su orden de trabajo del programa |
0016_envasado_turnos_cortes.sql | Turnos, insumos de envasado y cortes (checkpoint por turno) |
0017_envasado_insumos_detalle.sql | Presentación por caja y marca en insumos de envasado |
0018_envasado_referencia_insumos.sql | Receta de material de empaque por referencia |
En Authentication → Users → Add user, crea tu usuario. Luego en el SQL Editor, actualiza su rol:
update profiles set role = 'jefe_planta', full_name = 'Tu Nombre'
where id = '<uuid del usuario creado>';
Los siguientes usuarios (supervisores, operarios, planeación, calidad) se crean y administran desde Administración → Usuarios: cambio de rol, activar/desactivar y reset de contraseña, todo sin tocar SQL.
npm install
npm run dev
Abre http://localhost:3000 — te pedirá iniciar sesión con el usuario creado en el paso 3.
npx tsc --noEmit
npm run lint
npm run build
Los tres deben pasar limpio antes de commitear.
App en uso productivo en fasalact, con todos los módulos activos (Baches, Envasado, Encajado, Enmangado, Programa, Cumplimiento, Estadísticas, Administración, y el módulo de Calidad con firma digital). El desarrollo sigue de forma iterativa a partir de feedback operativo directo de la planta.
0019_envasado_control_horario.sql |
| Cortes como inicio/fin de turno; lecturas de calidad y estibas aparte |
0020_bache_volumen_restante.sql | Volumen restante del bache al finalizar un envasado |
0021_encajado.sql | Módulo de encajado (empacado en cajas), autocreado al cerrar un envasado |
0022_tanques.sql | Catálogo de tanques, para el parámetro "Tanque" de las etapas |
0023_envasado_paradas.sql | Paradas de línea a nivel del envasado (con o sin turno activo) |
0024_envasado_lote.sql | Lote de envasado capturado al iniciar |
0025_rol_planeacion.sql | Nuevo rol planeacion |
0026_planeacion_rls_programa.sql | Permisos de escritura de planeación sobre el programa |
0027_envasado_orders_supervisor_update.sql | Supervisor puede actualizar el estado de órdenes de envasado |
0028_backfill_encajados.sql | Backfill de encajados que habían quedado sin crear por un bug |
0029_envasado_insumos_inventario.sql | Inventario inicial/final de insumos de envasado (en vez de "cantidad usada") |
0030_rol_calidad.sql | Nuevo rol calidad |
0031_calidad_firmas.sql | Tablas de firma de calidad (bache_stage_firmas, envasado_corte_firmas) y su RLS |
0032_cierre_firmado_por.sql | Quién ejecuta el cierre de una etapa/turno queda registrado (closed_by) |
0033_producto_requiere_envasado.sql | Productos que no se envasan (ej. cremado) no aparecen en "Iniciar envasado" |
0034_envasado_referencia_id.sql | Vincula cada envasado a su referencia, para calcular kg empacados |