πNotifications

we are build a full notification system for you with multi provider like mail, firebase, pusher, discord, slack, messagebird and open the way to add more all of this working on queue and have a lot of helpers to make it easy to use this notification on your system
Install
composer require queents/notifications-moduleInstall Notifications Plugin
Add Module to modules_statuses.json if not exists
{
"Notifications": true
}to install the notification's plugin by run this command
php artisan notifications:installit will generate roles and permissions for notifications
after that we must get a firebase service file and attach the path to FIREBASE_CREDENTIALS on .env and generate a firebase database and set the url to FIREBASE_DATABASE_URL on .env to connect the firebase for realtime actions
Make a migration
php artisan migratePublish Assets
npm i & npm run buildOR
yarn & yarn buildSetup Model for Notifications
to setup any model to get notification you must add our trait to handel that model
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Fortify\TwoFactorAuthenticatable;
use Laravel\Jetstream\HasProfilePhoto;
use Laravel\Sanctum\HasApiTokens;
use Spatie\Permission\Traits\HasRoles;
use Modules\Notifications\Traits\UseNotifications;
class User extends Authenticatable
{
use HasApiTokens;
use HasFactory;
use HasProfilePhoto;
use Notifiable;
use TwoFactorAuthenticatable;
use HasRoles;
use UseNotifications;
...and you must set the settings for FCM to get realtime notification
Queue
the notification is run on queue, so you must run the queue worker to send the notifications
php artisan queue:workCreate Template
to create a new template you can use template CRUD and make sure that the template key is unique because you will use it on every single notifications.
Send Notification
to send a notification you must use our helper SendNotification::class like
SendNotification::make($template->providers)
->template($template->key)
->findTitle($matchesTitle)
->replaceTitle($titleFill)
->findBody($matchesBody)
->replaceBody($titleBody)
->model(User::class)
->id(User::first()->id)
->privacy('private')
->fire();where $template is select of template by key and $matchesTitle and $matchesBody is array of matches to replace on the template and $titleFill and $titleBody is array of values to replace the matches
Last updated