Skip to main content

Simple user notification management for the Django web framework

Project description

install

pip install django-simple-notification

Usage

1. create notification events

from notifications.handlers import send_message

send_message('Mahmoud Liked your post', user, 'post_like')

Explain

# function interface
send_message(message:str, user:User, type:str)

# logic behind it
message: the text message to be sent to the user
user: an instance of User model (the one who will recieve the notification)
type: is a notification tag or type (you should create difrrent types in your system for different events)

2.fetch notifications using REST APIs

notifications/all/:GET : get all the notifications



notifications/mark/:PUT : mark all notifications as read

img_1.png


notifications/unread/:GET: get all unread notifications

img_2.png

3.how the client side recieve the message from the server via websocket

img.png

configration

Note: make sure that django channels is up and running and also you django serves under ASGI check this url to configure django channels in your project

in settings.py

INSTALLED_APPS = [
    ...
    'channels', # django channels needs to be installed
    'notifications', # our package
    ...   
]
SIMPLE_NOTIFICATION_SETTINGS = {
    'receive_handler_path': 'custom_module.custom_py_file.custom_receive_handler',
}

in urls.py

path('api/v1/notifications/', include('notifications.urls')),

in asgi.py

from notifications import routing

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'demo_project.settings')

application = ProtocolTypeRouter({
    'http': get_asgi_application(),
    'websocket': AuthMiddlewareStack(
        URLRouter(
            routing.websocket_urlpatterns
        )
    ),
})

run make migrate:

python manage.py migrate

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

django-simple-notification-1.0.5.tar.gz (6.7 kB view details)

Uploaded Source

File details

Details for the file django-simple-notification-1.0.5.tar.gz.

File metadata

File hashes

Hashes for django-simple-notification-1.0.5.tar.gz
Algorithm Hash digest
SHA256 54a57081d46f9726d78d248799d001a2a3cac7874b855a671b41c0706b253bed
MD5 92add6f2f9bc5db9690eda372501233d
BLAKE2b-256 45f3559603e264bca2338c8a0a375a2fa8c9da2b81cbeb88d4aa3e9c23509cbc

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