Django app which stores, manages FCM push tokens and interacts with them.
Project description
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 testeddjango-celery-beat~=2.2.1
might work on lesser versions, not testedpyfcm~=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 appsmv </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.
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
Built Distribution
Hashes for djangoFCM-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ab1e7399f099f7fa043ef311e04ce2aeab4afcad48ed7a58157f1a5d789f2d5 |
|
MD5 | 364cb9be3ee3b8a3b158b3542ccf9c5e |
|
BLAKE2b-256 | fcd9c63acde465d0f02a328e73c35b4f8c10ba6154eeae49609a88e183b83061 |