Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
중복 예약 없는 일정, 자동 출석·세션 관리, 치료사별 자체 예약으로 다지점·다실·다인원 클리닉에 최적
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.
비즈니스TypeScript · PLpgSQLGitHub @oavital77-code온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
פלטפורמת SaaS רב-דיירית (multi-tenant) לניהול השכרת קליניקות — כל קליניקה ("דייר"/tenant) עם הסניפים, החדרים, המחירון ושיטת התשלום שלה, נרשמת בעצמה. נבנתה בהשראת oavital77-code/claude-test ("בקליניקה" / Cleana המקורי) — מערכת חד-דיירית בפרודקשן שאין לגעת בה. הריפו הזה הוא בנייה חדשה לגמרי, לא fork, לפי המפרט שהתקבל (SAASMIGRATIONSPEC.md — לא נכלל בריפו, שמור אצל מי שהזמין את הפיתוח). להרצה, לתפעול ולתיקון תקלות — docs/HANDBOOK.md. לדיווח על פגיעת אבטחה — SECURITY.md. לתנאי השימוש בקוד — LICENSE.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 (שתי קליניקות)