Pizza Buddy: Your Personal Pizza Ordering Assistant
Inspiration
The idea for Pizza Buddy came from our own experiences of ordering food online. We often found ourselves scrolling through endless menus, trying to decide what to order, only to end up overwhelmed by choices. What if there was a way to simplify this process? What if you could just chat with someone (or something) about what you or the rest of your party are craving, and they would take care of the rest? That’s when we thought of creating an extension that acts as your personal pizza assistant—streamlining the ordering process by understanding your preferences through natural conversation.
We wanted to make ordering pizza as easy as chatting with a friend. With the rise of conversational AI, we saw an opportunity to leverage LLMs like ChatGPT to create a seamless user experience. Thus, Pizza Buddy was born.
What it does
Pizza Buddy is a browser extension that allows users to chat with a bot to place their pizza orders. Here's how it works:
Conversation-based Ordering: Users can simply start a conversation with the bot, describing what they want in their pizza (e.g., "I want a large pepperoni pizza with extra cheese").
Cart Filling: Based on the conversation, the bot automatically fills the user's cart with the appropriate items from the pizza restaurant's menu.
Confirmation: Once the cart is filled, the user is then able to purchase the items in the cart, or remove them to try again.
How we built it
Building Pizza Buddy was a multi-step process that involved several technologies and frameworks:
Frontend: We used Javascript and HTML to build the user interface for the browser extension. The chat interface was designed to be intuitive and responsive, ensuring a smooth user experience.
Backend: The backend was built using FastAPI. This handled the logic for processing user input, interacting with APIs, and managing the state of the conversation.
Autoclicking Scripts: We developed scripts that allowed us to navigate Domino's webpage in order to automatically add the items the LLM selected to the cart
Database: We used a locally hosted database that allowed us to store memories that the LLM can refer back and write to in order to make decisions on what to order and store those decisions for the future.
Challenges we ran into
Building Pizza Buddy was not without its challenges:
Understanding Ambiguous Input: One of the biggest challenges was handling ambiguous or incomplete user input. For example, if a user says, "I want a medium pizza," but doesn't specify toppings, we had to design the bot to ask follow-up questions to clarify their order.
API Limitations: Some pizza delivery services had limited or poorly documented APIs, which made it difficult to integrate certain features. We had to work around these limitations by building automated scripts that added items to the cart for us.
Error Handling: Handling errors gracefully was another challenge. If the bot misunderstood a user's request or if there was an issue with the API, we needed to provide clear feedback to the user and allow them to correct their order.
Accomplishments that we're proud of
Despite the challenges, we’re incredibly proud of what we’ve accomplished with Pizza Buddy:
Seamless User Experience: We managed to create a conversational interface that feels natural and intuitive. Users can place orders without ever leaving the chat window.
Personalization: By storing user preferences and past orders, we were able to offer personalized recommendations, making the ordering process even faster for returning users.
Scalability: The architecture we built is scalable, meaning we can easily add support for more restaurants or cuisines in the future.
What we learned
Building Pizza Buddy taught us a lot about both technical and non-technical aspects of software development:
Implementing Memory for LLM APIs: Working through this project taught us valuable skills in this more niche area of AI. By implementing mechanisms for AI models to remember certain things, the applications can become endless for many future projects down the line.
User-Centric Design: We learned that the key to a successful product is focusing on the user experience. Every feature we added was driven by the goal of making the process easier and more enjoyable for the user.
Error Handling: We realized that robust error handling is crucial for maintaining user trust. Even if something goes wrong, the user should always feel in control and informed.
What's next for Pizza Buddy
We have big plans for Pizza Buddy moving forward:
Expand Cuisine Options: While we started with Dominos pizza restaurants, this project will be expand to be able to provide similar service to other restaurants, Amazon shopping, Walmart, and more.
Voice Integration: We’re exploring the possibility of adding voice commands, allowing users to place orders hands-free.
Multi-language Support: To reach a broader audience, we plan to add support for multiple languages, making the bot accessible to non-English speakers.
AI Enhancements: We want to continue improving the bot’s AI capabilities, making it smarter and more context-aware. This includes better handling of complex orders and more accurate predictions of user preferences.
Mobile App: In addition to the browser extension, we’re considering developing a standalone mobile app for Pizza Buddy, offering even more convenience for users on the go.
Built With
- chatgpt
- css
- fastapi
- javascript
- openai
- python
- tailwind
Log in or sign up for Devpost to join the conversation.