We aimed to expedite ordering food/shopping to save time. Also, we wanted to be able to pay bills remotely so that the user could walk out whenever they want without worrying about forgetting to pay the check.
What it does
This version of the code opens a graphical interface on the "customer" raspberry pi. Here the customer can enter their secure account number and choose what they want to order. The "business" raspberry pi keeps track of purchases and send a descriptive bill when the user wants to leave. The interaction of important information is encrypted/decrypted by ElGamal protocol for safety.
How we built it
We used two raspberry pis that communicate using sockets to transfer data. If the data should be secret, it is encrypted and decrypted when it arrives at the other pi. The customer interfaces was created using tkinter.
Challenges we ran into
We ran into some problems with the speed of the encryption and decryption. We originally had the entire name of the food and price being sent to the business from the customer. After we saw how long the process took, we changed the data being sent to a single letter. This excludes the account number.
Accomplishments that we're proud of
The Discrete Math/CS majors and two CPE majors work almost completely separately for most of the project since we each had very specific skill sets. We were able to communicate effectively and had almost no issues when merging our work.
What we learned
We all got more experience programming in Python. When we were deciding which language to use, we all had different levels of skills in varying languages. Python was the only one we had all had some experience in so we could compromise with Python. We also got some experience seeing how long certain public key encryption can take for larger messages.
What's next for secureOrder
We have set the code up to be able to start threading the customers so the business can handle more than one. Also we want to improve our computational time. We would also like to consider using mobile apps for the customer to connect with.