Due to both my Sister and Mother owning Amazon Echos, I have had the wonderful opportunity to be exposed to them. In both of the households I know of that have them, Alexa is placed in a central location to the kitchen. I don't believe this a trend amongst just my family, as it would seem natural to interact with Alexa most often there. Many hours are spent making meals, consuming meals, and all in all just being in the kitchen on a weekly basis.
What I've come to realize is that although Alexa can perform amazing tasks, she seems to lack a fundamental way of communicating recipes to a user. Another skill that was advertised at the time of its release called "Campbell's Kitchen" attempts to perform a subset of cooking information, however it appears to have been done in a poor way. The overall rating of the app is 2.5/5 stars with 12 reviews. The first three comments are as follows:
Great way to get dinner ideas "This is very much like having a small cookbook that talks to you at your disposal... I find it comes in handy if you want to think about what to pick up at the store or if you're planning your meals for the week. Very handy in my opinion."
So much potential so little now "I want to be able to ask for a specific recipe not just have random recipes suggested. And then I want the recipe spoken not emailed."
Has the potential to be Great "I'm really looking for Alexa, to be able to give me meal suggestions verbally, be interactive if I want further information regarding the suggestions..."
Those comments alone summarize how customers feel about the skill, and what they feel it still lacks. Where this app has weaknesses, I aimed to have strengths.
What it does
The key concept of this hack is the ability it provides its users in the kitchen space. The skill is simply invoked by saying "Alexa, ask Cook mATE to find me a Chocolate Chip Cookie recipe."
It then queries Allrecipes.com to find the top three most popular recipes, and report back on them. Then the user picks the recipe, and the next step is for Alexa to read out the ingredients one by one at the command of the user. Advancing to the next ingredient or direction is as easy as saying, "Alexa, ask Cook mATE what's next." Its been designed to be a very elegant and useful hack for the average user, and not necessarily the hacker (even though I will be using this quite often).
How it works
*Have the user fire up Cook mATE and request a meal or food dish to prepare
*Dynamically scrape data from Allrecipes.com and report that back for the types of recipes requested
*Have the user pick a recipe and store it in a database so we have some persistent data to work with across sessions
*Let the user take the reins and have Alexa read out the ingredients and directions for the recipe
Challenges I ran into
The fact that Amazon Echo skills are usually lambda functions which are almost anonymous and quite nearly non-existent most of the time, threw me off at first. Once adjusting to the lambda platform and getting a few of the nuances of the environment out of the way, it became easier to focus on the actual development. However, part way through the hack once I realized my usual persistent data tricks weren't going to work (simple SQLite DB in a file) because of the lambda environment, I became tripped up again. Utilizing the documentation and a little help from the wonderful Amazon Echo/Alexa team got me back on my feet and on my way to finishing it off.
Accomplishments that I'm proud of
This will be the most flushed out hack I've worked on, and I did it solo (for better or for worse). The satisfaction of having a working product in front of you after one weekend is a great
What's next for Cook mATE
Much more user integration is to come, allowing many more options to be specified, including more information of each recipe. More websites will be added as well to allow an even larger database to be collected from. Feature requests are also welcome at this time. I hope to have this project follow a similar path that Amazon Echo itself follows, where it starts out small with a few core functions, and then continues to grow from there.