Fetch was inspired by those crazy nights, stumbling home in need of food. Food apps have proved a bit too complicated to navigate when you've had too wild of a night, but with Fetch all a customer needs to do is send a message and Fetch will retrieve your food like a loyal hound retrieves the paper.
What it does
Fetch scours the internet and sifts through local restaurant data looking for food vendors nearby. Once it finds the perfect fit for your needs, it can have almost anything delivered right to your door!
How I built it
The app takes advantage of Watson's Dialog and Classifier service, and I wrote my own python script in order to determine what food or restaurant the user was looking for using a complex mix of statistics. Once Fetch knows what you are looking for it uses the Yelp API to get a list of restaurants in the area. It then finds a corresponding menu using Foursquare and Locu, and after checkout the order goes to Postmates to have it delivered to your door.
Challenges I ran into
Going into this project, I really wanted the app to understand you no matter how you phrased or spelled things. For example, I wanted it to understand something crazy as "cn u get meh some pizza.” I’m proud to say that after a lot of hard work, it does! This would be easy if I had a set of keywords like "pizza, Chinese, etc...", but I wanted Fetch to be much more flexible than that. I wanted Fetch to be able to understand any food that I didn't know about and even multi word restaurants, like "Pizza Hut". This required much more work. Fetch looks at the sentence as a whole to determine what you are looking for.
Accomplishments that I'm proud of
I'm really proud of the sentence processing script that I single-handedly wrote. I’m surprised that it does a very good job of figuring out what you are saying and looking for. I'm genuinely surprised I got it to function at the level it did.
What I learned
This is only my second time using Python and my first time using Node.js. Because of that, I have learned so many things about these languages. I also learned that it takes quite a long time to actually deliver a fully polished app. Which this app is very far from.
What's next for Fetch
- Clean up the code base
- Have the client much less involved in the actual processing
- Make the dialog more natural and fluid
- Keep a profile so it really understands what you are in the mood for
- Many many more features
- Adjust site to be mobile friendly
- Android app
- iOS app