Yapı Randevu

Proje Mimarisi Dokümantasyonu

Proje Yapısı Diagramı

graph TD A[app.py] --> B[templates/] B --> C[layout.html] B --> D[index.html] B --> E[login.html] B --> F[register.html] B --> G[profile.html] B --> H[edit_profile.html] B --> I[404.html] A --> J[users.db] A --> K[app.log] A --> L[static/] L --> M[css/] L --> N[js/] L --> O[images/] A --> P[routes/] P --> Q[auth.py] P --> R[profile.py] P --> S[main.py] A --> T[models/] T --> U[user.py] T --> V[appointment.py]

Proje Yapısı Açıklaması

  • main.py: Ana uygulama dosyası
  • templates/: Tüm HTML şablonlarını içeren dizin
    • layout.html: Diğer şablonların genişlettiği temel şablon
    • index.html: Ana sayfa şablonu
    • login.html: Kullanıcı giriş sayfası
    • register.html: Kullanıcı kayıt sayfası
    • profile.html: Kullanıcı profil sayfası
    • edit_profile.html: Kullanıcı profili düzenleme formu
    • 404.html: Bulunamayan kaynaklar için hata sayfası
  • static/: Statik dosyaları içeren dizin
    • css/: CSS stil dosyaları
    • js/: JavaScript dosyaları
    • images/: Resim dosyaları
  • routes/: Uygulama rotalarını içeren modüller
    • auth.py: Kimlik doğrulama rotaları
    • profile.py: Profil yönetimi rotaları
    • main.py: Ana sayfa ve genel rotalar
  • models/: Veritabanı modellerini içeren modüller
    • user.py: Kullanıcı modeli
    • appointment.py: Randevu modeli
  • users.db: Kullanıcı verileri için SQLite veritabanı dosyası
  • app.log: Uygulama günlük dosyası

Teknoloji Yığını

  • Backend: Python Flask (RESTful API, Blueprint yapısı)
  • Veritabanı: PostgreSQL (Veri bütünlüğü, ilişkisel yapı)
  • Frontend: HTML5, CSS3, JavaScript (ES6+)
  • Şablonlama: Jinja2 (Makrolar, kalıtım yapısı)
  • Kimlik Doğrulama: Flask-Login (Oturum yönetimi, rol tabanlı erişim)
  • Form İşleme: Flask-WTF (CSRF koruması, doğrulama)
  • DNS Güvenliği: Cloudflare (DDoS koruması, WAF, SSL)
  • Dağıtım: Docker (Konteynerizasyon, çoklu ortam desteği)
  • Cache Sistemi: Redis (Oturum depolama, API önbellek)
  • Görev İşleme: Celery (Asenkron görev işlevi, raporlama)