Welcome to Laravel Booking System Guide

Laravel Booking System with Live Chat is great for booking and make appointments or schedule appointments for all professional and business entrepreneur i.e. Chefs, Clubs, Dance Instructors, Dentists, Doctors, Estheticians, Hairdresser, Health Clubs, Lawyers, Make-up Specialists, Massage Therapists, Nail Salons, Personal Trainers, Pet Care, Photographers, Real Estate Agent, Restaurants, Spas, Sport Coaches, Teachers etc..

Are you deliver your service to your clients? Let your clients easily book your service with booking calendar.
Does your office receive customers by appointment? You can create a booking calendar for every professional

Users dashboard will display available services, total bookings, total transactions, total credits and administrator contact information.
users can manage their account with different features. Users can able to buy credits(points) from PayPal payment option. Users can book services using credits(points) available in their accounts. They will get email notifications of every transactions made for buy credit using PayPal Payment.
Users are able to view past transactions and they can search transactions by date. all the features are listed belows:

Laravel Booking System Administrator will be able to control entire system. They will have login screen and once they login into their dashboard they will manage all the things i.e. site settings, payment settings. paypal settings, change password, service management, user management, booking management, enquiry management.

Live Chat is the key feature of the system. When user create their account and login to their dashboard then users are able to directly chat with system administrator for any enquiries or query. System Administrator will get notification on admin dashboard when any user send message using Live Chat and also admin dashboard display online users and notification for number of unread messages. System Administrator can able to view past chat history of every users

Users Features

  • User Dashboard
  • Profile & Change Password
  • Live Chat
  • Booking/Reservation Calendar
  • Bookings List/History
  • Export Bookings
  • Transactions List/History
  • Export Transactions
  • PayPal Payment

Admin Features

  • Admin Dashboard
  • Profile & Change Password
  • Live Chat & Notifications
  • Payment & Paypal Settings
  • Services Management
  • Users Management
  • Bookings Management
  • Export Bookings
  • Transactions Management
  • Export Transactions
  • Enquiries Management

Server Requirements

Laravel Booking System has a few system requirements. You will need to make sure your server meets the following requirements:

  • PHP >= 7.1.3
  • BCMath PHP Extension
  • Ctype PHP Extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension

File Structure

Laravel Booking System can be downloaded once you purchase from your account. you will get www.laravel-booking.com zip package. You have to extract that package. File Hierarchy of the Source Code Package will look like below:

File Hierarchy of the Source Code Package

www.laravel-booking.com/
├── app/
│   ├── Console
│   ├── Exceptions
│   ├── Helpers/
│   ├── Http/
│   ├── Mail/
│   ├── Notifications/
│   ├── Providers/
│   ├── XXX.php (All model class files)
├── assets/
│   ├── admin/
│   │   ├── (All Admin's assets)
│   |── css/
│   |── font-awesome/
│   |── fonts/
│   |── images/
│   |── js/
│   |── user/ 
│       ├── (All Users assets)
├── bootstrap/
├── config/
├── database/
├── resources/
│       ├── views
│           ├── admin (All Admin's template files)
│           ├── frontend (All frontend's template files)
├── routes/
├── storage/
├── tests/
├── uploads/
├── vendor/
├── .env
├── demo_laravel_booking.sql
└── (All other files)

Database Configuration

Create database in your server and import demo_laravel_booking.sql (attached).

Update .env file and set below variables

DB_DATABASE=YOUR DATABASE NAME 
DB_USERNAME=YOUR DATABASE USER
DB_PASSWORD=YOUR DATABASE PASSWORD

SMTP Mail Configuration

Update .env file and set below variables

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com  //(This is for gmail. You can set other one also)
MAIL_PORT=587
MAIL_USERNAME=YOUR EMAIL ADDRESS
MAIL_PASSWORD=YOUR PASSWORD
MAIL_ENCRYPTION=tls

Laravel Booking System will have built in landing page. You can make changes few things for your landing page here is the list that can be manageable from admin side under settings menu > general settings.

  • Logo
  • Site Title
  • Social Icons URL
Landing Page Header
Landing Page Footer

User can access their dashboard once they create their account with Laravel Booking System. User required to fill the information displayed in registration form and click on Register button. Once they register user will get email notification of their account creation.

Registraion Form

After creating account user will sign in with their registered email and password using below form.

Sign In Form

user will get following features:

  • User Dashboard
  • Profile & Change Password
  • Live Chat
  • Booking/Reservation Calendar
  • Bookings List/History
  • Transactions List/History
  • PayPal Payment

User Video

User Dashboard

User Dashboard will show quick over of services, bookings, transactions and credits. user will be able to click on any of the box and they will redirect to related section. Say for example if user will click on "bookings". he will redirect to their booking list screen.

Dashboard

User Profile

User Can change their profile information like: firstname, lastname and profile photo from profile screen.

Profile

User Change Password

User Can change their account password from the change password screen.

Change Password

Buy Credit

User Can buy credit using two different payment options.

  • PayPal Payment
  • Direct offline Payment
Payment Options

User will be able to buy any number of credit from here. they have to insert number into the textbox and price for that number of credits will be calculated automatically. at the top of the screen user will come to know what is the price for each credit and that price and currency can be change by admin area. So administrator can set any price and currency for each credit.

After making the payment user will get email notification as well as administrator also get email notification of credit purchased by user.

PayPal Payment

Transaction List

User Can able to view their transactions of payments and they can filter the transactions by date.

Transaction List

Reservation Calendar

User Can able to view all the available services by date on calendar view. They can book any available service by clicking on that service. Right side of the screen will be display list of all the services.

Reservation Calendar

Booking Spots

User click any service from calendar they will get this form to book available spot on selected day for that service. Here they will have to choose available spot and fill the booking form with their details.

How many maximum spot for each service can be booked by user? that will be mentioned on right side of the screen. System Administrator can set the maximum number of spot user can book for the service.

How many credit will be used for each spot will be mentioned on right side of the screen. Credit for each spot can be set by system administrator. When user choose spot the credit will be automatically calculated and displayed on right side.

Booking Form

Booking List

User Can able to view their bookings and they can filter the bookings by service, booking name, booking email, mobile number and booking date. They are able to view their booked spots and status of their booking.

Booking List

Live Chat

User Can able to directly chat with system administrator.

Live Chat

System administrator will get following features:

  • Admin Login
  • Admin Dashboard
  • Profile & Change Password
  • Live Chat & Notifications
  • Payment & Paypal Settings
  • Services Management
  • Users Management
  • Bookings Management
  • Transactions Management
  • Enquiries Management

Admin Video

Admin Login

Here is the secure administrator login area. Admin can login with username and password, without credentials admin can not be able to access dashboard. There is also link for forgot password so if administrator forgot their password then they can able to reset password using that link

Login

Admin Dashboard

Admin Dashboard will show quick over of total users, online users, total services, total bookings, total transactions and total enquiries. admin will be able to click on any of the box and they will redirect to related section. Say for example if user will click on "total bookings". he will redirect to their booking list screen.

Dashboard

Admin Profile

Admin Can change their profile information like: firstname, lastname, email and profile photo from profile screen.

Profile

Admin Change Password

Admin Can change their account password from the change password screen.

Change Password

General Settings

General settings which is visible to user dashborad of system. system admin can set their official map, address, email id, phone no., social media links etc. So once it has been set that can be visible to user dashboard. so user can reach to administrator using these details. admin can set the logo and site title here so it will be automatically changed in entire system.

General Settings

Payment Settings

From Payment settings screen admin can set the price for each credit. system admin can set price in different currency and currency dropdown will show all the paypal supported currency list. If admin want to set price in USD then they have to select that currency from selectbox and set price for one credit. So let say for example if admin set price 10 USD for 1 credit and user buy 10 credit then they will have to pay 100 USD.

Payment Settings

PayPal Settings

To receive payment from user in paypal account, system administrator will have to set their paypal account's Client ID and Secret.
From PayPal settings screen admin can set their PayPal account credentials to receive payment into paypal.
PayPal Settings screen show "Payment Mode" 1) Test and 2) Live

Test

When you set Test mode then system will consider Sandbox Client ID and Sandbox Secret. So this is for testing purpose and real transaction will not be occurred.

Live

When you set Live mode then system will consider Live Client ID and Live Secret. only real transaction take place when you have set live mode

Payment Settings

Here is the step how to get PayPal Client ID and Secret

=> Go to url: https://developer.paypal.com/
=> Login with your credentials

Create App
Developer Paypal Dashboard
App Details

Currency Management

From Currency Add/Edit screen admin can add/edit currency. Currency added here will be displayed in selectbox of Payment Setting Screen.

Currency Add/Edit Form

From Currency List screen admin can edit/delete, active/inactive currency.

Currency List

Service Management

From Service Add screen admin can add service. Each field will have information tips about that field so admin can able to know what is the use of that field.

Service Add Form

Admin can change the service data from service edit screen. here is the example of weekly service that we have added.

Service Edit Form

Admin Active/Inactive any of the service from service list screen. Inactive services will not be display on calendar for users to book. So admin have facility that they can inactive service if they are not available for few days and want to close the service for that particular time. Once system admin back then again they can Activate the service so that service will be available for users to book. If there are lot of services added by admin then they are able to filter the service from given search box it will save the time to find particular service.

Services List

Users Management

Laravel Booking System Admin can manage all the users. Admin can block any user's account by changing status to inactive.

  • Filter Users
  • Users Status: Active and Inactive
  • Edit Users Credits
  • View Users Bookings
  • View Users Transactions
  • View Users Chat History
  • Delete any user's account
Service Add Form

Booking Management

Laravel Boooking System Admin manage all the bookings from here and system admin can do following from booking list screen.

  • Export Booking in CSV Format
  • Filter Booking By User Name, Booking Name, Booking Email, Booking Mobile and Booking Date
  • Booking Status: Pending, Confirm and Cancel
  • View Booking Details
  • Delete Booking

How Booking Status Work?

When any user book service admin will get email notification of that booking and admin will have to confirm their booking from booking list screen.

By default status of booking will be Pending.
If admin confirm any of booking then user will get email notification that their booking is confirmed by systm admin.
If Admin cancel any of booking then user will get email notification that their booking is cancelled and user credits(points) automatically refunded to their account.
If booking status is pending and schedule date is passed then user will get refund of their credits(points) automatically and their booking is cancelled automatically.
For auto cancel booking of past dates and refund to users credits(points) you have to set cron job into your server. here is the command that you have to set for cron job which is run daily at midnight 12:00 AM

Cron Job Command

0 	0 	* 	* 	* 	wget http://YOUR DOMAIN NAME/cron/bookingstatus
Booking List

System Admin can view booking details by clicking on EYE icon

Booking Details

Transaction Management

Laravel Boooking System Admin manage all the transactions from here and system admin can do following from transaction list screen.

  • Export Transactions in CSV Format
  • Filter Transactions By User Name, Transaction ID and Transaction Date
  • View Transaction Details
Transaction List
Transaction Details

Live Chat

Live chat with online users. system admin can do following:

  • Online user list
  • Unread message notifications
  • Unread message count
  • Chat History
Live Chat
Chat History

Enquiry Management

System admin will get all the enquiry list here that user made it from contact us form. Admin can manage enquiries from here.

  • Enquiry Status: Pending or Answered
  • Filter Enquiries
  • View Details
  • Delete Enquiry
Enquiry List
Enquiry Details

We are glad to provide quick support for all our products to our valued customers within 24-48 hours (in rare cases within 72 hours) after receiving the request.

We are happy to assist you with any custom development or custom design, whether it is related to our products or not.

You can send your technical description to [email protected] or fill out the Contact Form on our landing page.

We will get back to you as earliest as possible.

Contact Us

Initial Version of laravel booking system is Version 1.0 and we are continuous making changes for improvements and better performance for the system. Here you will come to know what changes we have made in new version as compared to previous version.

Version 1.1

Fixed a bug

  • Admin Section Booking List view details link broken after search which is resolved now
  • Admin Section Transaction List view details link broken after search which is resolved now
www.laravel-booking.com/resources/views/admin/bookingList.blade.php
www.laravel-booking.com/resources/views/admin/transactionList.blade.php
  • User Section Sign Out and Profile link broken from credit purchase page(form) which is resolved now
www.laravel-booking.com/resources/views/frontend/layouts/main.blade.php
  • file is not in used so removed that unnecessary file
www.laravel-booking.com/resources/views/frontend/emails/inquiry.blade.php

Updates

  • Add short video of user section and admin section so it will help to understand system quickly
www.laravel-booking.com/assets/lbs-user.mp4
www.laravel-booking.com/assets/lbs-admin.mp4
  • Admin also receive email notification when new user register to system
  • user can able to reset their password if they forgot their password

Version 1.2

Updates

  • Multi Language Support. Now it will support English and Spanish language. You can set language from General Settings.
Language Folders
-----------
www.laravel-booking.com/resources/lang/en/ (new folder)
www.laravel-booking.com/resources/lang/es/ (new folder)

Admin files and folders
-----------
www.laravel-booking.com/assets/admin/plugins/validation/localization (new folder)
www.laravel-booking.com/assets/admin/js/common.js

www.laravel-booking.com/resources/views/admin/ (folder)
www.laravel-booking.com/app/Http/Controllers/Admin/ (folder)

Frontend files and folders
-----------
www.laravel-booking.com/assets/user/js/fullcalendar/locale (new folder)
www.laravel-booking.com/assets/user/js/fullcalendar/locale-all.js (new file)
www.laravel-booking.com/assets/user/js/validation/localization (new folder)
www.laravel-booking.com/assets/user/js/common.js
www.laravel-booking.com/assets/js/validation/localization (new folder)

www.laravel-booking.com/resources/views/frontend/ (folder)

controllers
-----------
www.laravel-booking.com/app/Http/Controllers/Frontend/PaypalController.php
www.laravel-booking.com/app/Http/Controllers/Frontend/BookingController.php
www.laravel-booking.com/app/Http/Controllers/Frontend/UserController.php
www.laravel-booking.com/app/Http/Controllers/Frontend/LoginController.php
www.laravel-booking.com/app/Http/Controllers/Frontend/ReservationController.php
www.laravel-booking.com/app/Http/Controllers/Frontend/HomeController.php

www.laravel-booking.com/app/Setting.php
www.laravel-booking.com/app/Http/Controllers/Controller.php

DB Changes
-----------
ALTER TABLE `settings` CHANGE `price` `language` VARCHAR(20) NOT NULL DEFAULT 'en';
UPDATE `settings` SET `language` = 'en' WHERE `settings`.`id` = 1;

www.laravel-booking.com/database/migrations/2015_11_18_112049_create_settings_table.php

Version 1.3

Fixed a bug

  • Admin services list duration is not displaying proper and title is not translated in other language
www.laravel-booking.com/app/Http/Controllers/Admin/ServicesController.php
www.laravel-booking.com/resources/views/admin/servicesList.blade.php
  • migration file bug resolved that is wrong type in migration
www.laravel-booking.com/database/migrations/2017_07_27_063612_create_bookings_details_table.php
=> $table->timestamp('start_time')->nullable();
=> $table->timestamp('end_time')->nullable();
  • User side Sign Out button text is not translated in proper language
www.laravel-booking.com/resources/lang/en/user/profile.php
www.laravel-booking.com/resources/lang/es/user/profile.php
www.laravel-booking.com/resources/views/frontend/layouts/main.blade.php
  • Contact Us text change in dashboard
www.laravel-booking.com/resources/views/frontend/dashboard.blade.php
  • input mask error for booking list and transaction list search selectbox so include plugin in main.blade.php
www.laravel-booking.com/resources/views/frontend/layouts/main.blade.php

{{-- InputMask --}}
jquery.inputmask.js
jquery.inputmask.date.extensions.js
jquery.inputmask.extensions.js

www.laravel-booking.com/assets/user/plugins/input-mask (new folder)
  • reservation calendar is displaying services from cache so modify ajax call of getServices and path
www.laravel-booking.com/resources/views/frontend/reservation.blade.php

$.ajax({
    url: '/getServices',
    dataType: 'json',
    cache: false,
    data: {
        // our hypothetical feed requires UNIX timestamps
        //start: start.unix(),
        //end: end.unix()
    },
    success: function (events) {
        callback(events);
    }
});
  • update include syntax in main.blade.php "{{ }}" to "{!! !!}}" and remove jquery-ui.css
www.laravel-booking.com/resources/views/frontend/layouts/main.blade.php

Updates

  • Update Laravel 5.3 to Laravel 5.5(LTS)
  • Add Laravel Passport package for API and will be used in future version

Version 2.0

Fixed a bug

  • After deleting the booking / transaction in admin, row does not remove because page is not reloading
www.laravel-booking.com/resources/views/admin/bookingList.blade.php
www.laravel-booking.com/resources/views/admin/transactionList.blade.php
  • Booking list and transaction list search select box language translation issue
www.laravel-booking.com/resources/lang/es/admin/booking.php
www.laravel-booking.com/resources/lang/en/admin/booking.php
www.laravel-booking.com/resources/lang/es/admin/transaction.php
www.laravel-booking.com/resources/lang/en/admin/transaction.php
www.laravel-booking.com/app/Http/Controllers/Admin/BookingController.php
  • Service description field set default to null in database services table. For that run below SQL Query in your Database
DB Changes
-----------
ALTER TABLE `services` CHANGE `description` `description` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL;

www.laravel-booking.com/database/migration/2017_07_13_065710_create_services_table.php
  • Weekly Services not visible for Sunday on calendar. That will be resolved by updateing below file
www.laravel-booking.com/app/Http/Controllers/Frontend/ReservationController.php [line no.80]

Updates

  • Update Laravel 5.5 to Laravel 5.8
  • Secure ADMIN URL You can set your own admin url by editing below file
defined('ADMIN_SLUG') or define('ADMIN_SLUG', 'admin'); //you can change 'admin' to [WHATEVER YOU WISH] but it must be only single word without space 

www.laravel-booking.com/routes/web.php