Skip to main content

djangoFCMv0.1.0

Django app which stores, manages FCM push tokens and interacts with them.

Description

djangoFCM is Django-compatible application which stores FCM push tokens, their parameters, and automates push notifications routines.

Main feature is for djangoFCM to be a "plug-in" Django application, thus capable to work with "little-to-no" configuring and changes to Django project.

Features

djangoFCM @ v0.1.0 can:

  • store push tokens
  • store push tokens` arbitrary parameters with types:
    • foreign key
  • store push notifications
  • send scheduled push notifications
  • compose recipients for push notifications based on user-specified conditions

Usage example

TODO

sample_project

sample-project is a showcase django project. You can reference to it for usage cases, examples, testing. You must never deploy sample_project in production due to exposed SECRET_KEY.

Getting Started

Dependencies

System dependencies

In means of automatisation, djangoFCM heavily relies on celery (via django-celery-beat), thus it is your task to provide celery and celerybeat processes and message broker (e.g. rabbitMQ).

Python packages

  • django~=3.2.8 might work on lesser versions, not tested
  • django-celery-beat~=2.2.1 might work on lesser versions, not tested
  • pyfcm~=1.5.4 might work on lesser versions, not tested

Django applications

  • django_celery_beat

Installing

Using Python Package Index

  • make sure to use latest pip:

    python3 -m pip install --upgrade pip
    
  • install djangoFCM:

    python3 -m pip install djangoFCM
    

OR download package from releases

  • download release asset (.tar.gz or .whl)

  • make sure to use latest pip:

    python3 -m pip install --upgrade pip
    
  • install djangoFCM from file:

    python3 -m pip install /path/to/downloaded/asset.tar.gz # or .whl
    

OR clone from repository

  • clone project:

    git clone \
            --depth=1 \
            --branch=master \
            git@github.com:omelched/djangoFCM.git \
            </path/to/downloads>
    
  • move /djangoFCM/djangoFCM solely to folder containing django apps

    mv      </path/to/downloads>/djangoFCM/djangoFCM \
            </path/to/django/project/apps>
    
  • remove leftovers

    rm -rf  </path/to/downloads>/djangoFCM
    

Configuring

Installing application

Add djangoFCM to INSTALLED_APPS in your Django project settings.py.

If you installed package the third way, </path/to/django/project/apps> must be added to PYTHONPATH. If you not sure add code below in your Django project manage.py before calling main():

sys.path.append('</path/to/django/project/apps>')

Provide FCM api key via DJANGOFCM_FCM_API_KEY in your Django project settings.py.

Celery

Make sure to point celery to djangoFCM.tasks.send_push_notification task. Use app.autodiscover_tasks() in your celeryapp module or specify in settings:

CELERY_IMPORTS = (
    'djangoFCM.tasks',
)

Provide Celery worker to execute tasks, e.g:

venv/bin/celery -A sample_project worker -l INFO

Official documentation may help.

Celerybeat

Provide Celery beat to start scheduled tasks, e.g:

venv/bin/celery -A sample_project beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler

Official documentation on custom schedulers.

Authors

@omelched (Denis Omelchenko)

Contributors

Changelist

djangoFCM version history and changelist available at releases page.

License

This project is licensed under the GNU APGLv3 License - see the LICENSE file for details.

Acknowledgments

Inspiration, code snippets, etc.

Metadata

Release files for djangoFCM 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for djangoFCM 0.3.0
File Size Uploaded
djangoFCM-0.3.0.tar.gz 31.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for djangoFCM 0.3.0
File Interpreter ABI Platform
djangoFCM-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 78.7 kB

Release files / djangoFCM-0.3.0.tar.gz

Download URL djangoFCM-0.3.0.tar.gz
Size 31.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d8bcc9187d089ccdc383c19ab6c535794fb9f74758dc239968f59bf1658ea3e6
BLAKE2b-256 checksum
How to use checksums
31157ec89815eb4f88e9333c560251aabc2280d0722baa67550b44515fc928ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

Release files / djangoFCM-0.3.0-py3-none-any.whl

Download URL djangoFCM-0.3.0-py3-none-any.whl
Size 47.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5ab1e7399f099f7fa043ef311e04ce2aeab4afcad48ed7a58157f1a5d789f2d5
BLAKE2b-256 checksum
How to use checksums
fcd9c63acde465d0f02a328e73c35b4f8c10ba6154eeae49609a88e183b83061
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page