WaiterBell is an application that helps your customers call the employees of your business easily without having to stand up, shout or move their hands in an abnormal way. Customers are not referees!
The customer scans the QR code that belongs to his table (label) and he gets redirected to a web page where there is a list of possible requests. He selects one request and instantly the business and all the employees that are connected to this label are getting notified via web push notifications.
First things first, you have to create a database and update the .env file with the correct credentials.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
Update and all other necessary variables in .env file (APP_KEY, ...)!
Install the required packages.
composer install
Generate database tables and relations.
php artisan migrate
You have to create a Google Firebase app, that's how the application will send web push notifications. Now you have to update the .env file with the correct Firebase key.
FIREBASE_KEY=
Now, edit the "public/vendor/web-push/firebase-script.js" file and update with the correct credentials the javascript object below.
var firebaseConfig = {
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: "",
measurementId: ""
};
In the same folder you have to update the "public/vendor/web-push/manifest.json" file with the correct credentials.
{
"name": "",
"gcm_sender_id": ""
}
The last update you have to do to make web push notifications work, is in the "public/firebase-messaging-sw.js" file. This file is the service worker that firebase needs.
var firebaseConfig = {
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: "",
measurementId: ""
};
As you will see in the .env file, there is an option
MASTER_ACCESS=1
MASTER_SECURITY_KEY=098f6bcd4621d373cade4e832627b4f6
The "MASTER_ACCESS=1" allows the user to CREATE or DELETE a business. WaiterBell supports multiple business accounts out of the box, so you don't have to host multiple laravel apps.
The "MASTER_SECURITY_KEY={string}" is the md5 hashed password that gives access to the Master Controller which contains the methods for creating or deleting businesses. ("098f6bcd4621d373cade4e832627b4f6" equals to "test")
your-domain.com/master/create_business?securiy_key={MASTER_SECURITY_KEY}&business_username={username}&business_password={password}
{MASTER_SECURITY_KEY} is the unhashed MASTER_SECURITY_KEY key (for example "098f6bcd4621d373cade4e832627b4f6" equals to "test").
{username} is the username which will use the business to login to the platform.
{password} is the password (plan-text) which will use the business to login to the platform.
your-domain.com/master/delete_business?securiy_key={MASTER_SECURITY_KEY}&business_id={id}
{MASTER_SECURITY_KEY} is the unhashed MASTER_SECURITY_KEY key (for example "098f6bcd4621d373cade4e832627b4f6" equals to "test").
{id} is a unique id which will be given to your account automatically and you can get it by visiting the homepage.
You can create a md5 hashed string using the link below:
your-domain.com/master/md5?value={string}
After you have finished creating or deleting business accounts, edit the .env file and set
MASTER_ACCESS=0
To access business app you have to visit the link below:
your-domain.com/business/login
Now you have to insert the login credentials and you will be redirected to the homepage of the administration panel.
Homepage shows some usefull information about the business account. If you have successfully setted up Web Push Notifications and your browser supports it, you can click on the "Subscribe device" button.
From now on, you will receive a push notification for every request a customer makes.
Let's take a mouse (...walk) in the administration panel.
You can create, edit, delete employees. The password (PIN) of an employee is not being saved as a hash string, it is being saved as plain-text.
You can create, edit, delete labels. Labels are the seats, tables etc... You can restrict access to the labels by defining the allowed IP addresses in each label or globally from the settings (continue to the settings).
When you connect a label to an employee, each time a customer submits a request, all the connected employees that have subscribed to Push Notifications will get notified.
There are 182 available languages to add for your customers! The languages you add, are only for the customers part. If you want to translate WaiterBell's business' and employee's panel, use the default Laravel Localization system.
There are some necessary phrases that need to be translated to the languages you have added!
These are the available requests a customer can make via the web app. All the requests need to be translated to the languages you have added previously.
If you have subscribed to push notifications and you have the admin panel opened, you will get notified with a toast.
You can check and search through all notifications by using the search form. This is how the list is going to look like.
You can update business information.
But the most important part is the global firewall for the customers web app. You can add specific IP addresses (e.g. IP address of your business), so users outside your network will not be able to make requests and they will be redirected to 404!
To access employee app you have to visit the link below:
your-domain.com/employee/login
Now you have to insert the login credentials (Business ID, Employee ID, Password (pin)) and you will be redirected to the homepage of the administration panel.
A customer can access a label using the following links
your-domain.com/{label_id}
your-domain.com/customer/home?label_id={label_id}
This project is licensed under the MIT License