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 | ✅ |