Next.js, Prisma ve Neon PostgreSQL ile hazırlanmış üniversite projesidir. Hasta tarafında hastane, tıbbi birim, doktor ve saat seçilerek randevu alınır. Yönetim panelinde admin, sekreter ve doktor rolleriyle randevu süreci takip edilir.
- Hastane, tıbbi birim ve doktor seçerek telefon doğrulaması ile randevu oluşturma
- Telefon doğrulaması ile alınan
randevularımsekmesinden aktif randevuları görüntüleme ve iptal işlemini sağlama - Demo/test amacıyla telefon doğrulama OTP kodunu ekranda gösterme
- Admin panelinde dashboard, randevu, hasta, hastane, birim, doktor, sekreter ve çalışma saati yönetimi
- Sekreter panelinde günlük randevu takibi, TC Kimlik No ile arama ve hasta geldi onayı
- Doktor panelinde yalnızca o doktora ait ve sekreter tarafından aktif gün içerisinde onaylı randevuları görüntüleme
- Doktorun kendi sekreter onaylı hastası için not eklemesi, güncellemesi ve silmesi
- Aktif doktorlar için hafta içi çalışma saatlerini otomatik oluşturma
- Randevu saatinden 15 dakika sonra gelmeyen hastaları otomatik
Gelmedidurumuna alma
- Next.js
16.2.6 - React
19.2.4 - Prisma
6.19.3 - PostgreSQL / Neon
- NextAuth
5.0.0-beta.31 - Tailwind CSS 4
- bcryptjs
Projede ek UI veya form kütüphanesi kullanılmamıştır.
npm install
npx prisma generate
npm run devUygulama varsayılan olarak aşağıdaki adreste çalışır:
http://localhost:3000.env.local dosyası oluşturup .env.example içindeki değerleri doldurun.
DATABASE_URL="postgresql://USER:PASSWORD@HOST/DB?sslmode=require"
DIRECT_URL="postgresql://USER:PASSWORD@HOST/DB?sslmode=require"
NEXTAUTH_SECRET="your-secret-here"
NEXTAUTH_URL="http://localhost:3000"
NODE_ENV="development"Neon kullanırken DATABASE_URL pooled bağlantı, DIRECT_URL ise direct bağlantı adresi olmalıdır.
Migration uygulamak için:
npx prisma migrate deployŞemayı kontrol etmek için:
npx prisma validateDemo veriler Neon üzerinde tutulur. Repo içinde geçici seed dosyası bırakılmamıştır.
Mevcut test verileri:
- Birden fazla hastane
- Hastanelere bağlı tıbbi birimler
- Birimlere bağlı doktorlar
- Aktif doktorlar için otomatik 14 günlük hafta içi randevu saatleri
- Admin, sekreter ve doktor panel kullanıcıları
Admin hesabı:
Kullanıcı adı: admin
Şifre: TempPass123!Sekreter hesabı:
Admin hesabı admin panelinden manuel oluşturulabilir, live vercel'da linkten denemek için:
Kullanıcı adı: sekreter
Şifre: TempPass123!Doktor hesabı:
Admin hesabı admin panelinden manuel oluşturulabilir, live vercel'da linkten denemek için:
Kullanıcı adı: ece_polat_ecepolat
Şifre: TempPass123!- Ana ekranda doktor veya tıbbi birim aranır ya da hastane seçilir.
- Hastane, tıbbi birim ve doktor seçilir.
- Sistem uygun tarihleri ve saatleri gösterir.
- Telefon numarası girilir.
- OTP kodu demo/test amacıyla ekranda gösterilir.
- Yeni hasta ise hasta bilgileri alınır.
- Randevu detayları onaylanır.
- Randevu oluşturulur.
Randevularım sekmesinde randevular yalnızca telefon doğrulamasından sonra gösterilir. Hasta, uygun şartlarda kendi gelecek randevusunu iptal edebilir.
Panel girişi:
/adminRoller:
- Admin: Dashboard, randevular, hastalar, hastaneler, tıbbi birimler, doktorlar, sekreterler ve çalışma saatlerini yönetir.
- Sekreter: Randevuları görür, TC Kimlik No ile arama yapar ve gelen hastayı onaylar.
- Doktor: Yalnızca kendi bugünkü onaylı randevularını görür ve hasta için doktor notu yönetir.
Admin randevular ekranında Planlandı durumundaki randevular için:
Geldiİptal Et
işlemleri bulunur. Geldi, Gelmedi ve İptal Edildi gibi sonlanmış durumlarda işlem butonları pasif görünür.
Sekreterin Onayla işlemi hastanın geldiğini belirtir ve randevuyu Geldi durumuna taşır.
Sistem aktif doktorlar için bugünden itibaren 14 takvim günü boyunca hafta içi randevu saatlerini otomatik oluşturur.
Standart saatler:
09:00 - 16:30Randevu saatleri 30 dakikalık aralıklarla oluşturulur. Cumartesi ve pazar günleri normal randevu günü değildir.
Admin Çalışma Saatleri ekranından doktor izni için:
- Tüm günü randevuya kapatabilir.
- Seçili saatleri randevuya kapatabilir.
- Kapalı saatleri tekrar aktif edebilir.
Dolu randevu saatleri izin işlemiyle değiştirilmez.
npm run lint
npm run build
npx prisma validatePrisma şeması değiştiyse:
npx prisma generate
npx prisma migrate deploy