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.
libdw
kivy
numpy
opencv-python
: Image processing librarycython
:Cython
librarytwilio
:Twilio
library 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
,cython
andtwilio
.pip3 install -r requirements.txt
This 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-Py
by typing the following. This assumes that you are currently in the directory:~/EzQ/EzQ
cd 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.py
To run this testing method:
(assuming in
/EzQ/EzQ/
directory)python3 ezq.py --test
This testing method sends over a test image (within the directory) over to
firebase
, which the scriptserver.py
can 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 GUI
for Customers to input their hand-phone numberpython3 Customer.py
-
PIR new.py
:PIR Sensor code
to simulate power-saving featurepython3 "PIR new.py"
-
cashier.py
:Cashier side GUI
for Cashier to submit orders and tag it with phone number inputs fromcustomer.py
python3 cashier.py
-
chefgui.py
:Chef side GUI
for chef to update completed orders, which triggersmessenger.py
to prompt relevant customers throughWhatsapp
.python3 chefgui.py
-
server.py
:Cloud based or Local Computer based Backend
for 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
+14155238886
as 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-egg
and sendThis allows you to join the sandbox and receive messages from our free number
-
Type any message, for example
hello
and send itWhatsapp
requires approval before sending messages that are unformatted.This approval is given the moment a message is sent to the
Twilio
API -
Your number is now properly set up.
-
To obtain the number of people in the queue, type
?
and send it toTwilio Sandbox
Twilio Sandbox will reply you with the number of people in the queue