Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A single-user (single-workspace-per-account) recruiting pipeline template. Kanban-style board, requisition tracking, candidate detail, analytics, CSV import/export. Built on TanStack Start + Lovable Cloud (Supabase under the hood).
• Glassmorphism aesthetic: frosted cards, backdrop blur, teal accent
• Palette: teal (primary), near-black text, off-white/teal-tinted gradient background
• Mobile-first responsive layout throughout檢視完整 README ↗A single-user (single-workspace-per-account) recruiting pipeline template. Kanban-style board, requisition tracking, candidate detail, analytics, CSV import/export. Built on TanStack Start + Lovable Cloud (Supabase under the hood).
profiles — one row per auth user, auto-created via on_auth_user_created trigger. Stores full name, job title (with job_title_other free-text fallback when "Other" is chosen), company name, industry, size, plus onboarding_step (1–3) and onboarding_completed_at for resumable onboardingrequisitions — open roles: title, department, hiring_manager, status (open/on_hold/filled/closed), target_start_date, notes, is_samplecandidates — name, email, phone, requisition_id, source, stage (applied/screen/interview/offer/hired/rejected), resume_link, rating (1-5), notes, last_activity_at, is_samplestage_history — append-only log of stage transitions; written by the tg_candidate_stage_change trigger on candidate insert/updatestage_history — append-only log of stage transitions; written by the tg_candidate_stage_change trigger on candidate insert/updateThere are no orgs, no admin/member roles. Every table has a user_id uuid column, and every RLS policy scopes to auth.uid() = user_id. One user's requisitions and candidates are never visible to another user.
SECURITY DEFINER and SECURITY INVOKER functions pin search_path = publichandle_new_user (SECURITY DEFINER, trigger-only) has EXECUTE revoked from anon and authenticatedseed_sample_data and clear_sample_data are SECURITY INVOKER — they run under the caller's RLS and always resolve the user via auth.uid(); never trust a client-supplied user idis_sample = true; the clear function only deletes rows where is_sample = true AND user_id = auth.uid()_authenticated layout route (ssr: false) redirects unauthenticated users to /auth before rendering any child routeManaged Google OAuth is enabled by default via Lovable Cloud. To use your own Google credentials:
Public: / (landing), /auth (sign in / sign up), /docs
Onboarding: /onboarding — 3-step flow shown after signup (personal info → company info → import data or pick sample data). Own auth gate (ssr: false), resumable via profiles.onboarding_step. The /_authenticated gate redirects here whenever onboarding_completed_at is null. Sample data no longer seeds automatically — it's an explicit choice on Step 3.
Authenticated (/_authenticated/*):
/pipeline — Kanban board (default view). Desktop drag-and-drop + stage dropdown as touch/mobile fallback. Filter by requisition and source./requisitions — grid of open roles with per-req candidate counts, create/edit/close/candidates/$id — full candidate detail with stage history timeline/analytics — funnel bar chart, source pie, average time-in-stage, KPIs/import — CSV upload with downloadable template, header auto-mapping, preview table/export — CSV export of candidates and requisitions/settings — profile (full name, role, company, industry, size — all editable), "Connect your tools" (marked Coming soon), clear sample datastage_history currently exists; brand-new accounts show zero time-in-stage until a few transitions happenCarries over on remix:
Does NOT carry over:
bun install
bun run dev
The route tree in src/routeTree.gen.ts is regenerated automatically by the TanStack Router Vite plugin — do not edit it by hand.