Inspiration
gitpizza was inspired by a late night development push and a bout of hunger. What if you could order a pizza without having to leave the comfort of your terminal?
What it does
gitpizza is a CLI based on git which allows you to create a number of pizzas (branches), add toppings (files), configure your address and delivery info, and push your order straight to Pizza Hut.
How I built it
Python is bread and butter of gitpizza, parsing the provided arguments and using selenium to automatically navigate through the Pizza Hut website.
Challenges I ran into
Pizza Hut's website is mostly created with angular, meaning selenium would retrieve a barebones HTML page and it would later be dynamically populated with JavaScript. But selenium didn't see these changes, so finding elements by ids and such was impossible. That, along with the generic names and lack of ids in general on the website meant that my only solution was the physically move the mouse and click on pixel-perfect positions to add toppings and place the user's order.
Accomplishments that I'm proud of
Just the amount of commands that gitpizza supports. gitpizza init
to start a new order, gitpizza checkout -b new-pizza
to create a second pizza, gitpizza add --left pepperoni
to add pepperoni to only the left half of your pizza, and gitpizza diff
to see the differences between each side of your pizza. Visit the repository for the full list of commands
Log in or sign up for Devpost to join the conversation.