venturedrake / laravel-crm

Open Source Laravel CRM Package
https://laravelcrm.com
MIT License
282 stars 108 forks source link
contact-management contact-management-system contacts contacts-manager crm crm-integration crm-online crm-platform crm-sdk crm-system customer customer-management laravel laravel-crm laravel-package lead-management leads management sales sales-management

Laravel CRM

Latest Stable Version MIT Licensed Codacy Badge Total Downloads

The free Laravel CRM you have been looking for, this package will add CRM functionality to your laravel projects or can be used as a complete standalone CRM built with Laravel.

Use Cases

Features

Requirements

Live Demo

https://demo.laravelcrm.com/register

Quick Start

If you want to get up and running quickly with a complete Laravel CRM please go to the laravel-crm-starter project.

If you prefer to install Laravel CRM into your own Laravel application, please follow the installation steps below.

Installation

Step 1. Install a Laravel project if you don't have one already

https://laravel.com/docs/installation

Step 2. Make sure you have set up authentication in your project

https://laravel.com/docs/authentication

Step 3. Require the current package using composer:

composer require venturedrake/laravel-crm

Step 4. Publish the migrations, config & assets

php artisan vendor:publish --provider="VentureDrake\LaravelCrm\LaravelCrmServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="VentureDrake\LaravelCrm\LaravelCrmServiceProvider" --tag="config"
php artisan vendor:publish --provider="VentureDrake\LaravelCrm\LaravelCrmServiceProvider" --tag="assets" --force

Step 5. Update the various config settings in the published config file:

After publishing the package assets a configuration file will be located at config/laravel-crm.php

Please read the comments in this file for each setting. Most can be left as the default, however you will need to update the "CRM Owner" setting to access the CRM initially.

Please note if you set the route_prefix to blank or null you will need to update the default routes/web.php file. All the crm routes are managed by the package, so it should look just as per below after removing the default welcome route and redirecting the default /home route to the dashboard.

Laravel 7 and below:
<?php

use Illuminate\Support\Facades\Route;

Auth::routes();

Route::get('/home', function (){
    return redirect('/');
});
Laravel 8+:
<?php

use Illuminate\Support\Facades\Route;

Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
    return redirect('/');
})->name('dashboard');

Step 6. Run migrations:

php artisan migrate

Step 7. Run database seeder:

php artisan db:seed --class="VentureDrake\LaravelCrm\Database\Seeders\LaravelCrmTablesSeeder"

Step 8. Update User Model

use Illuminate\Foundation\Auth\User as Authenticatable;
use Spatie\Permission\Traits\HasRoles;
use VentureDrake\LaravelCrm\Traits\HasCrmAccess;
use VentureDrake\LaravelCrm\Traits\HasCrmTeams;
use Lab404\AuthChecker\Models\HasLoginsAndDevices;
use Lab404\AuthChecker\Interfaces\HasLoginsAndDevicesInterface;

class User extends Authenticatable implements HasLoginsAndDevicesInterface
{
    use HasRoles;
    use HasCrmAccess;
    use HasCrmTeams;
    use HasLoginsAndDevices;

    // ...
}

Step 9. Register at least one user and log in or if you already have a user login with the crm owner you set in step 5

Access the crm to register/login at http://your-project-url/crm

Note if you modified the route_prefix setting from the default the above url will change dependent on that setting.

Upgrade

Upgrading from >= 0.2

Step 1. Run the following to the update migrations and publish assets:

composer require venturedrake/laravel-crm
php artisan vendor:publish --provider="VentureDrake\LaravelCrm\LaravelCrmServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="VentureDrake\LaravelCrm\LaravelCrmServiceProvider" --tag="config"
php artisan vendor:publish --provider="VentureDrake\LaravelCrm\LaravelCrmServiceProvider" --tag="assets" --force
php artisan migrate

Step 2. Run the database seeder

php artisan db:seed --class="VentureDrake\LaravelCrm\Database\Seeders\LaravelCrmTablesSeeder"

Step 3. If using teams support then run the following permissions update command

php artisan laravelcrm:permissions

Step 4. Run update command to update database

php artisan laravelcrm:update

Upgrading from < 0.2

Step 1. Run the following to the update package:

composer require venturedrake/laravel-crm
php artisan vendor:publish --provider="VentureDrake\LaravelCrm\LaravelCrmServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="VentureDrake\LaravelCrm\LaravelCrmServiceProvider" --tag="config"
php artisan vendor:publish --provider="VentureDrake\LaravelCrm\LaravelCrmServiceProvider" --tag="assets" --force
php artisan migrate

Step 2. Delete previously published package views located in resources/views/vendor/laravel-crm/*

Step 3. Add HasCrmAccess, HasCrmTeams & HasRoles traits to App\User model, see installation Step 8.

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Roadmap

Feedback

Participate in the discord community

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email andrew@venturedrake.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.