Inspiration

I don't have a significant other to put a stop to my bad eating habits.
What's missing is a "companion" to help me brainstorm: am I going out or am I going to cook? I got tired of going to gas stations to pick up chips for "dinner". Hence, Epic Bite was born.

What it does

The Skill's purpose serves one mission. It's going to help you decide what to eat.

If you live in the city, the Skill may help you discover that hidden restaurant that serves the best tacos. An "exploratory" voice assistant to help users discover pockets of various dining experiences.

But there are times when you may want to cook. Ask the Skill for a random recipe, maybe you feel adventurous on a Saturday night (willing to make a mess in your kitchen). Or ask the Skill for recipes maybe based on your favorite food. Think of your favorite food ingredient...broccoli, lobster, or chocolate.

The Skill assists the user by opening up a path. That path is to cook or to go out to dine.

How I built it

Food recipes data provided by spoonacular.com, while place of business (restaurants) data is brought to you by Google Places API. The main language that was used is Javascript on NodeJS (hosted on Amazon's Lambda infrastructure). The Skill makes the remote service calls for recipes and restaurants contained inside Lambda.

Challenges I ran into

I had to be creative since I didn't want the Skill to always suggest the same recipes or restaurants. It could get boring real quick. How I got around it involved caching just the keys of the data I wanted. The key contains a value, the value is the data payload (location of restaurant, details of a recipe, etc). The data payload can be huge. So I store the keys in a hash, perform a "randomize" computation to mix and shuffle the keys. And finally, remove them as the user requests for the next data (i.e. recipes) to "empty the bucket".

There's some technical constraint(s) on the Alexa side, but it's bound to be addressed. Until then, users must manually type in a potentially long URL to get the full details of that delicious recipe.

Accomplishments that I'm proud of

Surprised how well the implemented search results turned out (i.e. list of recipes and restaurants). It's very much like watching commercials on a television since the user is mostly in consumption mode. But unlike commercials, I can be "screen-free" and ponder something for couple seconds and actually respond back. Commercials that you can talk to is going to be huge.

What I learned

Designing a voice assistant is hard work up front, since grammar, choice of words, and presentation of how things are said are so critical.

What's next for Epic Bite

Absolutely nothing. Maybe small bug fixes.

Built With

Share this project:
×

Updates