perfectyorg / perfecty-push-wp

WordPress plugin for self-hosted Web Push Notifications ⚡️
https://perfecty.org
GNU General Public License v2.0
85 stars 22 forks source link
php push-notifications wordpress wordpress-plugin

Perfecty Push WP Plugin ⚡️

tests deployment License PHP compatibility WP compatibility

Self-hosted Push Notifications from your Wordpress server for free! 🥳

Perfecty Push for Wordpress

Perfecty Push WP is an Open Source plugin for WordPress that allows you to send web Push Notifications directly from your server: No hidden fees, no third-party dependencies and you own your data. 👏

Install it now: https://wordpress.org/plugins/perfecty-push-notifications/

More information about the project: https://perfecty.org/

Features ✨

Requirements 🧩

Note: The gmp extension is optional and recommended for better performance.

Documentation

https://docs.perfecty.org/

External integrations 🛸

You can use and extend Perfecty Push Notifications from third party plugins or your own code.

Send notifications through Perfecty Push

You can use the Perfecty_Push_Integration class to send Push Notifications from other plugins:

Hooks

Filters

Local development 👨🏻‍💻

To see it in action in your local development environment, you need a set of services which Wordpress relies on. You start off by creating the docker image:

docker build -t custom-wordpress:5.6-php7.2-apache .

Then start all the services and run the setup:

make up
make setup

You can now go to https://localhost/wp-login.php > Plugins > Activate the Perfecty Push plugin.

Available commands 👾

# start the service containers
make up

# stop de service containers
make down

# remote console
make console

# run the unit tests
make test

# run the formatter
make format

# setup all: make wordpress, make composer, make phpunit and make sdk
make setup

# setup wordpress and plugins
make wordpress

# install all the composer dependencies
make deps

# setup wordpress as a testing environment for phpunit
make phpunit

# generates the redistributable bundle in dist/perfecty-push-notifications.zip
make bundle

Demo 🎭

Admin Dashboard

Dashboard

Public view

Screenshot preview

Testing ✅

This project relies on automated tests as in the Wordpress Core guidelines.

Run all the test suites:

make test

Run a single test:

make console
cd wp-contents/plugins/perfecty-push/
phpunit --filter test_schedule_broadcast_async

Troubleshooting 🛠

Not intended for production: In case the plugins cannot be installed on your local installation do:

make console
chown -R www-data wp-content

License 👓

The WordPress Plugin is an Open Source project licensed under GPL v2.

The bell icon SVG code is a Font Awesome icon, a MIT License.

Banner photo by NASA on Unsplash

Contributing 🚀

If you're interesting on contributing to this project, feel free to submit your suggestions as a PR or an issue directly to any of the projects repos. Remember to read the Code of Conduct and the license information of each project, which in general use the MIT license, except the WordPress plugin (GPL v2).

Open Source contributors 🔥

Rowinson Gallego MocioF

Special Thanks

Jetbrains

Thanks to Jetbrains for supporting this Open Source project with their magnificent tools.