Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗PWA (Progressive Web App) para la gestión de un taller de herrería, optimizada para tablets y celulares. Los datos viven en Supabase y se leen y escriben en tiempo real; requiere conexión y sesión iniciada.
postgres_changes) como única fuente de datosmanifest.ts + public/sw.js. El Service Worker solo purga caches antiguos; no hay estrategia de caché ni modo offline.src/
├── app/ # Rutas App Router + manifest.ts (PWA)
├── components/
│ ├── ui/ # Primitivos (Button, Input, Modal, Card, Table, Badge…)
│ ├── layout/ # AppShell, Header, BottomNav
│ ├── materiales/ # CRUD de materiales
│ ├── calculadora/ # Piezas y visualización de cortes
│ ├── proyectos/ # Lista y detalle de proyectos
│ ├── configuracion/# Cuenta (login), insumos y datos del taller
│ └── cotizaciones/ # Lista y formulario de cotización
├── lib/
│ ├── cutting/ # Algoritmo de corte (First-Fit Decreasing)
│ ├── pricing/ # Motor de cotización
│ ├── pdf/ # Generación PDF (jsPDF + autotable)
│ ├── whatsapp/ # Compartir por WhatsApp (Web Share + wa.me)
│ ├── supabase/ # Cliente Supabase (singleton)
│ └── utils/ # cn, id, format, imagen…
├── types/ # Interfaces de dominio
├── constants/ # Defaults y presets
├── hooks/ # useMateriales, useProyectos, useCotizaciones, useConfig, useSync (solo auth)
├── stores/ # Zustand (estado de UI)
└── data/ # seed.ts: catálogo inicial
supabase/migrations/ # Esquema SQL
npm install
npm run dev # desarrollo
npm run build # build de producción
npm run lint # lint
npx tsc --noEmit # verificación de tipos
supabase/migrations/0002_direct_tables.sql en el SQL Editor. Crea las tablas materiales, proyectos, cotizaciones y configuracion, con RLS para que cada usuario solo acceda a sus filas (user_id). Las columnas están en camelCase entre comillas para coincidir 1:1 con los tipos TypeScript..env.local para desarrollo y en los ajustes del proyecto en Vercel para producción):
NEXT_PUBLIC_SUPABASE_URL (ej. https://xxx.supabase.co)NEXT_PUBLIC_SUPABASE_ANON_KEYAl primer login, si las tablas están vacías, los hooks insertan automáticamente los datos por defecto de src/data/seed.ts. Todos los hooks leen y escriben directo en Supabase y se actualizan en vivo mediante Realtime.
supabase/migrations/0001_init.sqles la migración histórica (tabla genéricasync_rowsdel esquema offline-first anterior), reemplazada por0002. No es necesaria en instalaciones nuevas.
| Fase | Entregable | Estado |
|---|---|---|
| 1 | Scaffold, PWA, UI base | ✅ |
| 2 | CRUD de materiales | ✅ |
| 3 | Calculadora Cutting Stock 1D + proyectos | ✅ |
| 4 | Motor de cotización + configuración | ✅ |
| 5 | PDF cliente/taller + WhatsApp | ✅ |
| 6 | Refactor a Supabase directo (sin Dexie ni sync-engine) | ✅ |
| 7 | Soporte multimaterial por proyecto y logo del taller | ✅ |