An Alexa skill that is meant to assist in exploring every University in the United States. It's my first attempt at making an Alexa skill and is my final project for Advanced Web Apps at the University of Florida
Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
scorecard_files
.getignore
License.md
README.md
data.py
data.pyc
intent_schema.JSON
requirements.txt
sample_utterances.txt
scrap.txt
univs.py
univs_test.py

README.md

University Explorer

Introduction

For my final project in Advanced Web Apps at the University of Florida I decided to build my own skill for the Amazon’s Alexa service.

My skill, called University Explorer, allows users to learn more about any university in the United States by speaking to their Alexa-enabled devices. The initial set of information that users can ask University Explorer is the location, the graduation rate, the median income after graduation and the average yearly tuition to the university.

I built the skill using John Wheeler’s Flask-ASK library, and I recommend everyone to check it out. Wheeler has made it super simple to learn how to build Alexa skills.

The Data

All of the data for University Explorer comes from the U.S. Department of Education’s College Scorecard Dataset. I came across the data while I was poking around data.gov, an invaluable resource for anyone learning how to build web apps who needs some data to practice with.

After downloading a CSV file with all of the latest data from data.gov, I filtered out all of the extraneous data that I didn’t need and then threw what I needed into Mr. Data Converter to convert it into a python dictionary.

While building the skill, I ran into a few issues that required me to clean up the data. This included “é” in Puerto Rican schools, hyphenated university names as in the University of Wisconsin-Madison as well as “&”’s like Texas A&M University. Turns out Alexa, just like humans, doesn’t completely listen for punctuation.

Making the Alexa Skill

The skill is almost completely powered by one for-loop that was inspired from a previous project. It loops through the over 7,000 schools in the python dictionary looking for the requested university and returns the desired information.

I found out pretty early on that I would need to find a way around capitalized university names so that the university requested and the university in the python dictionary matched. Luckily, there’s a tool built into python called .lower() that forces all text to be lowercased.

I’m not going to go through how Alexa works here, but I will say that once you stare at Alexa’s documentation and Flask-ASK tutorials long enough, you realize that Alexa does two things: it makes statements and asks questions. That’s it. And when it does speak, it does through string formatting, with little gaps for the retrieved information to be read.

I created an intent that greets the user and asks him or her what university they want to learn about. If they don’t say anything, I have added .reprompt to repeat the question. I also have the skill writing cards to send back to the main Alexa app on user’s phones so that they can read what Alexa said to them.

Other resources.

All of the libraries and the like that I used in my project are located in my requirements.txt file, but here are some of the resources that I used in making my very first Alexa skill.

Next steps.

The next step for University Explorer is obviously to have it certified by Amazon so that anyone with an Alexa-enabled device can use my skill. I’m going to be using John Wheeler’s tutorial of deploying skills to Amazon’s Lambda service.