A simple helpdesk tickets system for Laravel 5.1 which integrates smoothly with Laravel default users and auth system
- Three main users roles users, agents, and admins
- Users can create tickets
- Users can keep track of their tickets status
- Auto assigning to agents, the system searches for agents in specific department and auto select the agent with lowest queue
- Agents can view and modify their own assigned tickets
- Agents can communicate with ticket issuers through ticket comments
- Auto email notifications to ticket participants (ticket owner, assigned agent) when ticket is updated or there is a new comment
- Simple admin panel
- Administrators can add agents, create custom statuses, categories/departments, priorities, and manage tickets and comments.
- Tickets access restrictions (Only ticket owner, an agent, or an admin whom has access to the ticket)
- Settings option to allow agents access to all tickets or to restrict agents access to only their assigned tickets
- Localization
- Tickets filters and search
- Dashboard stats and graphs
- Configurable Start and Close statuses (From admin panel)
- Forms validation
First Make sure you have got all dependents working:
To install this package:
Run this code via your terminal
composer require kordy/ticketit
After install it, you have to add this line on your config/app.php
on Service Providers lines.
Kordy\Ticketit\TicketitServiceProvider::class,
Install database tables by running the migrate artisan command
php artisan migrate --path=vendor/kordy/ticketit/src/migrations
You may publish all files at once
php artisan vendor:publish --provider="Kordy\Ticketit\TicketitServiceProvider"
Or you may publish by tags
Publish the config file (It will generate new file at config/ticketit.php
. Edit necessary lines.)
php artisan vendor:publish --provider="Kordy\Ticketit\TicketitServiceProvider" --tag="config"
Publish the views (It will generate views files at resources/views/vendor/kordy/ticketit/
. Edit necessary lines.)
php artisan vendor:publish --provider="Kordy\Ticketit\TicketitServiceProvider" --tag="views"
After publishing the config file config/ticketit.php , edit it for your settings.
Be sure to implement these views sections in your master template in order to integrate with the ticketit views:
Page section for passing the current page title
<header> ...
<title>My website - @yield('page')</title>
</header>
Content section for the content
<body> ...
@yield('content')
...
</body>
Footer section for passing the jquery scripts, so make sure it is called after you call the jquery
<body> ...
@yield('content')
...
<script src="/js/jquery.min.js"></script>
..
@yield('footer')
</body>