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 email@example.com).
In a minute I will show how it all works, but for those who are impatient to try it out yourselves – here are links:
- Github: LaravelDaily/quickadmin
- Packagist: LaravelDaily/quickadmin
- Official mini-page: detailed description and basic usage
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:
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 firstname.lastname@example.org.
QuickAdmin authors and contributors
QuickAdmin wouldn’t happen without help from my small but effective team from Lithuania.