Ticketing system for Laravel 5.1 - 8.x. Allows to create new tickets via form only. Includes file attachments, ticket tags, filtering, scheduling and e-mail notifications.
This is a ticketing system for Laravel PHP framework (from version 5 to 8): It is based on Kordy/Ticketit. We have kept almost all ticketit features and added many additional functionalities, like file attachments, ticket tags, scheduling, filtering and an advanced search form. This package uses an own route, "/PanicHD" which can be modified after installation, so it may be installed in your existent Laravel project.
Panic Help Desk is a ticketing system that may be integrated on any Laravel app. A "ticket" can be any specific issue, thread, bug or whatever you need. It includes some general fields that may be useful to classify it and has some interaction possibilities between the user that creates it and the ticket managers.
This ticketing system is actually mean to be used in a corporate support environment, by these reasons:
This package has got up to date translations to Brazillian Portuguese, Catalan, English and Spanish. There are more translations included, but they're oldier and some menues may not be translated yet.
PanicHD used language will be the one you have configured within Laravel.
You may also create your own language files. We encourage you to make your own language pack and add a pull request to our dev branch, to let other PanicHD members from your country have it.
This is a synopsis of the main PanicHD features. For detailed descriptions, example screenshots and general reference, please read our Current features page in the wiki
Three user roles: Member, Agent and Admin
PanicHD ticket fields
Basic set that any member can fill up when registering a new ticket:
classification fields, like: Priority, status, tags
Time related fields:
Any of the ticket managers may view / edit all the ticket fields
A manager may add a ticket assigning it to any owner (any registered user)
A manager may add a user hidden ticket (or switch a visible ticket to hidden):
User / Managers communication
Ticket filters
Ticket search
For Admins
For developers
There is a configuration settings menu that directly comes from Ticketit. It is so useful and flexible to configure the package at your own desire even without altering the package files
We have added some useful Artisan commands to help you make your own local tests. Click the link or type in the Laravel console the following command:
php artisan panichd
Laravel 5.1 or higher including:
Composer (the PHP dependency manager)
MySQL 5.7 or 8.x with disabled "strict mode" or specifying all or required MySQL modes except "ONLY_FULL_GROUP_BY". For either option, open Laravel's config\database.php and go to "connections" -> "mysql", and then:
If it's installed in the same Laravel project you want to install Panic Help Desk, Panic Help Desk will replace it, reusing it's database tables and keeping registered tickets. Before installing PanicHD, you will have to uninstall Kordy/Ticketit following these steps:
composer update kordy/ticketit
Open a command line in the Laravel folder and type:
composer require panichd/panichd
If you are using Laravel 5.4 or lower, you will have to add the service provider. In this case, Open config/app.php. In the "Providers" section, add:
PanicHD\PanicHD\PanicHDServiceProvider::class,
At this point, if you think you typed enough commands, the web installer comes to rescue you ;) But if you're a tough and experienced Laravel coder, please forget this and jump to Complete installation with command line section.
To access the web installer you just have to:
B.1- Create the attachments folders:
panichd_attachments
panichd_thumbnails
B.2- Execute these commands:
Publish and install migrations
1.1 Publish migrations:
php artisan vendor:publish --tag=panichd-db
1.2 Execute migrations:
php artisan migrate
Fill up "panichd_settings" table with the required defaults seeder:
php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\SettingsTableSeeder
If Kordy/Ticketit was installed, Patch settings table with:
php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\SettingsPatch
Enable "panichd_thumbnails" folder access:
php artisan storage:link
Publish included assets:
php artisan vendor:publish --tag=panichd-public
B.3- If your have done a clean PanicHD installation, you must enable at least one administrator for it by setting users table row/s "panichd_admin" field value to 1.
B.4- Access http://your-laravel-app-URL/panichd in your browser
You may use our demo data seeder to test the package quickly. The following command creates some fake users, tickets and other stuff which you may browse, edit and do whatever you want:
`php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\DemoDataSeeder`
To delete all PanicHD demo content use this command:
php artisan panichd:demo-rollback
Before you can create tickets, you must have added at least one Priority, one Status and one Category. You may use our basic seeder to fill these lists with default elements meant for general usage. All added items will be editable. To use it type the following command:
php artisan db:seed --class=PanicHD\\PanicHD\\Seeds\\Basic
Please read our contributing reference.
If some day this package is as useful to someone as other ones like these have been to us, our debt will for sure still be enormous, but also we'd be very happy!
Thanks to Kordy and his collaborators for building up Kordy/Ticketit and sharing it on GitHub. Without it, Panic Help Desk simply won't exist.
A big Thank You also to all the guys at online communities like StackOverflow that do their best everyday to help others like me on their daily coding headaches.