Other reviews in this series:
- FlarePoint: Laravel-based free CRM
- Invoice Ninja – Laravel-powered solution for better invoicing
- Attendize – event tickets selling system based on Laravel 5
- Ribbbon – project management system on Laravel 5.1 and Vue.js
- Faveo: impressive helpdesk system built on Laravel
- Confomo: Laravel-based website to meet Twitter friends at conferences
Installation
As usual, let's start with install. Code is provided on Github, but Readme information for some reason looked quite "corporate" for me, cause there were no instructions for installation. In fact, they do position themselves as an enterprise software - with quite impressive three-digit prices. But I didn't give up and went via usual "git clone -> composer install" route. Interestingly, repository contains vendor folder too, so there's no need to run composer install - therefore the whole repository is quite heavy - 100+ MB.



Laravel code
As usual, I start code analysis from routes file - in this case of Laravel 5.2, it's app/Http/routes.php. And, oh boy, it's such a big beast here - 1200+ lines of code, with various middlewares and groups:Route::group(['middleware' => ['web']], function () { Route::group(['middleware' => 'update', 'middleware' => 'install'], function () { Route::controllers([ 'auth' => 'Auth\AuthController', 'password' => 'Auth\PasswordController', ]); Route::get('social/login/redirect/{provider}/{redirect?}', ['uses' => 'Auth\AuthController@redirectToProvider', 'as' => 'social.login']); Route::get('social/login/{provider}', ['as' => 'social.login.callback', 'uses' => 'Auth\AuthController@handleProviderCallback']); Route::get('social-sync', ['as' => 'social.sync', 'uses' => 'Client\helpdesk\GuestController@sync']); }); Route::get('account/activate/{token}', ['as' => 'account.activate', 'uses' => 'Auth\AuthController@accountActivate']); Route::get('getmail/{token}', 'Auth\AuthController@getMail'); Route::get('verify-otp', ['as' => 'otp-verification', 'uses' => 'Auth\AuthController@getVerifyOTP']); Route::post('verify-otp', ['as' => 'otp-verification', 'uses' => 'Auth\AuthController@verifyOTP']); Route::post('resend/opt', ['as' => 'resend-otp', 'uses' => 'Auth\AuthController@resendOTP']); // ... Route::group(['middleware' => 'roles', 'middleware' => 'auth', 'middleware' => 'install', 'middleware' => 'update'], function () { //Notification marking Route::post('mark-read/{id}', 'Common\NotificationController@markRead'); Route::post('mark-all-read/{id}', 'Common\NotificationController@markAllRead'); Breadcrumbs::register('notification.list', function ($breadcrumbs) { $breadcrumbs->parent('dashboard'); $breadcrumbs->push('All Notifications', route('notification.list')); }); // ... Route::group(['middleware' => 'role.agent', 'middleware' => 'auth', 'middleware' => 'install', 'middleware' => 'update'], function () { Route::post('chart-range/{date1}/{date2}', ['as' => 'post.chart', 'uses' => 'Agent\helpdesk\DashboardController@ChartData']); Route::get('agen1', 'Agent\helpdesk\DashboardController@ChartData'); Route::post('chart-range', ['as' => 'post.chart', 'uses' => 'Agent\helpdesk\DashboardController@ChartData']); Route::post('user-chart-range/{id}/{date1}/{date2}', ['as' => 'post.user.chart', 'uses' => 'Agent\helpdesk\DashboardController@userChartData']); // ...
class ClientTicketController extends Controller { /** * Create a new controller instance. * * @return type response */ public function __construct(TicketWorkflowController $TicketWorkflowController) { $this->TicketWorkflowController = $TicketWorkflowController; $this->middleware('board'); } /** * Get Checked ticket. * * @param type Tickets $ticket * @param type User $user * * @return type response */ public function getCheckTicket(Tickets $ticket, User $user) { return view('themes.default1.client.helpdesk.guest-user.newticket', compact('ticket')); }
Other reviews in this series:
- FlarePoint: Laravel-based free CRM
- Invoice Ninja – Laravel-powered solution for better invoicing
- Attendize – event tickets selling system based on Laravel 5
- Ribbbon – project management system on Laravel 5.1 and Vue.js
- Faveo: impressive helpdesk system built on Laravel
- Confomo: Laravel-based website to meet Twitter friends at conferences
No comments or questions yet...