QuickAdmin: package to build Laravel adminpanel in minutes

Today is an important day for me – I want to introduce to you a new Laravel package created by myself and my team. Please welcome QuickAdmin – a tool to build Laravel adminpanel in minutes.

History and idea

While working with Laravel, I got quite a few projects for managing business data. I call them mini-CRMs. There was a loan management system, sports team schedule management system, event management app etc. And they all are adminpanel-based without front-end view, only login area. Some of those projects were only adminpanel, for internal purpose of the company.

And I’ve noticed a lot of similarities in those projects – basically, it all comes down to a simple CRUD generation. Create / Read / Update / Delete entries, and those entries consist of fields and some options. That’s it, from technical perspective.

So we decided to create a tool which would allow my small team to create such projects really rapidly. At first it was an in-house internal product, but now we release the first version in public as a Laravel package.

Please note that it’s early days for the package, and there will be a lot of small bugs, feature requests and maybe it won’t even fit your needs (I hope you report it all to me – please use GitHub or email povilas@laraveldaily.com).

Official links

In a minute I will show how it all works, but for those who are impatient to try it out yourselves – here are links:

So, how it works?

QuickAdmin is used for a fresh Laravel install – so you install Laravel and then add QuickAdmin to Composer:

composer require laraveldaily/quickadmin

Notice: for building forms QuickAdmin has a dependency of illuminate/html package.


Then – add our service provider to config/app.php to $providers array:

Laraveldaily\Quickadmin\QuickadminServiceProvider::class,

And next step – installation command:

php artisan quickadmin:install

Notice: at this step we already need a connection to your database, so make sure you have all credentials in .env file.

During installation, QuickAdmin will perform these things:

  • Copy some initial files from package to your Laravel app
  • Will run database migrations – default Laravel ones and several on top
  • Will create administrator user – you will be asked to create name/email/password

After installation – add our Middleware to the file App/Http/Kernel.php:

'role' => \Laraveldaily\Quickadmin\Middleware\HasPermissions::class,

And that’s it – you can now login to your new adminpanel! Just go to URL http://yourdomain/admin and you will see login screen:

By default, QuickAdmin comes with User management functionality. There are two roles – Administrator and User. The only difference is that Administrator will have access to manage users and to create new CRUDs – simple User will have access only to CRUDs that administrator creates.

So, it’s time to create a new CRUD, right? Empty form for it looks like this:

Purpose of each field is explained in placeholders, so it should be pretty clear, but here’s an example of filled-in form:

And then – ta-daaaa! – a new menu item Products with ability to create new product, like this:

Basically, that’s it – you create more CRUDs, create relationship between them (there’s a special field type for it – Relationship) and then add your own logic on top of generated files, if you need.

Plans for the future

Currently, package version is only v0.2. Good enough to start the project. What currently we don’t have and plan to build:

  • More special field types with their specific validation rules
  • Generate adminpanel for existing database tables
  • More settings for user to choose from
  • More front-end flexibility
  • … will you add something here?

So, if you are interested in building adminpanels or CRMs – you are more than welcome to use our package and contribute with your suggestions or maybe even pull requests.

GitHub link once again: LaravelDaily/quickadmin

Also, if you want us to build a data management system for you with a help of QuickAdmin – contact me at povilas@laraveldaily.com.

QuickAdmin authors and contributors

QuickAdmin wouldn’t happen without help from my small but effective team from Lithuania.

Like our articles?
Check out our Laravel online courses!

63 COMMENTS

  1. hi there!
    when i add ‘Laraveldaily\Quickadmin\QuickadminServiceProvider::class’, in my service provider and run “php artisan quickadmin:install ” exception occur class :Laraveldaily\Quickadmin\QuickadminServiceProvider::class” not found…
    slove this exception….thankx

    • Hi Qadeer,
      From what you have written, it seems to me that you have additional symbol at the beginning:
      “class :Laraveldaily\Quickadmin\QuickadminServiceProvider::class”
      there shouldn’t be : symbol before Laraveldaily. Double check the syntax, please.

  2. This is great so far. I know you just released it, but I’m wondering if you plan on including the ability to update a model. Say you wanted to add a new field to an existing CRUD model?

    So this looks to me like you would use this to quickly up some CRUD tables… then from there you edit the controllers etc… based on your specific needs. So using this as a “generator” to bus tout boilerplate?

    In any event… this is a really good start.

    • Thanks for the support and for Ideas, Greg.
      Yes, so far, it’s more like a generator for a start, and then you continue with your own needs.

      There are a lot of ideas where to go to next with the functionality, so far i’m still gathering initial crowd reaction and trying to decide on the future functionality and actual needs.

  3. PHP Fatal error: Class ‘Laraveldaily\Quickadmin\QuickadminServiceProvider’ not found in /var/www/html/QuickAdmin/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146

    [Symfony\Component\Debug\Exception\FatalErrorException]
    Class ‘Laraveldaily\Quickadmin\QuickadminServiceProvider’ not found

  4. Hi Povilas,

    I just installed the QuickAdmin package into a demo laravel app to check the package functionality. I created few CRUD menus. It’s working flawlessly. I am totally happy with the package. I will definitely use this package for my future projects. Good job. Keep it up. 🙂

  5. Hi,
    I just installed your package and i can’t figure out some things 🙂
    I followed all the steps and the migrations are created, the views are copied, the user is created. But when i access to domain/admin they redirect-me to domain/login and this “route” doesn’t exist.
    I also run the “php artisan make:auth” but without luck.
    I’am missing some step?

    • Hi Rui, thanks for the comment. We’ve received a similar bug-report and we’re in process of investigating the bug and fixing it, just not sure when we’ll fix it, it’s New Year’s week after all. So could be next week.

  6. this is my error

    D:\xampp\htdocs>composer require laraveldaily/quickadmin
    The “https://packagist.org/packages.json” file could not be downloaded: SSL operation failed with code 1. OpenSSL Error m
    essages:
    error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
    Failed to enable crypto
    failed to open stream: operation failed
    https://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of da
    te
    Using version ^1.0 for laraveldaily/quickadmin
    ./composer.json has been updated
    Loading composer repositories with package information
    The “https://packagist.org/packages.json” file could not be downloaded: SSL operation failed with code 1. OpenSSL Error m
    essages:
    error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
    Failed to enable crypto
    failed to open stream: operation failed
    https://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of da
    te
    Updating dependencies (including require-dev)
    Your requirements could not be resolved to an installable set of packages.

    Problem 1
    – intervention/image 2.3.5 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.4 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.3 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.2 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.1 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – laraveldaily/quickadmin 1.0.0 requires intervention/image ^2.3 -> satisfiable by intervention/image[2.3.0, 2.3.1, 2
    .3.2, 2.3.3, 2.3.4, 2.3.5].
    – Installation request for laraveldaily/quickadmin ^1.0 -> satisfiable by laraveldaily/quickadmin[1.0.0].

    Installation failed, reverting ./composer.json to its original content.

    D:\xampp\htdocs>composer require laraveldaily/quickadmin
    The “https://packagist.org/packages.json” file could not be downloaded: SSL operation failed with code 1. OpenSSL Error m
    essages:
    error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
    Failed to enable crypto
    failed to open stream: operation failed
    https://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of da
    te
    Using version ^1.0 for laraveldaily/quickadmin
    ./composer.json has been updated
    Loading composer repositories with package information
    The “https://packagist.org/packages.json” file could not be downloaded: SSL operation failed with code 1. OpenSSL Error m
    essages:
    error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
    Failed to enable crypto
    failed to open stream: operation failed
    https://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of da
    te
    Updating dependencies (including require-dev)
    Your requirements could not be resolved to an installable set of packages.

    Problem 1
    – intervention/image 2.3.5 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.4 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.3 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.2 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.1 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – intervention/image 2.3.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
    m.
    – laraveldaily/quickadmin 1.0.0 requires intervention/image ^2.3 -> satisfiable by intervention/image[2.3.0, 2.3.1, 2
    .3.2, 2.3.3, 2.3.4, 2.3.5].
    – Installation request for laraveldaily/quickadmin ^1.0 -> satisfiable by laraveldaily/quickadmin[1.0.0].

    Installation failed, reverting ./composer.json to its original content.

    • The main part of this error:
      – intervention/image 2.3.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your syste
      m.

      You need a PHP extension ext-fileinfo to make our package work with images.

  7. In my php.ini file the extension=php_fileinfo.dll was on this mood-> ;extension=php_fileinfo.dll
    i have removed this -> ; and saved my php.ini file then i restarted my Apache and try again.. but same problem showing me.
    what should i do now?

  8. Oh yea….. its super … after a long time i have success to install it.. i am impressed to see it.. but i have a problem .. i can’t delete custom menu from side bar.. how can i delete my custom menu what i have created?

    • Great that you’ve managed to install it, we will update Readme file about that fileinfo.dll.
      Answer to your question is – unfortunately, there’s no Delete function. Cause it would be too much work to delete all the generated files from all folders. You can delete it all manually – from “cruds” Database table and then all files from Controllers/Models/Views etc.

  9. Just wondering where the routes are registered. After installation, I looking into the routes.php file but nothing was set there but “php artisan route:list” shows a lot of routes. Just trying to understand how the system works

    Thanks

  10. Thanks for your response. I found the file but do not understand how it is wrapped into the system. I will normally expect routes in the default routes.php file. So could you please explain how this file gets called instead. Please forgive my ignorance. I am a newbie learning

    Thanks

  11. Amazing software.
    If I was building an API, but the functionality is already made in your controllers, I need to bypass CSRF for the AJAX call. Am I missing something?

  12. i want to change the colors specifically the black and grey and replace them with green and red
    i don’t know the class in the css file that i have to change a little help thank you

  13. hey
    can anybody help me…. i follow all these steps but admin panel is not opened it shows

    The requested URL /laravel_new/admin was not found on this server.

  14. Hi,
    I am using laravel 5.2
    I got this error “FatalErrorException in DatabaseManager.php line 250:
    Maximum function nesting level of ‘100’ reached, aborting!” when i trying to add new menue.
    Please help me to solve this problem.

    Thanks

    • Hi DR,
      No, it’s not possible as a package, but we have a new online generator version so you can generate adminpanel there and then copy the files you need to your project: quickadminpanel.com

  15. hey
    can anybody help me….

    FatalErrorException in C:\xampp\htdocs\QuickAdmin\storage\framework\views\1747ec2b054684b49a67331bb535cf8685ca4857.php line 35:
    Call to a member function canAccessMenu() on null

  16. error coming while giving this command
    composer require laraveldaily/quickadmin

    Your requirements could not be resolved to an installable set of packages.

    Problem 1
    – laraveldaily/quickadmin 1.1.0 requires intervention/image ^2.3 -> satisfiable by intervention/image[2.3.0, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.

    To enable extensions, verify that they are enabled in those .ini files:
    – C:\xampp\php\php.ini
    You can also run `php –ini` inside terminal to see which files are used by PHP in CLI mode.

    Installation failed, reverting ./composer.json to its original content.

    • i resolved this issue by opening php.ini file in php folder located in xampp.
      find extension=php_fileinfo.dll
      if there is ; in start of this, remove it, that use for comment syntax.
      if you not find then simple paste this
      extension=php_fileinfo.dll

  17. Great CRUD tool for Laravel, I am new to Laravel, After reading much about this and other CRUD tool, I started to using this for my new project, working very fine till now, having some issues related to cross relations but its fine, will do it our own.

    Thanks to you and your team Mr. Povilas Korop for such a great tool.

  18. I found out created menus cant be deleted of updated in terms of may be adding a new column after the initial creation .only the name of the menu can be updated. Again you cant delete your custom menu if no more needed.

    • Hi Ordained, yes our package doesn’t allow to edit/delete any code, we cannot delete anything from your application, can we? Otherwise we might delete something that you have edited.

      Our online version at quickadminpanel.com allows to do that cause then we control the CRUDs structure and can edit/delete until you Download the whole adminpanel.

  19. I tried to install it on local with a fresh laravel install and got this

    NotFoundHttpException in RouteCollection.php line 161:

LEAVE A REPLY

Please enter your comment!
Please enter your name here