Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Checklist para el traspaso de turno: se marca con el dedo y el estado viaja dentro del link,
así se comparte por WhatsApp y quien lo recibe lo abre tal cual quedó. Sin cuentas ni base de datos:
es un solo archivo (index.html).
2 de 5).+ (o Enter).× a la derecha de cada línea.| Botón | Color | Qué hace |
|---|---|---|
| Registrar y enviar | verde François | Guarda el traspaso (quién entrega, quién recibe, fecha/hora y % de avance) y abre WhatsApp con el resumen + un link que lleva todo adentro. Un traspaso = un envío. |
| cobre | Descarga un PDF del checklist actual (con entrega/recibe, fecha y tareas) para archivar. | |
| Registro semanal | verde pino | Abre el panel con los traspasos de la semana y la efectividad (% promedio de avance). Desde ahí se descarga PDF y se exporta/importa. |
| Desmarcar | oro | Deja todas las tareas sin marcar para empezar un turno nuevo (no borra las tareas). |
| Vaciar | ladrillo | Borra todas las tareas (pide confirmación). |
Paleta institucional François (verde bosque + crema + cobre), tipografía Inter y el emblema de la taza en el encabezado. Colores por función: verde = acción principal, cobre = guardar/descargar, verde pino = reportes, oro = reversible, ladrillo = destructivo.
.json) e Importar
(fusiona un .json), por si quieren juntar registros de varios equipos a mano.Tarjeta 📸 Traspaso verificado: registra un traspaso con foto tomada en vivo con la
cámara (no se puede elegir de la galería), ubicación del momento y hora puesta por
el servidor. Como esta app es vanilla (sin build), usa supabase-js cargado por CDN.
En index.html, bloque CONFIG (busca SUPABASE_URL):
const SUPABASE_URL = "https://TU-PROYECTO.supabase.co";
const SUPABASE_ANON_KEY = "TU_ANON_KEY"; // pública por diseño; la protege RLS
Hasta configurarlo, la tarjeta muestra “Falta configurar Supabase” y el resto de la app funciona igual.
create table if not exists public.traspasos_turno (
id uuid primary key default gen_random_uuid(),
archivo text not null,
colaborador text,
turno text,
lat float8,
lng float8,
precision_m float8,
created_at timestamptz not null default now() -- la HORA la pone el servidor
);
alter table public.traspasos_turno enable row level security;
create policy "insert autenticado" on public.traspasos_turno
for insert to authenticated with check (true);
create policy "select autenticado" on public.traspasos_turno
for select to authenticated using (true);
insert into storage.buckets (id, name, public)
values ('traspasos','traspasos', false)
on conflict (id) do nothing;
create policy "subir traspasos" on storage.objects
for insert to authenticated with check (bucket_id = 'traspasos');
create policy "ver traspasos" on storage.objects
for select to authenticated using (bucket_id = 'traspasos');
La app no tiene login; para cumplir el RLS authenticated usa sesión anónima.
En Supabase: Authentication → Sign In / Providers → Anonymous sign-ins = ON.
La cámara (getUserMedia) y la ubicación (geolocation) solo funcionan en HTTPS
(o localhost). La app ya está en HTTPS en Vercel, así que ✅.
navigator.mediaDevices.getUserMedia (cámara en vivo). Sin
<input type="file"> ni capture → no se puede subir de la galería.created_at timestamptz default now() en el servidor; nunca la fecha del
teléfono.getCurrentPosition({enableHighAccuracy:true, timeout:8000}) en el mismo
momento de la captura. Si el usuario la niega o expira, el traspaso igual se registra
con lat/lng = null y muestra “sin ubicación”.index.html. Sin frameworks, sin build, sin backend.jspdf (por CDN) para generar los PDF.localStorage — checklist en checklist.v1, registro de traspasos en
checklist.reg.v1 — más el estado en el hash del link.Es un sitio estático de un solo archivo.
https://tu-proyecto.vercel.app.Alternativa por CLI: npm i -g vercel, entrar a la carpeta y vercel.
Si algún día son muchísimas tareas, el link se alarga. Ahí conviene pasar a una versión con base de datos (Vercel KV / Upstash). Para el uso normal de turno no hace falta.