Welcome to the world of enhanced user monitoring with the groundbreaking Laravel User Monitoring
package! Developed by the brilliant minds at Binafy
, this innovative open-source solution is designed to empower Laravel developers and website administrators with invaluable insights into user activities.
Tracking user behavior and interactions is now made effortless, allowing you to gain a deeper understanding of your users' engagement, preferences, and pain points. With its seamless integration into Laravel projects, this package opens up a realm of possibilities, enabling you to optimize user experiences, detect bottlenecks, and make data-driven decisions for your platform's success.
Experience real-time monitoring like never before, as you access comprehensive analytics and visualize user interactions with ease. Rest assured, your users' data is handled securely, respecting privacy while giving you the tools to improve your application's performance and user satisfaction.
Whether you are building a new project or looking to enhance an existing one, "Laravel User Monitoring" is the missing piece to elevate your web applications to new heights. So, why wait? Dive into the world of intelligent user monitoring and witness the transformation of your Laravel-powered application today!
You can install the package with Composer.
composer require binafy/laravel-user-monitoring
If you want to publish a config file you can use this command:
php artisan vendor:publish --tag="laravel-user-monitoring-config"
If you want to publish migration files you can use this command:
php artisan vendor:publish --tag="laravel-user-monitoring-migrations"
For convenience, you can use this command to publish config and migration files:
php artisan vendor:publish --provider="Binafy\LaravelUserMonitoring\Providers\LaravelUserMonitoringServiceProvider"
After publishing, run the php artisan migrate
command.
The Laravel-User-Monitoring
, just need to use middleware, traits, etc ... and it's not hard, enjoy :)
You can config your user with the user-monitoring.php
configuration file:
'user' => [
/*
* User model.
*/
'model' => 'App\Models\User',
/*
* Foreign Key column name.
*/
'foreign_key' => 'user_id',
/*
* Users table name.
*/
'table' => 'users',
/*
* The correct guard.
*/
'guard' => 'web',
/*
* If you are using uuid or ulid you can change it for the type of foreign_key.
*
* When you are using ulid or uuid, you need to add related traits into the models.
*/
'foreign_key_type' => 'id', // uuid, ulid, id
],
model
: If your user model exists in another place, you can change it to the correct namespace.foreign_key
: You can set the user foreign_key name, likecustomer_id
.table
: You can write your users table name if is not `users.guard
: The correct guard that using for the user.
If you are using uuid
or ulid
, you can change foreign_key_type
to your correct foreign key type:
'user' => [
...
/*
* If you are using uuid or ulid you can change it for the type of foreign_key.
*
* When you are using ulid or uuid, you need to add related traits into the models.
*/
'foreign_key_type' => 'uuid', // uuid, ulid, id
],
NOTE: You must write
uuid
orulid
orid
.
When you want to monitor all views of your application, you must follow below:
-
Publish the Migrations
-
Use
VisitMonitoringMiddleware
in Kernel.php, you can go to theApp/Http
folder and open theKernel.php
file and addVisitMonitoringMiddleware
into your middleware for example:
protected $middlewareGroups = [
'web' => [
...
\Binafy\LaravelUserMonitoring\Middlewares\VisitMonitoringMiddleware::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
\Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
After, you can see all pages monitoring :)
If you want to disable monitoring for specific pages you can go to user-monitoring.php
that exists in the config
folder and add pages into the visit_monitoring
key:
'visit_monitoring' => [
/*
* You can specify pages not to be monitored.
*/
'expect_pages' => [
'home',
'admin/dashboard',
],
],
You may delete records by specific days, Laravel-User-Monitoring also supports this š¤©.
First, you need to go to the user-monitoring
config file and highlight the days that you want to delete:
'visit_monitoring' => [
...
/*
* If you want to delete visit rows after some days, you can change this to 360,
* but if you don't like to delete rows you can change it to 0.
*
* For this feature you need Task-Scheduling => https://laravel.com/docs/10.x/scheduling
*/
'delete_days' => 10,
],
After, you need to use Task Scheduling to fire-related command, so go to app/Console/Kernel.php
and do like this:
<?php
namespace App\Console;
...
use Binafy\LaravelUserMonitoring\Commands\RemoveVisitMonitoringRecordsCommand;
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule): void
{
$schedule->command(RemoveVisitMonitoringRecordsCommand::class)->hourly();
}
}
You can change hourly
to minute
or second
, for more information you can read Schedule Frequency Options.
Maybe you want to turn off visit monitoring for somedays or always, you can use configuration to turn it off:
'visit_monitoring' => [
...
/*
* If you want to disable visit monitoring, you can change it to false.
*/
'turn_on' => true,
...
]
Laravel-User-Monitoring also has an amazing views that you can use it very easy, just need to go to /user-monitoring/visits-monitoring
url, and enjoy:
If you want to monitor your models actions, you can use the Actionable
trait in your model:
<?php
namespace App\Models;
use Binafy\LaravelUserMonitoring\Traits\Actionable;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
use Actionable;
}
Now when a product is read, created, updated, or deleted, you can see which users doing that.
If you want to disable some actions like created, you can use the config file:
'action_monitoring' => [
...
/*
* Monitor actions.
*
* You can set true/false for monitor actions like (store, update, and ...).
*/
'on_store' => false,
'on_update' => true,
'on_destroy' => true,
'on_read' => true,
'on_restore' => false,
'on_replicate' => false,
],
Laravel-User-Monitoring
also has amazing views that you can use very easily, just need to go to the /user-monitoring/actions-monitoring
URL, and enjoy:
Have you ever thought about monitoring the entry and exit of users of your application? Now you can :)
If you want to monitor users when logging in or logout of your application, you need to migrate the migrations to the config file and change true for monitoring authentication.
'authentication_monitoring' => [
...
/*
* You can set true/false for monitor login or logout.
*/
'on_login' => true,
'on_logout' => true,
],
Laravel-User-Monitoring
also has amazing views that you can use very easily, just need to go to the /user-monitoring/authentications-monitoring
URL, and enjoy:
If you want to use Laravel-User-Monitoring
is big projects, you have lots of ways, but I want to give some tips and ideas to help you:
If you have an idea for this section you can create PRs or issues to help us.
- You can use this package with Cache
- You can make a separate DB and connect to your project to separate monitoring and application.
Thanks to all the people who contributed. Contributors.
If you discover any security-related issues, please email binafy23@gmail.com
instead of using the issue tracker.
The changelog can be found in the CHANGELOG.md
file of the GitHub repository. It lists the changes, bug fixes, and improvements made to each version of the Laravel User Monitoring package.
The MIT License (MIT). Please see License File for more information.
Congratulations! You have successfully installed and integrated the Laravel User Monitoring package into your Laravel application. By effectively logging and analyzing user activity, you can gain valuable insights that can help you improve your application's user experience and performance. If you have any questions or need further assistance, feel free to refer to the documentation or seek help from the package's GitHub repository. Happy monitoring!