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.