Skip to main content

Reusable, extensible Django notification framework with Email, SMS and Firebase Push support

Project description

Django Notification Kit Django Notification Kit, Django projeleri için tasarlanmış; çok kanallı (Email / SMS / Push) bildirim gönderimini yöneten, modüler ve genişletilebilir bir altyapıdır. Sistemin temel amacı; bildirim gönderim süreçlerini API – Service – Backend – Task katmanlarına ayırarak yüksek test edilebilirlik ve sürdürülebilirlik sağlamaktır.

Kapsam (v1.0.0 – MVP) Bu versiyon, profesyonel bir bildirim sistemi için gerekli olan şu temel bileşenleri sunar:

Abstract Model Yapısı: Genişletilmeye hazır taban modeller.

Concrete Modeller: Notification, Template, Preference ve Log yapıları.

SMTP Email Backend: Standart e-posta gönderim desteği.

Base Notification Service: İş mantığını yöneten merkezi servis.

Celery Task Factory: Ölçeklenebilir, asenkron gönderim desteği.

DRF API: Standartlara uygun API uçları ve Serializer'lar.

Merkezi Ayar Yönetimi: NOTIFICATION_KIT üzerinden tam kontrol.

Full Testing: Unit, API ve Performans testleri.

Mimari Genel Bakış Sistem, sorumlulukların net ayrıştırıldığı Layered Architecture (Katmanlı Mimari) prensibiyle tasarlanmıştır.Katmanların SorumluluklarıKatmanSorumluluk AlanıAPIRequest validation, permission kontrolü, throttling.Serviceİş kuralları, kanal seçimi, retry logic yönetimi.BackendKanal spesifik (Email, SMS vb.) düşük seviyeli implementasyon.TaskAsenkron (Async) ve toplu (Batch) işlem yönetimi (Celery).ModelsVeri şeması; Notification, Template ve Kullanıcı tercihleri.SettingsMerkezi ve projeye özel override edilebilir konfigürasyon.

Ayar Yönetimi Paket içi ayarlar notification_kit/settings.py dosyasında tanımlıdır. Proje bazlı özelleştirmeler için ana settings.py dosyanızda NOTIFICATION_KIT sözlüğünü kullanabilirsiniz.

Python

project/settings.py

NOTIFICATION_KIT = { "ASYNC": True, "MAX_RETRIES": 5, "EMAIL": { "FROM_EMAIL": "noreply@example.com", "RATE_LIMIT": 200, }, } Not: Hassas veriler (API Key, Şifre vb.) her zaman çevre değişkenleri (environment variables) üzerinden yönetilmelidir.

Teknik Implementasyon

  1. Backend Yapısı Her kanal (SMS, Email, Push) için bir backend sınıfı bulunur. Yeni bir sağlayıcı eklemek oldukça basittir:

Python class BaseBackend: def send(self, notification): raise NotImplementedError("Bu metod implemente edilmelidir.") 2. Service Katmanı İş mantığının kalbidir. API'den gelen isteği alır, hangi kanalın kullanılacağına karar verir ve gerekirse işi Celery'ye devreder.

Kanal Seçimi: Template üzerinden dinamik kanal yönetimi.

Soyutlama: Backend implementasyonundan bağımsız çalışma.

  1. API Katmanı Yalnızca bildirim oluşturma ve tetikleme sorumluluğunu taşır.

Validation: Serializer'lar ile veri doğruluğu garanti edilir.

Security: Permission sınıfları ile yetkisiz erişim engellenir.

Güvenlik Yaklaşımı Veri Gizliliği: Kişisel veriler (PII) kesinlikle loglanmaz.

Hız Sınırı: API düzeyinde Throttling ile brute-force ve aşırı yüklenme engellenir.

Denetim: Tüm gönderim denemeleri ve sonuçları NotificationLog üzerinden izlenebilir.

Test Stratejisi Sistem, Pytest altyapısı kullanılarak aşağıdaki seviyelerde test edilmektedir:

Model: Veri bütünlüğü ve ilişki testleri.

Service: İş mantığı ve kanal yönlendirme testleri.

Backend: Provider entegrasyon (mock) testleri.

API: Endpoint erişim ve veri formatı testleri.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notification_kit-1.2.0.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notification_kit-1.2.0-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file notification_kit-1.2.0.tar.gz.

File metadata

  • Download URL: notification_kit-1.2.0.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for notification_kit-1.2.0.tar.gz
Algorithm Hash digest
SHA256 60a90476d4d4c8721164b9290649bc606fee217ad3e1acb6ae67b05bca94d541
MD5 2a3fc5eef70edd5898740d68af7964a4
BLAKE2b-256 7007cd3678e05f5816c6f11ad85446628d49f3a5dfcbe8dbe0fd7a27c68d4493

See more details on using hashes here.

File details

Details for the file notification_kit-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for notification_kit-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a019d359aa7dad434af9239f6d69a1071d053a41c60c9f9df90b67260745f56
MD5 6aa1c7567cce9beea6e36e0f08a82a53
BLAKE2b-256 cfd85f5c537647bfb9d368ffb9f60b5668508d36051e6689f12b3334a12724c0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page