Inspiration

As a freshman in high school, it almost always gets overwhelming managing time with multitude quizzes and tests. While we use Alexa almost every day to

  • get weather report,
  • add reminders and
  • adding to our family shopping list

I have never actually used Alexa for my studies. My motivation to build this skill was to make studying delightful and fun.

I have been interested in how the brain works. My interest began when I took a cognitive science course over the summer. This year, I also focused on Psychology and Biology.

I decided to use Alexa to prepare for one of my interest in Brain Bee. I didn't find an existing skill that helps prepare for the Brain Bee Challenge, so I decided to build one. The purpose of this skill was to find a convenient way to prepare and making a student more productive in their preparation. I integrated a Quizlet set, into Alexa.

Purpose of the skill

  • Prepare for Brain Bee
  • Quiz on brain bee curriculum questions
  • Randomize the questions to keep the user guessing
  • Keep a score on how the user did that day

The convenience of being able to use Alexa, integrated with Quizlet gives me another medium to practice with anytime.

What it does

User will invoke the game by saying "Alexa, start Brain Bee Challenge"

  • After Alexa skill is invoked, Alexa will pick up random questions from the question bank
  • Lambda function will be responsible for maintaining the quiz question bank
  • Scoring will be done based on how many answers were correct per game
  • Questions will not be asked in any specific order.

How I built it

This is my first Alexa skill, so I tried to find something that is already available.

  • I used the trivia skill sample project as my guideline. ( See Reference)
  • I built my Brain Bee Questions from Quizlet Neuro Brain Bee Questions.
  • For every question, I decided there will be three answer choices for each question, only one being correct. Example: true/false/I am not sure
  • I exported the data from my quizlet into a JSON format and then formatted into Trivia friendly JSON/JS question answer format, with the first option being the right answer.
  • I built a function will randomly pick 5 questions from the list of questions.
  • Another function will shuffle the answer choices.
  • Internally the data set will always have the 1st data as the correct answer
  • The application will maintain a score for the game as a session data for the entire game session.
  • Alexa will announce the total score at the end of the game

Technology Used

  • The brain-bee-challenge game code is built as an AWS Lambda function, code is developed in NodeJS.
  • The skill is hosted in the Alexa skill in a JSON format with the intents, slots, utterances and endpoint that ties back to the lambda function.

Design Diagram

Testing ( I asked my sister and my parents to test the skill )

  • Testing the alexa skill through Alexa Skill Test Console, echosim.io and Alexa Echo.
  • The focus was to make sure testing questions are random, answers are not easily predictable.
  • Alexa is able to keep the right score.
  • Added additional intents and changed the skill name to make it work well with Alexa's understanding.
  • My sister wants me to add some fun music when you get the answer right or wrong.

Challenges I ran into

  • Brainstorming a wide range of ideas in different tracks with my friends and family, and finally deciding on my passion area. I did a lot of research before I finalized my idea.
  • I wanted to make it original and a life hack for me and my friends (something easy to use in our high school neurology club).
  • Defining and limiting the scope of what I wanted to build as my first working version. Taking input and feedback when scoping.
  • Figuring out where I can find data for the questions, what format to use to make it simple for me to work with. I used JSON format.
  • Trying to build the first Alexa skill took me 4-5 times redoing it, it was all so new for me.
  • Testing and making the skill work everytime I made a change
  • My skill kept getting lost at times and I was unable to invoke it, found out there is an issue with the Alexa test page - Link
  • Every time I changed/updated the Alexa skill console (invocation, intents, endpoint, etc), I had to save and build the model. However when I hit the test, the first test never worked using voice. The test will work with typing the skill name. The skill test would work fine 2nd attempt onwards.
  • Setting up actual Alexa Echo device with my new skill.

Accomplishments that I'm proud of

I failed miserably initially since I did not quite understand what I was really trying to do. However, I did not give up. I did it mostly on my own since I did not find someone who is willing to spend time on this. I tried to create the invocation name and failed there since Alexa could not recognize my skill. The script, question and answer format all were challenging and overwhelming. Almost like giving up.

However, I did not give up and tackled 1 problem at a time. Hardest was trying to understand how I really wanted this skill to be. I am excited that I was able to build the skill, test it on Alexa Echo (that was the most exciting moment of all) YEAH! And I submitted the skill for certification.

Studying for Brain Bee has several benefits. According to several reports online, there have been studies to show that there will be shortage of neurology specialists in US. There are more than 600 neurologic diseases. Major types include - Epilepsy, Alzheimer's, Parkinson's, Spina Bifida, Cancer, Autism, and others.

The brain, spinal cord, and nerves make up the nervous system. The brain controls moving, speaking, swallowing, breathing, memory, senses, mood or learning.

The workings of brain is super complex and hard to understand, and I will be very happy to see my friends using the skill to learn more.

( Please see reference for my research )

What I learned

  • Less is more
  • Technology can be a life hack :)
  • When I fail, I go for creative solution.
  • How to design a VUI - Voice User Interface
  • Process of building a skill, creating an AWS lambda function for the code, setting up test and testing the skill.
  • New concepts - AWS lambda, NodeJS, JSON, SSML, Speechlet that converts words to spoken speech.
  • Integrating quizlet data into my application
  • Alexa automatically handles normal punctuation, such as pausing after a period, or speaking a sentence ending in a question mark as a question.
  • How to create an Alexa script and design dialog
  • Building a user flow, while testing it I realized users may say too little, too much, or say things that you weren’t expecting.
  • Identify Intents - Example Start, Stop, Help
  • Identify Utterances like "Lets start Brain Bee Challenge", "Alexa, Lets open Brain Bee Challenge" or "Alexa, play brain bee"
  • Using different Locales (US, GB .. etc)
  • What are slots "Answer is {number}"
  • Alexa Dev portal, Alexa Skill Console
  • Github

Key Concepts:

com.amazon.speech.speechlet - How Alexa turn written words into speech using a speech-enabled web service that runs in the cloud.

SSML - Speech Synthetic Mark Up Language. Example: <emphasis level="strong">fabulous</emphasis>, <say-as interpret-as="interjection"> fabulous </say-as>

Node.Js

  • Node.Js is a javascript based free open source server environment
  • Node.js runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.)
  • Node.js eliminates the waiting, and simply continues with the next request.
  • Node.js runs single-threaded, non-blocking, asynchronously programming, which is very memory efficient.

JSON - JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate.

Math Functions - randomizing Algorithm Math.random()

**

What's next for Brain Bee Challenge

  • Add more to the question bank.
  • Add mock rounds 1,2, 3 .. n with 10 sets of questions; every round you score 7 or high, you move on to the next round. You win if you can reach the nth round and score 7 or higher.
  • Add more Locales like Canada, since this game has only US. Brain Bee is an international competition.
  • Collaborating with Brain Bee champions and participants around preparation guidelines. ( Please see Reference )
  • Allow peer play and posting scores to social media and/or share with friends

Futuristic

Reference

Medical

Alexa and Technical

Research

  • Health and Wellbeing
  • Mindfulness activities for ADHD teens
  • Knowledge and Trivia

Built With

Share this project:
×

Updates