Inspiration

Horse racing is a thrilling and immersive sport -- and it's made even more exciting with the addition of a clever wager or two.

What it does

With Be My Bookie, Amazon Alexa will give you up-to-date horse racing info and allow you to directly place wagers (in Ether!) on your favorite horses. Drawing on real horse racing data, it dynamically updates and allows you to get updated information on the go.

How we built it

The backend is in Ruby and Sinatra and draws on tables of real historic horse racing data to give accurate odds for each race, timed just like live horseracing. The front-end is in Python and makes use of AWS lambda functions to interact directly with Alexa and have her respond to verbal cues.

Challenges we ran into

Timestamps were, as always, a unique challenge. Having Alexa account for the dynamically updating tables also took some careful consideration, as well as working in a confirmation dialogue -- so that Alexa verifies your bet before committing it to the system.

Accomplishments that we're proud of

None of the members of the team had worked with Alexa or Smart Skills before -- we were inspired by the presentations at the booths here and made a quick pivot in our plan to incorporate using Alexa. Much more engaging than a traditional UI!

What we learned

Breaking up tasks is critical -- and having a strongly integrated environment from the getgo helps gets things off the ground. Pari-mutuel wagering is a tremendously complicated system all on its own

Instructions

"Be My Bookie" is a way to bet on horse racing, hands-free and on the go! Try it out for yourself! You will need to implement an Alexa Skill on your Amazon developer account so that you can use Alexa from your Amazon Echo/Alexa Reverb app. Head into our git repo at https://github.com/horsethereum/ui to have access to what you need, then follow the instructions here: https://developer.amazon.com/alexa-skills-kit/alexa-skill-quick-start-tutorial, but replace the alexa-skills-kit-color-expert-python example with our horsebetmanager.py, then copy the ARN that is generated to associate with your built skill. When you add a new skill, call it "Horse Bet Manager" -- and make your invocation "Be my bookie." Add the intents.json file from our repo directly into the code tab when building the interaction model.

Once you have made your skill and have verified that it is running smoothly, you can explore "Be My Bookie." Alexa opens with a welcome message. Ask her, "When is the next race?" When she responds, follow up with "What are the horses running?" Listen carefully to the horses and the odds, and select your favorite runner. Tell Alexa "I'm feeling lucky today!" She will prompt you to make a bet. Say "Put amount ether on horse number in race number". Alexa will confirm that you want to blow this much cash on a wager (don't worry -- we are not on the ethereum network yet, so all this money is hypothetical! Spend as much as you'd like and keep the farm too). Now, confirm it!

Did you listen to the time of the race? Once the race time is over, open up Be my Bookie and ask Alexa, "What are the results of race number?" She will recite them to you. Don't remember your horse's info? Ask Alexa "Am I rolling on gold?" to find out what kind of profits (or lack thereof) you've added to your account.

The race card changes every day -- come back tomorrow for a chance to win all that precious Ether back! Thanks for playing with Alexa's "Be My Bookie" -- making the world a bettor place.

What's next for Horsethereum

We plan to move forward to launching this application on the Ethereum blockchain, making use of the trustless network to allow people to make real wagers in Ether and play against the "house" for a truly immersive wagering experience!

Share this project:

Updates