I personally am big basketball fan - especially of our local club playing in the German Prime Division (the Basketball Bundesliga). As Alexa only knows football (or soccer ;)) in Germany I had to help her to get to know basketball a little better.
What it does
- You can ask the skill how the last game of club X has been,
- when this club plays its next game and who the next contender is. Also when the next game will be transmitted in FreeTV.
- You can ask how the last games between club X and club Y ended.
- You can get live scores.
- You can ask how the games of the last game day ended.
- It can be asked about the current table, who is first, last, 6th, etc...
- You can ask where in the table Club X is standing.
- You get to know what clubs will be playing the playoffs or which ones will be relegating.
- You can ask what new features the skill has learned since it has last been updated.
How I built it
I used Java8 to build the skill. I have several APIs for the last/current/next games, the table, the tv schedules, etc. Therefore I must use PLIST, generic XML and JSON parsers.
For building it I chose Maven: It is a multi-module project containing: :_ the DataProvider Module _ which cares about parsing all the data and wrapping it in neat and tidy data structures, _ the Alexa-Skill Module _ for the ASK-skill itself and _ the RSS-Feed Module _ for a separate FlashBriefing-Skill (which runs on AWS BeanStalk).
It uses DynamoDB to store the last version the user used to inform what changes possible updates might have brought. It is deployed using AWS Lambda Java8.
Challenges I ran into
At the beginning I started with the Java Alexa SDK and templates to get a feeling for the VUI.
The the first difficulty was to get logs for my lambda function. After a lot of trial-and-error I figured out, that some permissions had to be granted for the lambda function to be able to write logs to Cloudwatch.
The next big challenge was to get DynamoDB connected to my skill, because the Alexa Java SDK ist not as actively updated as e.g. the NodeJS SDK. So I had to improvise and adjust to the new DynamoDB API.
Finally it was a challenge to get the skill certified: It took 3 tries to finally get it into the store. The main aspect was the IP rights. I had to discuss with easyCredit BBL officials to be able to use the trademarks and logos.
Accomplishments that I'm proud of
All the AWS stuff: Lambda, Roles, Permissions, CloudWatch. Configuration was not easy and a lot of trial and error. But I learned a lot about the different aspects of what AWS can offer.
Developing a (for my feelings) pleasant VUI. You really gotta develop for the ear here!
The easyCredit BBL supported me in giving me access to APIs and Logos. They liked my idea and the skill so much, that they now promote my skill as the official easyCredit BBL skill.
What I learned
A lot about VUI: You completely have to change how you interact with the user. You have to differentiate between what Alexa says and how you visually present it to the user using cards. An awesome lot about CloudComputing/ServerlessComputing and AWS in general.
What's next for easyCredit BBL
I want to integrate player statistics. This is a big field and a lot of work to do... Especially minding the only interface being voice!