PHPackages                             afrittella/back-project - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. afrittella/back-project

ActiveLibrary[Admin Panels](/categories/admin)

afrittella/back-project
=======================

Just another admin panel for Laravel. Inspired by Backpack.

1.3.7(9y ago)31711[1 PRs](https://github.com/afrittella/back-project/pulls)1MITPHPPHP ~5.6|~7.0

Since Apr 20Pushed 5y ago3 watchersCompare

[ Source](https://github.com/afrittella/back-project)[ Packagist](https://packagist.org/packages/afrittella/back-project)[ RSS](/packages/afrittella-back-project/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (4)Dependencies (21)Versions (19)Used By (1)

[![Latest Stable Version](https://camo.githubusercontent.com/8ec88279cdccd36c98931d3d30711cd1a7ffcdb92f3b5724378895135c5189db/68747470733a2f2f706f7365722e707567782e6f72672f616672697474656c6c612f6261636b2d70726f6a6563742f762f737461626c65)](https://packagist.org/packages/afrittella/back-project)[![Total Downloads](https://camo.githubusercontent.com/261bc25c038e761daba1cf7cf7f7eeb86bcce31d23c731b2228094473652afac/68747470733a2f2f706f7365722e707567782e6f72672f616672697474656c6c612f6261636b2d70726f6a6563742f646f776e6c6f616473)](https://packagist.org/packages/afrittella/back-project)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/70f8fac7462aa806df22b592869fa52bf81deffdb7730c31e4a3276c9e5f36cc/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f616672697474656c6c612f6261636b2d70726f6a6563742f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/afrittella/back-project/?branch=master)[![StyleCI](https://camo.githubusercontent.com/5284db6c28aa6b16a5dd0133830d9f3512b38b5a5ea821b7486d5df0d9424c4c/68747470733a2f2f7374796c6563692e696f2f7265706f732f38343830333633312f736869656c643f6272616e63683d6d6173746572)](https://styleci.io/repos/84803631)[![Build Status](https://camo.githubusercontent.com/76e3002a44de74a473a3a370a55b2d3e25a9ca1207f60df6bf35310e282b69d7/68747470733a2f2f7472617669732d63692e6f72672f616672697474656c6c612f6261636b2d70726f6a6563742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/afrittella/back-project)[![License](https://camo.githubusercontent.com/d0ae8c5ef60b3985ff3480f82fcba4f247abe6a885675bae1f86b6ea0c771dfe/68747470733a2f2f706f7365722e707567782e6f72672f616672697474656c6c612f6261636b2d70726f6a6563742f6c6963656e7365)](https://packagist.org/packages/afrittella/back-project)

WARNING. This repository is not actively maintained. Probably it's not compatible with latest versions of Laravel.
==================================================================================================================

[](#warning-this-repository-is-not-actively-maintained-probably-its-not-compatible-with-latest-versions-of-laravel)

Back Project 1.3.7
==================

[](#back-project-137)

Back Project is an admin panel for Laravel 5.4+ based on [AdminLTE](https://github.com/almasaeed2010/AdminLTE) and other amazing packages. See [Credits](#credits) for details.

See [CHANGELOG.md](https://github.com/afrittella/back-project/blob/master/CHANGELOG.md) for detailed updates.

### Features

[](#features)

- AdminLTE template
- Easy to use Html components and helpers for panels, buttons, links, icons
- Simple authorization management built on top of [spatie/laravel-permission](https://github.com/spatie/laravel-permission)
- Menu management
- Media Manager: you can upload media as backend user or manage all media uploaded by other users as administrator (see [Media Manager](#media-manager))
- Social Login

### Installation

[](#installation)

```
composer require afrittella/back-project

```

Add the Service Provider to your config.app service providers list:

```
Afrittella\BackProject\BackProjectServiceProvider::class,
```

**Publishing configuration, assets, view, migrations**

***Configuration***

```
php artisan vendor:publish --provider="Afrittella\BackProject\BackProjectServiceProvider" --tag="config"

php artisan vendor:publish --provider="Prologue\Alerts\AlertsServiceProvider"

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"

```

In config/laravel-permission.php change model classes to:

```
'permission' => Afrittella\BackProject\Models\Permission::class,
'role' => Afrittella\BackProject\Models\Role::class,
```

Social login is disabled by default. To use it you must follow these steps:

- Change the following lines in config/back-project.php

    ```
    'social_login_enabled' => [
      'facebook' => true, // enable facebook login
      'twitter' => true, // enable twitter login
      'linkedin' => true // enable linkedin login
    ],
    ```
- Create [Facebook](https://developers.facebook.com/apps/), [Twitter](https://apps.twitter.com/) and [Linkedin](https://www.linkedin.com/developer/apps) applications.
- Once obtained app keys, add them to .env and to config/services.php as shown below.

    *.env*

    ```
    FACEBOOK_ID = XXXXXXXX
    FACEBOOK_SECRET = XXXXX
    FACEBOOK_REDIRECT = http://example.com/auth/facebook/callback

    TWITTER_ID = XXXXXXXX
    TWITTER_SECRET = XXXXX
    TWITTER_REDIRECT = http://example.com/auth/twitter/callback

    LINKEDIN_ID = XXXXXXXX
    LINKEDIN_SECRET = XXXXX
    LINKEDIN_REDIRECT = http://example.com/auth/linkedin/callback

    ```

    *config/service.php*

    ```
    ...
    'facebook' => [
        'client_id' => env('FACEBOOK_ID'),
        'client_secret' => env('FACEBOOK_SECRET'),
        'redirect' => env('FACEBOOK_REDIRECT'),
    ],

    'twitter' => [
        'client_id' => env('TWITTER_ID'),
        'client_secret' => env('TWITTER_SECRET'),
        'redirect' => env('TWITTER_REDIRECT'),
    ],

    'linkedin' => [
        'client_id' => env('LINKEDIN_ID'),
        'client_secret' => env('LINKEDIN_SECRET'),
        'redirect' => env('LINKEDIN_REDIRECT'),
    ]
    ```

**Language**

*At this time only italian and english language are supported.*

Run

```
php artisan vendor:publish --provider="Afrittella\BackProject\BackProjectServiceProvider" --tag="lang"

```

Please note: *You don't need to publish translation files if you don't want to change default strings.*

Default Laravel languages are provided by [caousecs/laravel-lang](https://github.com/caouecs/Laravel-lang) package. You had to manually copy translation files based on the language you will use on your project.

Copy the content of vendor/caouecs/laravel-lang/src/\[language-folder\] to resources/lang/\[language-folder\]

**BackProject, AdminLTE, Avatar assets and views**

```
php artisan vendor:publish --provider="Afrittella\BackProject\BackProjectServiceProvider" --tag="adminlte"

php artisan vendor:publish --provider="Laravolt\Avatar\ServiceProvider"

php artisan vendor:publish --provider="Afrittella\BackProject\BackProjectServiceProvider" --tag="public"

php artisan vendor:publish --provider="Afrittella\BackProject\BackProjectServiceProvider" --tag="errors"

```

You can publish Back Project default views if you want to edit them:

```
php artisan vendor:publish --provider="Afrittella\BackProject\BackProjectServiceProvider" --tag="views"

```

**Migrations**

```
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"

```

Run

```
php artisan migrate

php artisan back-project:seed-permissions

php artisan back-project:seed-menus

```

### Configuration

[](#configuration)

**Queue**

Queues can be used to send registration email.

To set up queues:

- Change .env file. Set `QUEUE_DRIVER=database`
- Change config/back-project.php line: `"use_queue" => true,`
- Run ` php artisan queue:table` to create the jobs table
- Run ` php artisan queue:failed-table`
- Config queue worker as described on [Laravel documentation](https://laravel.com/docs/5.4/queues#running-the-queue-worker)

By default Back Project use classic notification system.

**Authorization**

BackProject is provided with 3 custom middleware, one of this replaces “RedirectIfAuthenticated”. If you want to use this middleware (it redirects to admin/dashboard if authenticated), you should replace the ”guest” alias in your app/Http/Middleware/Kernel.php with back project custom one and add the other two as follows:

```
'guest' => \Afrittella\BackProject\Http\Middleware\RedirectIfAuthenticated::class,
'admin' => \Afrittella\BackProject\Http\Middleware\Admin::class,
'role' => \Afrittella\BackProject\Http\Middleware\Role::class,

```

*User model*

A default *User* model is provided with the package. It has all the features to make Back Project works well. If you would like to use your custom model, simply extend:

```
Afrittella\BackProject\Models\Auth\User;
```

If you are using package model, or if your *User* model is not present in the default folder, you must change config/auth.php:

```
...
'providers' => [
  'users' => [
      'driver' => 'eloquent',
      'model' => Afrittella\BackProject\Models\Auth\User::class,
  ],
  ...
```

Remember to change *user\_model* key in config/back-project.php if you want to use your custom *User* model.

*Back Project simple auth method*

Back Project has a simple authorization method, located in Afrittella/BackProject/Http/Controllers/Controller.php

```
public function bCAuthorize($ability, $record = [])
{
     if ($record->user_id !== Auth::user()->id) {
         abort(403);
     }
}
```

You can use it if you want to simply check if a user is authorized to manage a record. Just use this controller instead of Laravel default controller and call “bCAuthorize” before doing any database action

**Exceptions**

Back Project has a default exception handler who renders custom error views. To use this handler add the following lines to Exceptions/Handler.php

```
...
use Afrittella\BackProject\Exceptions\BackProjectHandler;
use Afrittella\BackProject\Exceptions\BaseException;

class Handler extends ExceptionHandler
{
    ...

    public function render($request, Exception $exception)
    {
        ...

        if ($exception instanceof BaseException) {
            if ($response = BackProjectHandler::getResponse($exception)) {
                return $response;
            }
        }

        ...

        return parent::render($request, $exception);
    }
}
```

### Let's Start

[](#lets-start)

Once completed the [Installation](#installation) and [Configuration](#configuration) sections, go to your project's url ([www.example.com/register](http://www.example.com/register)), register and activate the first user who will be the site administrator.

### Media Manager

[](#media-manager)

Back Project use intervention/image and intervention/imagecache to manage image upload, resizing and display. Once uploaded, an image can be displayed using imagecache package and default or custom filters. Feel free to create custom filters for your images.

Change config/imagecache.php following this example:

```
return array(

    /*
    |--------------------------------------------------------------------------
    | Name of route
    |--------------------------------------------------------------------------
    |
    | Enter the routes name to enable dynamic imagecache manipulation.
    | This handle will define the first part of the URI:
    |
    | {route}/{template}/{filename}
    |
    | Examples: "images", "img/cache"
    |
    */

    'route' => [FIRST PART OF THE URI YOU WANT FOR DISPLAYING IMAGES],

    /*
    |--------------------------------------------------------------------------
    | Storage paths
    |--------------------------------------------------------------------------
    |
    | The following paths will be searched for the image filename, submited
    | by URI.
    |
    | Define as many directories as you like.
    |
    */

    'paths' => array(
	// Insert here your uploads directory
        public_path('upload'),
        public_path('images')
    ),

    /*
        |--------------------------------------------------------------------------
        | Manipulation templates
        |--------------------------------------------------------------------------
        |
        | Here you may specify your own manipulation filter templates.
        | The keys of this array will define which templates
        | are available in the URI:
        |
        | {route}/{template}/{filename}
        |
        | The values of this array will define which filter class
        | will be applied, by its fully qualified name.
        |
        */

        'templates' => array(
            'small' => 'Intervention\Image\Templates\Small',
            'medium' => 'Intervention\Image\Templates\Medium',
            'large' => 'Intervention\Image\Templates\Large',
        ),

        /*
        |--------------------------------------------------------------------------
        | Image Cache Lifetime
        |--------------------------------------------------------------------------
        |
        | Lifetime in minutes of the images handled by the imagecache route.
        |
        */

        'lifetime' => 43200,

    );
```

Read the Intervention/Image [documentation](http://image.intervention.io/getting_started/installation#laravel) to know how to use it.

You can use *HasOneAttachment* or *HasManyAttachment* trait on a model to associate it to *attachments* table.

Example:

```
...
use Afrittella\BackProject\Traits\HasOneAttachment;
...

class Model
{
    use HasOneAttachment;

    ...
}
```

You can change the folder where files are uploaded in config/filesystems.php

### ToDo

[](#todo)

- Full documentation on wiki.
- More Tests.
- Better assets (js/css) management.
- Better translations management.

### Credits

[](#credits)

I was inspired by [Backpack for Laravel](https://github.com/Laravel-Backpack) project, but i tried to make a simple one with only the features I need for my projects. Feel free to open a PR or send a feedback if you would like to collaborate and improve it.

Back Project depends on the following packages:

- [almasaeed2010/adminlte](https://github.com/almasaeed2010/AdminLTE)
- [prologue/alerts](https://github.com/prologuephp/alerts)
- [doctrine/dbal](https://github.com/doctrine/dbal)
- [spatie/laravel-permission](https://github.com/spatie/laravel-permission)
- [kalnoy/nestedset](https://github.com/lazychaser/laravel-nestedset)
- [pendonl/laravel-fontawesome](https://github.com/PendoNL/laravel-fontawesome)
- [laravelcollective/html](https://github.com/LaravelCollective/html)
- [caouecs/laravel-lang](https://github.com/caouecs/Laravel-lang)
- [intervention/image](https://github.com/Intervention/image)
- [intervention/imagecache](https://github.com/Intervention/imagecache)
- [laravel/socialite](https://github.com/laravel/socialite)

### License

[](#license)

This package is licensed under the [MIT license](https://github.com/backup-manager/laravel/blob/master/LICENSE).

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 78.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

18

Last Release

3302d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/fff3e8ccf0980ddafbcf867d764ff8857d235b8fea64c2679aa8778233afb7a0?d=identicon)[afrittella](/maintainers/afrittella)

---

Top Contributors

[![afrittella](https://avatars.githubusercontent.com/u/719288?v=4)](https://github.com/afrittella "afrittella (58 commits)")[![shemgp](https://avatars.githubusercontent.com/u/1734126?v=4)](https://github.com/shemgp "shemgp (13 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (3 commits)")

---

Tags

adminadminltelaravelpanelphp

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/afrittella-back-project/health.svg)

```
[![Health](https://phpackages.com/badges/afrittella-back-project/health.svg)](https://phpackages.com/packages/afrittella-back-project)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.5k2.2k](/packages/unopim-unopim)[backpack/crud

Quickly build admin interfaces using Laravel, Bootstrap and JavaScript.

3.4k3.6M217](/packages/backpack-crud)[eveseat/web

SeAT Web Interface

2623.4k149](/packages/eveseat-web)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1232.2k16](/packages/fleetbase-core-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
