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
Notice from creators: Attendize is in the early stages of development and therefore is likely to contain bugs and unfinished features. Be wary about using Attendize in a production environment. So, Attendize is based on Laravel 5.2 and freely available on Github. Let's install and see how it works.
Installation
To install Attendize, we don't clone the repository - we download ready-made ZIP file (quite a big one - 91 MB and more than 200 MB unzipped) and unpack it in our folder. Then we have two choices: go to URL /install or choose to run command-line installer by filling in .env file and then running php artisan attendize:install. I've tried to run visual installer, but it failed me with this error:
API_PREFIX=api



Usage
Ok, let's log in and see how it all works. Insteresting thing - after first login you get asked to create an organizer. Of course, makes sense, how can you create events and sell tickets without having organizers?





Laravel code
Enough of the functionality, let's see how easy it is to understand and potentially customize the code. As usual, I judge the app but its routes file, and here in Laravel 5.2 version we check app/Http/routes.php, and it looks good. 700 lines of routing code, which is quite ok for this kind of app. But what got my attention was this:Route::get('{organiser_id}/customize', [ 'as' => 'showOrganiserCustomize', 'uses' => 'OrganiserCustomizeController@showCustomize', ]); Route::post('{organiser_id}/customize', [ 'as' => 'postEditOrganiser', 'uses' => 'OrganiserCustomizeController@postEditOrganiser', ]); Route::get('create', [ 'as' => 'showCreateOrganiser', 'uses' => 'OrganiserController@showCreateOrganiser', ]); Route::post('create', [ 'as' => 'postCreateOrganiser', 'uses' => 'OrganiserController@postCreateOrganiser', ]);
class EventController extends MyBaseController { public function showCreateEvent(Request $request) { $data = [ 'modal_id' => $request->get('modal_id'), 'organisers' => Organiser::scope()->lists('name', 'id'), 'organiser_id' => $request->get('organiser_id') ? $request->get('organiser_id') : false, ]; return view('ManageOrganiser.Modals.CreateEvent', $data); }
class MyBaseController extends Controller { public function __construct() { /* * Set up JS across all views */ JavaScript::put([ 'User' => [ 'full_name' => Auth::user()->full_name, 'email' => Auth::user()->email, 'is_confirmed' => Auth::user()->is_confirmed, ], /* * @todo These should be user selectable */ 'DateFormat' => 'dd-MM-yyyy', 'DateTimeFormat' => 'dd-MM-yyyy hh:mm', 'GenericErrorMessage' => 'Whoops! An unknown error has occurred. Please try again or contact support if the problem persists.' ]); /* * Share the organizers across all views */ View::share('organisers', Organiser::scope()->get()); }
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...