Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A desktop CRM for working cash offers on homes through listing agents: who was contacted, notes per deal and per property, follow-ups as tasks, and a pipeline from first comping to closing.
Built from the design handoff in design_handoff_deal_crm/ (the HTML there is a reference, not code that ships).
Stack: Next.js 16 (App Router) · React 19 · TypeScript · Tailwind 4 · Postgres on Supabase (email login) · Drizzle ORM.
Dashboard · Leads (server-side filters, sorts, search, saved views, bulk actions, paging) · Board · Deal detail · Add/Edit deal · Tasks · Agents · Agent profile · Schedule modal · Settings.
Filtering, sorting, search and paging all run in the database, so Leads, the deal picker and agent search work with thousands of deals.
npm install
.env.example to .env.local and fill it in:
| Variable | Where to get it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase → Project Settings → API |
DATABASE_URL | Supabase → Connect → Transaction pooler string (server only, never exposed to the browser) |
crm schema and leaves any other schema alone:
npm run db:migrate
/login:
npm run dev
[email protected] npm run db:seed
| Command | What it does |
|---|---|
npm run dev / build / start | Next.js |
npm run db:migrate | Applies db/migrations/*.sql in order, once each |
npm run db:seed | Sample data (refuses if the user already has deals) |
npm test | Unit tests for URL/filter parsing, formatting, time zones and the stage model |
npm run lint | ESLint |
proxy.ts protects every route except /login. Every query is scoped by the verified user id, every table has an owner column, and composite foreign keys stop a row from pointing at another user's deal. Row-level security is on for all tables, and the browser-facing roles have no access to the crm schema at all.app/(app)/… authenticated screens (dashboard, leads, board, deals, tasks, agents, settings)
app/login sign in / sign up
components/ shared UI (Button, Modal, Sidebar, ScheduleModal, …)
lib/ queries, server actions, spec/validation, formatting
db/migrations/ SQL schema (source of truth for constraints, triggers and RLS)
scripts/ migrate + seed
tests/ unit tests
Add the three environment variables above to the project, run npm run db:migrate once against the production database, and deploy. Use the pooler connection string for DATABASE_URL.
app/api/dealio (the Anthropic + DealioDesk MCP route) predates this build and is untouched; it needs ANTHROPIC_API_KEY, DEALIO_MCP_URL, DEALIO_MCP_TOKEN.