Studying can be hard sometimes, especially when you find yourself just staring at a piece of paper and not absorbing anything. With StudyBuddy, Alexa can motivate you and help you learn. This way, studying is not only easier because you'll be studying out loud, but more fun as well because Alexa can be your study partner.

What it does

StudyBuddy currently has two study subjects implemented, US Presidents and Chemical Elements. The US Presidents subject includes information about every US President including Order in Office, Political Party, and Fun Facts. The Chemical Elements subject includes information about each of the 118 Elements on the Periodic Table, including Atomic Number, Symbol, Year Discovered, and Atomic Weight. StudyBuddy can either quiz you or tell you facts about either subject if prompted to do so. Alexa can be asked to tell about any President or Element and she will respond with all of the information contained about that President or Element. Once the user has learned a bit about each subject, the user can prompt to start a quiz. Then, StudyBuddy will ask 10 questions regarding the subject chosen. Alexa will keep score and react depending on how well you answer the questions, and give you the correct answer so you can learn and try again later.

How we built it

We built a Skill for Alexa in the Amazon Web Service which was hosted on Amazon's server through AWS Lambda. The majority of the code utilized the Alexa SDK skills kit, which we then implemented into our node.js code. The node.js code held all the data for the topic the user would be quizzed on. To do this, we pulled data from different resources and integrated into our code so that Alexa would have knowledge of the US presidents, their parties, etc. From there, we customized different types of questions and answers that Alexa could say using switch statements in JavaScript. We used a provided blueprint and default amazon intents and slot types for numbers and dates, but implemented our own slot types for the presidential fun facts and other included data types so that Alexa could recite them if the user asks her to do so. We created data tables that matched corresponding slots, such as an Element with its Atomic Number. We defined our custom slot types and enabled Alexa to understand them. Our Skill underwent heavy testing with each issue requiring further research and tuning of our code.

Challenges we ran into

We had never used an Amazon Alexa, had never even heard of AWS Lambda, and had no experience with node.js. Just setting up the developer environment was a challenge, let alone creating a useable skill for Alexa. After we were in the environment, our first big challenge was figuring out how to even get Alexa to understand a command. This led us to a blueprint that we altered to form the basis of the quiz. Next we needed to write out all of the data contained in the skill. This took a lot of time, and the format was very specific. Custom slot types need to be defined if Amazon did not have a default type such as for numbers and dates. Additionally, because the JavaScript code needs to constantly be updated on Lambda, with every change we made, we had to sync our skill through Lambda to AWS. Therefore, testing was a long and difficult process because with each minor change the code needed to be synced.

Accomplishments that we're proud of

Actually talking to Alexa and hearing the questions and responses we programmed was very fulfilling. Each time we fixed a failed test felt like we were really making progress. Additionally, learning how to program something that you wouldn't normally interact with was a great experience because it enabled us to push past our comfort zones in order to learn something new. Once the skill is processed by the Amazon development team, it can actually be used by any user with an Alexa on the Amazon Alexa app, so we get to see our project be put out into the real world.

What's next for StudyBuddy

In the future, we would like to implement more school subjects into StudyBuddy and hopefully implement different style quizzes. In this way, Alexa can not only help students in a wide variety of subjects but can integrate different studying methods as well. We would also like to implement a feature that could ask Alexa a specific question regarding a subject and she would tell you the answer that best explains your question from local data, instead of only reciting facts about elements or presidents.

Share this project: