⚡
Zorluklar
- Zorunlu kayıt olmadan randevu alma sistemi ve otomatik kullanıcı hesabı oluşturma ihtiyacı
- Rezervasyon sisteminde Celali tarihlerinin yönetimi
- Geleneksel şifreler yerine SMS tabanlı kimlik doğrulama
- Farklı tıbbi talep türlerinin tek bir sistemde yönetimi
- Rezervasyonları takip ve onaylamak için yönetim paneli oluşturma
- Ghasedak SMS servisi ile entegrasyon
💡
Çözümler
- Rezervasyon anında otomatik kullanıcı kaydı ile randevu sistemi uygulama
- Celali'den Miladi'ye tarih dönüşümü için persiantools kütüphanesini kullanma
- Ghasedak API ile SMS tabanlı kimlik doğrulama sistemi tasarlama
- Doktor tipi, tarih ve açıklama dahil rezervasyon bilgilerini depolamak için Reservation modeli tasarlama
- Sunucu ile sorunsuz iletişim için AJAX sistemi uygulama
- MySQL bağlantısı için pymysql kullanma
- Rezervasyon onaylama/reddetme yeteneği ile yönetim paneli tasarlama
- AbstractUser'dan miras alan özel User modeli kullanma
📚
Kazanımlar
- Kullanıcı dostu ve hızlı randevu alma sistemi
- Uzun formlar olmadan otomatik kayıt
- Güvenli SMS kimlik doğrulama
- Rezervasyonları takip için eksiksiz yönetim paneli
- Celali takvim desteği
- Duyarlı tasarım
- Randevu alma süresini bir dakikanın altına düşürme
🔧
Teknik Öne Çıkanlar
- Django 5.0.1 ve Python 3
- pymysql ile MySQL veritabanı
- Özel User modeli (AUTH_USER_MODEL)
- Ghasedak API ile SMS tabanlı kimlik doğrulama
- persiantools ile Celali tarih dönüşümü
- JSON ile kapsamlı AJAX sistemi
- Çoklu Uygulama tasarımı (store_account, store_profile)
- Erişim seviyesi yönetimi (kullanıcı, yönetici, süper kullanıcı)
- Sayfalama için Paginator kullanımı
- Rezervasyon anında otomatik kullanıcı kaydı
- Tıbbi talep türlerinin yönetimi (Genel, Kardiyoloji, Nöroloji, Dahiliye, Gastroenteroloji, Telefon Konsültasyonu)
🏗️
Mimari
Doctor Online, Django'nun MVT (Model-View-Template) mimarisi üzerine kurulmuştur ve iki ana uygulamadan oluşur:
1. store_account: Kullanıcı yönetimi, kimlik doğrulama ve kayıt işlemlerinden sorumlu
- mobile, access_level, user_image, random_pass alanlarına sahip özel User modeli
- SMS ve şifre ile giriş sistemi
- Randevu alırken otomatik kayıt
2. store_profile: Rezervasyonlar ve profil yönetiminden sorumlu
- Randevu almak için Reservation modeli
- Tıbbi talep türü, tarih ve açıklama saklama
- Rezervasyonları takip için yönetim paneli
Proje DEBUG modunda çalışır ve geliştirme için SQLite, üretim için MySQL kullanır.
📐
Proje Ölçeği
- 2 ana uygulama (store_account, store_profile)
- 2 ana veri modeli (User, Reservation)
- 6 tıbbi talep türü (Genel, Kardiyoloji, Nöroloji, Dahiliye, Gastroenteroloji, Telefon Konsültasyonu)
- 15'ten fazla sayfa ve HTML şablonu
- 15'ten fazla görünüm ve endpoint
- Eksiksiz SMS kimlik doğrulama sistemi
- Özel yönetim paneli
- Otomatik kayıtlı randevu alma sistemi
- Tam Celali takvim desteği