Skip to content

j2devs/clinicbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✚ ClinicBook - Klinik Otomasyon Sistemi (v3.1)

ClinicBook, klinisyenlerin (doktorlar, fizyoterapistler, psikologlar vb.) randevularını, hastalarını ve klinik performanslarını yönetebilecekleri, Activepieces tabanlı otomasyon desteğine sahip modern bir yönetim panelidir.

🚀 Teknoloji Stack'i

Backend

  • Framework: Fastify (Node.js)
  • ORM: Prisma
  • Veritabanı: PostgreSQL
  • Auth: JWT (Jose kütüphanesi)
  • Otomasyon: Node-cron (Hatırlatmalar) & Activepieces Webhook entegrasyonu

Frontend

  • Framework: React 19 (Vite)

  • State Management: Zustand

  • Styling: Vanilla CSS (Custom Properties / Theme system)

  • Charts: Recharts

  • Icons: Lucide React

  • Tarih İşlemleri: date-fns


🛠 Kurulum ve Başlangıç

  1. Depoyu Klonlayın ve Bağımlılıkları Yükleyin Hem clinicbook-backend hem de clinicbook-frontend klasörlerinde terminali açıp şu komutu çalıştırın: 1 npm install

  2. Veritabanı ve Ortam Değişkenleri clinicbook-backend klasörü içerisinde bir .env dosyası oluşturun (örnek .env.example dosyasını inceleyin). En kritik değişkenler:

  • DATABASE_URL: PostgreSQL bağlantı adresiniz.
  • JWT_ACCESS_SECRET: Rastgele uzun bir karakter dizisi.
  1. Veritabanı Şemasını Hazırlayın Backend klasöründe şu komutu çalıştırarak tabloları oluşturun ve Prisma Client'ı generate edin: 1 npx prisma db push

  2. Hata Yönetimi Sistem genelinde hatalar standartlaştırılmıştır. Backend'den gelen tüm hatalar { message: '...' } formatındadır. Frontend tarafında getErrorMessage utility'si kullanılarak kullanıcıya teknik olmayan, anlamlı mesajlar gösterilir.


📂 Proje Yapısı

Backend (/src)

  • controllers/: API mantığının bulunduğu yer (Auth, Randevu, Hasta, Stats, Webhooks).
  • services/:
    • scheduler.ts: 24 saat ve 2 saat kala çalışan SMS/Email hatırlatma cron jobları.
    • activepieces.ts: Otomasyon akışlarını tetikleyen webhook göndericisi.
  • routes/: Fastify endpoint tanımlamaları.
  • prisma/schema.prisma: Veritabanı modelleri (User, Patient, Appointment, SessionNote, Survey vb.).

Frontend (/src)

  • pages/: Sayfa bileşenleri (Dashboard, Calendar, Patients, Analytics, Settings).

  • store/: Zustand store'ları (Auth, Appointment, Patient). API çağrıları burada yönetilir.

  • services/: Axios instance ve endpoint tanımlamaları.

  • styles/theme.css: Global CSS değişkenleri ve renk paleti.


🔑 Önemli İş Akışları

  1. Multi-Tenancy: Her kayıt olan kullanıcı bir "Klinik" sahibidir. Veriler userId üzerinden izole edilir.
  2. Slug Sistemi: Her klinisyene ismi üzerinden benzersiz bir slug (örn: ahmet-kaya) atanır. Bu slug, hastaların dışarıdan randevu alabileceği public booking sayfası için kullanılır.
  3. Otomasyon (PRD 6.3): Randevu oluşturulduğunda veya iptal edildiğinde activepieces.ts üzerinden harici otomasyon servislerine (SMS/Telegram vb.) sinyal gönderilir.
  4. Takvim Senkronizasyonu: Takvimdeki sürükle-bırak işlemleri anlık olarak backend'de startTime ve endTime günceller.

🛠 Yararlı Komutlar

  • npx prisma studio: Veritabanını tarayıcı üzerinden görüntülemek ve düzenlemek için.

  • npx prisma generate: Şemada değişiklik yaptıktan sonra Prisma client'ı güncellemek için.


Not: Bu proje DigitalOcean Studen Pack veya Hetzner VPS üzerinde self-hosted çalışacak şekilde tasarlanmıştır. Tüm mimari vendor lock-in (dışa bağımlılık) olmadan kurgulanmıştır.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages