Repository for CCOS
The system provides a method of ordering in a restaurant, where the client goes to the cashier and he orders his food. The cashier selects the food ordered by the customer and when the cashier selects that the order was paid, the order is sent to the chef. The chef will have a PC displaying a queue of the orders. The chef will then be able to click/touch on any order number, see its content and selects it as complete, in which case, the order will disappear from the queue.
-Python 3
-EasyTkinter 1.1.0
-PyInstaller 3.6
-XlsxWriter 1.2.8
-future 0.18.2
-openyxl 3.0.3
-threadsafe-tkinter 1.0.2
The following software is needed to install and run the system:
-Python 2.7 or higher
The following hardware is needed to install and run the system:
-Two PCs running in a same network
For installing the system just download the files and make sure that the two computer that are running the system are on the same network.
Before turning the system on the PCs, we need to make sure that the PCs are connected in the same network and that sockets can communicate.
First, on the chef PC, go to the chef.py program and change the IP to the IP of the chef computer. Then, on the cashier PC, go to client.py and change the IP to the IP of the chef computer.
Now, go to the file explorer on both PC and click on network on the left sidebar. The computers of the system needs to appear on the window, showing they are in the same network.
After that, open the command window and type the following:
On cashier: ping Chef PC IP address - It needs to show a connection was made successfully
On chef: ping Cashier PC IP address - It need to show a connection was made successfully
Then, open Windows Defender Firewall Advanced Security. On the left panel of the window, click on Inbound rules. Create a new rule by clicking on New Rule on the right panel of the window. Click on port on the new window that pops up. Select TCP rule and type in the specific port you are going to use to connect between the PCs (You can select the port by going to the chef.py and server.py files and change it, it needs to be >1024). Click on next until a Name text box appears and put any desired name for the rule. Then click finished. Do this firewall step for both PCs. You can now run the system.
To run the system, the chef.py must be ran first, as it is the server for the sockets, then cashier needs to be run to connect to the server.
Go to the project folder. First run the chef, as it is going to be the socket server, and after that run the cashier, which is the client socket.
This started as a personal project to provide a system for a Mexican taqueria. We got contacted by the owner of a Mexican restaurant, asking us for a system that would optimize his restaurant's ordering procedure.The main problem with his process was that taking the order, sending the order to the cook, and delivering the food were done manually. Consequently, making the ordering and delivery process slower.
In response to these issues, we created the "Cashier-Chef Ordering System" for the restaurant. The system optimizes the process by providing an interface for the cashier and the cook, allowing them to keep comunication, receive orders faster, and complete them quicker. This can result in sales increases for the restaurant. This system also create an excel file that stores the total sales and earning making the cashier life easier.
The system gets the order form the cashier and sends it to the chef. The chef then obtains the order and it is added to a list. The chef sees his specific interface on a PC, which contains a list of the orders on the left side, and on the right side the content of the order he clicks. Every order that is completed on the day, every day, gets stored in an excel file. Each excel file has the orders of the days and its title is the date the orders were taken. The files also cointains the total orders and sales of each day. All the files are stored in a folder called "Sales" that is created inside the project folder.
-Items can be selected from the menu by clicking on the buttons on its interface.
-Text boxes to choose total cost for certain special items.
-Select if the order is to go by clicking on a checkbox.
-See the total cost of the order on its interface. The button "Total" needs to be clicked before sending the order.
-Interface will reset automatically after sending the order to the chef.
-The order individual items and cost will be displayed when selected on the cashiers interface.
-The order can be cancelled at any time before sending it to the chef.
-Send a note to the chef along with the order.
-Scrollbars for the item list, when the list is to large.
-Buttons and special boxes are disabled when clicked on view total.
-See a list of uncompleted orders.
-Ability to toggle thru the orders to see its content, by clicking on the order number.
-Select an order as completed, which would eliminate it from the list.
-Scrollbar created when the list of items is too big to see in the window.
-A inventory folder is created inside the project folder, if it is not already created.
-An excel file is generated per day, in which every order is stored, along with the total orders per day and total sales.
Demo Link: https://www.youtube.com/watch?v=dYPcA2sr3Pc
This system can be used in any restaurant where the order is taken by a cashier. This particular code was made with a menu for a Mexican restaurant, but it can easily be modified to fit the menu of any restaurant.
For any questions, do not hesistate to contact the authors.
In the future, we will connect the system to a ticket machine and print a ticket for the client. This will happen when the system is implemented on a restaurant.
Alejandro Ibarra Polanco - alejandro.ibarra.p@gmail.com
Hugo Ocon - oconhugo14@gmail.com
Complete