Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
A schedule that never double-books, punch cards and sessions that run themselves, and every therapist books their own slot — for clinics with multiple branches, rooms, and therapists.
BusinessTypeScript · PLpgSQLGitHub @oavital77-codeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
פלטפורמת SaaS רב-דיירית (multi-tenant) לניהול השכרת קליניקות — כל קליניקה ("דייר"/tenant) עם הסניפים, החדרים, המחירון ושיטת התשלום שלה, נרשמת בעצמה. נבנתה בהשראת oavital77-code/claude-test ("בקליניקה" / Cleana המקורי) — מערכת חד-דיירית בפרודקשן שאין לגעת בה. הריפו הזה הוא בנייה חדשה לגמרי, לא fork, לפי המפרט שהתקבל (SAASMIGRATIONSPEC.md — לא נכלל בריפו, שמור אצל מי שהזמין את הפיתוח). להרצה, לתפעול ולתיקון תקלות — docs/HANDBOOK.md. לדיווח על פגיעת אבטחה — SECURITY.md. לתנאי השימוש בקוד — LICENSE.Read the full README ↗
פלטפורמת SaaS רב-דיירית (multi-tenant) לניהול השכרת קליניקות — כל קליניקה ("דייר"/tenant) עם הסניפים, החדרים, המחירון ושיטת התשלום שלה, נרשמת בעצמה.
נבנתה בהשראת oavital77-code/claude-test
("בקליניקה" / Cleana המקורי) — מערכת חד-דיירית בפרודקשן שאין לגעת בה. הריפו
הזה הוא בנייה חדשה לגמרי, לא fork, לפי המפרט שהתקבל
(SAASMIGRATIONSPEC.md — לא נכלל בריפו, שמור אצל מי שהזמין את הפיתוח).
להרצה, לתפעול ולתיקון תקלות — docs/HANDBOOK.md.
לדיווח על פגיעת אבטחה — SECURITY.md. לתנאי השימוש בקוד — LICENSE.
לפני כל משימה: קראו את PROGRESS.md — מה בנוי, מה נבדק, ומה עדיין
נותר, לפי סדר העבודה שהמפרט עצמו ממליץ עליו.
Next.js 15 (App Router) + TypeScript, Supabase (Postgres + RLS),
Tailwind + shadcn/ui (RTL), Vercel fra1 + Vercel Cron, WooCommerce
(פר-קליניקה), Resend, Sentry, ו-PayPlus לחיוב הפלטפורמה עצמה.
הזהות היא Clerk, לא Supabase Auth. המערכת עברה, וזו המלכודת הנפוצה
ביותר כאן: auth.uid() זורקת בפונקציות ה-DB, כי ה-sub של Clerk הוא
מחרוזת ולא uuid. כל פונקציה חדשה חייבת להשתמש ב-app_user_id().
ר' פרק 5 ב-docs/HANDBOOK.md.
כל שורה בכל טבלה עסקית שייכת לקליניקה אחת (clinic_id). ה-clinic_id
תמיד נגזר בצד השרת מזהות המשתמש (app_user_id() → profiles.clinic_id)
— אף פעם לא מתקבל כפרמטר מהלקוח. ר' CLAUDE.md לחוקי הברזל המלאים (חלקם עדיין תקפים
כמו שהם מהמערכת המקורית: RPC בלבד לזרימות עסקיות, מניעת חפיפה ברמת ה-DB,
FIFO על כרטיסיות, מטפל לא רואה מטפל אחר).
npm install
cp .env.example .env.local # למלא פרטי פרויקט Supabase
npm run dev
יש להריץ את supabase/migrations/*.sql לפי הסדר על פרויקט Supabase (או
supabase db push אם מחובר CLI). לבדיקת הסכמה מול Postgres מקומי בלי
פרויקט Supabase בכלל — ר' supabase/tests/README.md.
app/
signup/, onboarding/ → הרשמת owner + wizard הקמה
invite/[token]/ → הצטרפות מטפל/ת דרך קישור הזמנה
login/, suspended/
schedule/ → הזמנת חדר + "ההזמנות שלי" (מינימלי)
admin/settings/ → מחירים + שיטת תשלום (Woo) + הזמנות מטפלים
superadmin/ → רשימת קליניקות, השעיה/הפעלה
api/woo/webhook/[clinicId]/ → webhook Woo פר-קליניקה
api/cron/ → materialize/reminders/cleanup/poll-woo, per-clinic loop
lib/
supabase/ client/server/admin + types (ידני כרגע, ר' PROGRESS.md)
auth/ requireClinicAdmin() וכו'
time/ מקבל timezone כפרמטר (per-clinic, לא hardcoded)
woo/ process-order/rest-client/verify/poll — הכל clinic-scoped
supabase/
migrations/ סכמה + RLS + ~60 RPCs, ממוספר כרונולוגית
tests/ harness replay מקומי + isolation smoke test (שתי קליניקות)