binshops/laravel-ticket

A simple ticketing system for Laravel 5.1 – 5.8 and 6.* - 7.* - 8.* - 9.* - 10.* -which integrates smoothly with Laravel default users and auth system

Installs: 340

Dependents: 0

Suggesters: 0

Security: 0

Stars: 10

Watchers: 1

Forks: 5

Open Issues: 3

Type:laravel-package

v1.0.0 2023-07-17 15:37 UTC

This package is auto-updated.

Last update: 2024-04-17 17:25:49 UTC


README

68747470733a2f2f6769746875622d70726f64756374696f6e2d757365722d61737365742d3632313064662e73332e616d617a6f6e6177732e636f6d2f32303737353533322f3235333939323236352d37313863376435302d366565612d343839312d383434662d3636373465333866326430352e706e67

A simple helpdesk ticketing system for Laravel 5.1+ (5.1 – 5.8 and 6.* - 7.* - 8.* - 9.* - 10.*) which integrates smoothly with Laravel default users and auth system. It will integrate into your current Laravel project within minutes, and you can offer your customers and your team a nice and simple support ticket system.

Features:

  1. Three main users roles users, agents, and admins
  2. Users can create tickets, keep track of their tickets status, giving comments, and close their own tickets (access permissions are configurable)
  3. Auto assigning agents to tickets, the system searches for agents in specific department and auto select the agent with lowest queue
  4. Simple admin panel
  5. Localization (Arabic, Brazilian Portuguese, Deutsch (German), English, Farsi, French, Hungarian, Italian, Persian, Russian, and Spanish language packs are included)
  6. Very simple installation and integration process
  7. Admin dashboard with statistics and performance tracking graphs
  8. Simple text editor for tickets descriptions and comments allows images upload

Quick Installation:

Requirements

First Make sure you have got this Laravel setup working:

  1. Laravel
  2. Users table
  3. Laravel email configuration
  4. Bootstrap 3, or Bootstrap 4
  5. Jquery

Dependencies that are getting installed and configured automatically by LaravelTicket (no action required from you)

  1. Spatie HTML
  2. Laravel Datatables v1.13.4
  3. HTML Purifier

Installation steps (<5 minutes)

Step 1. Run this code via your terminal

composer require 'binshops/laravel-ticket'

Step 2. After installing the package, you have to add this line on your config/app.php in Service Providers section.

Binshops\LaravelTicket\LaravelTicketServiceProvider::class

Step 3. Check if App\Models exists

Step 4. Make sure you have authentication set up. In 5.2+, you can use php artisan make:auth

Step 5. Setting up your master view for LaravelTicket integration

Step 6. Register at least one user into the system and log it in.

Step 7. Go ahead to http://your-project-url/tickets-install to finalize the installation.

Default laravel-ticket front route: http://your-project-url/tickets

Default laravel-ticket admin route: http://your-project-url/tickets-admin

Notes:

Make sure you have created at least one status, one priority, and one category before you start creating tickets.

If you move your installation folder to another path (or server), you need to update the row with slug='routes' in table laravelticketsettings. After that, don't forget to flush the entire cache.

Documentation

LaravelTicket Wiki

Integrating Laravel Ticket views with your project template

Configuring the master view

Laravel Ticket views system is developed to integrate with the current project master view (Laravel Ticket uses Bootstrap framework). The master view file is the main view file that is using "yield" to call header, content, footer sections. It should be located at resources/views (ex. resources/views/layouts/master.blade.php), open it and make sure it yields for page, content, and footer.

@yield('page') Page section for passing the current page title

<head> ...
<title>My website - @yield('page')</title>
</head>

@yield('content') Content section for the content

<body> ...
@yield('content')
...
</body>

@yield('footer') 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>

Here's a quick example of a layout file.