The following systems must be ran in a linux based environment (in our case: ubuntu) in order to run the entirety of the project.
However, all other scripts (except server.py) can be ran in a windows environment.
The following pre-requisites are presumed to be pre-installed in your testing environment.
libdwkivynumpy
opencv-python: Image processing librarycython:Cythonlibrarytwilio:Twiliolibrary for messaging serviceyolo34py: Image - Object detection library for detection service
-
To install the libraries in this section, go into terminal/cmd prompt and navigate to the directory:
~/EzQ/EzQ. -
You should see our project files:
cashier.py,cashier.kv,chefgui.py,chefgui.kv,credentials.txt,customer.py,customer.kv,ezq.py,firebase.py,messenger.py,server.py,twilio_credentials.txt,- Folders:
Legacy: This folder contains all our legacy code, which are our developmental code.YOLO3-4-Py: Image-Object detection library.
-
Type the following to install
opencv-python,cythonandtwilio.pip3 install -r requirements.txtThis line installs the above mentioned libraries (specified in
requirements.txt) into the python libraries. -
You can skip this step, if you do not want to run
server.py.To install
Yolo34py, navigate to the folderYOLO3-4-Pyby typing the following. This assumes that you are currently in the directory:~/EzQ/EzQcd YOLO3-4-Py/Next, run the following:
pip3 install .Ensure no errors occur. If there are errors: troubleshoot here.
-
Great! Now, you are all setup to run our scripts!
This section will introduce in greater detail about our scripts as well as the running order.
-
ezq.py: Script takes an image from a web-cam and uploads it tofirebase.Important
Since the web-cam is not passed over, we offered a testing method that can be passed to the script as a form of testing for
server.pyTo run this testing method:
(assuming in
/EzQ/EzQ/directory)python3 ezq.py --testThis testing method sends over a test image (within the directory) over to
firebase, which the scriptserver.pycan be ran to run the detection model on the test image. -
messenger.py: Script is ran in the background to provide messaging serviceRun it with
python3 messenger.py -
The following scripts must be ran separately but within the same step, before any inputs can be made (since they are
gui-s). In short, they must be running prior to any inputs made. -
-
Customer.py:Front-end GUIfor Customers to input their hand-phone numberpython3 Customer.py -
PIR new.py:PIR Sensor codeto simulate power-saving featurepython3 "PIR new.py" -
cashier.py:Cashier side GUIfor Cashier to submit orders and tag it with phone number inputs fromcustomer.pypython3 cashier.py -
chefgui.py:Chef side GUIfor chef to update completed orders, which triggersmessenger.pyto prompt relevant customers throughWhatsapp.python3 chefgui.py -
server.py:Cloud based or Local Computer based Backendfor running of the detection module to identify number of people in queue.python3 server.py
-
This section will provide the instructions to set up your Whatsapp enabled device to access our services.
Note for future versions These set up steps are required for the trial version of twilio. If this project recieves additional funding these steps will not be required.
-
Add
+14155238886as a contactYou may want to save this contact as
Twilio Sandbox. This is the contact where you can get the number of people in the queue You will be informed via this number when your food is completed -
Open
WhatsApp -
Type
join gasoline-eggand sendThis allows you to join the sandbox and receive messages from our free number
-
Type any message, for example
helloand send itWhatsapprequires approval before sending messages that are unformatted.This approval is given the moment a message is sent to the
TwilioAPI -
Your number is now properly set up.
-
To obtain the number of people in the queue, type
?and send it toTwilio SandboxTwilio Sandbox will reply you with the number of people in the queue