Metadata-Version: 2.1
Name: django-df-notifications
Version: 1.2.8
Summary: Opinionated Django Omnichannel Notifications.
Author-email: Apexive OSS <open-source@apexive.com>
Project-URL: homepage, https://apexive.com/
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Internet
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django
Requires-Dist: djangorestframework
Requires-Dist: django-df-api-drf
Requires-Dist: firebase_admin
Requires-Dist: requests
Requires-Dist: django_slack
Requires-Dist: fcm_django>=1.0.15
Requires-Dist: celery
Requires-Dist: django-import-export
Requires-Dist: django-celery-beat
Requires-Dist: django-otp-twilio
Requires-Dist: Pillow
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-django; extra == "test"
Requires-Dist: django-stubs[compatible-mypy]; extra == "test"
Requires-Dist: black==23.7.0; extra == "test"
Requires-Dist: ruff==0.0.284; extra == "test"
Requires-Dist: types-requests; extra == "test"
Requires-Dist: types-urllib3; extra == "test"
Requires-Dist: django-dbtemplates; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Requires-Dist: pytest-celery; extra == "test"

# Djangoflow Omnichannel Notifications

Opinionated Django Omnichannel Notifications


## Principles

* **Opinionated:** Create a set of strict guidelines to be followed by the users
  and developers. Well defined and consistent guidelines reduces errors and
  unwanted side-effects. Framework should be easy to understand, implement and maintain.

* **Secure:** Follow the industry best practices secure software development; communications;
  storage as well as long term maintenance. Always evaluate the risk and trade-offs in
  appropriate contexts.

* **Clean code:** Strictly follow DRY principle; write your code for other developers
  to understand; document and keep documentation updated; automate testing your code,
  packaging, deployments and other processes; discuss your ideas before implementing unless
  you are absolutely sure; be a good craftsmen.

* **Open:** Offer source code and related artifacts under open source licenses. Build
  and manage a collaborative community where everyone is welcome.

* **Configurable:** Provide ways to change behavior, appearance and offer extension points
  everywhere possible.

* **Reuse:** Do not reinvent the wheel. Use existing high-quality modules as much as possible.

## Endpoints

* `devices/`
* `action-categories/`

## Data model

...

## Views and templates

...


## Development


### Running test application.

Here you can check admin and API endpoints.

```
python3 -m venv venv
. venv/bin/activate
pip install -e .[test]
./manage.py runserver
```


### Running tests

```
# Without coverage report
make test

# With coverage report
make test-cov
```


### Deploying new version

Change version in `setup.cfg` and push new tag to main branch.

```
git tag 0.0.x
git push --tags
```

## Other modules and links out there


...

## Sponsors


[Apexive OSS](https://apexive.com)
