We love food. As students we're always curious about what's being served at dining halls and restaurants around campus. Currently, to find this information we have to go to UCSD's Housing and Dining website and look up the menus and specials for the day. But wouldn't it be nice if someone could do this for us and just give us this information whenever we asked for it? We introduce "Dining with Alexa".
What it does
"Dining with Alexa" gives you all the menu information you need about cafetarias, restaurants and dining halls around campus. All you have to do is ask for it. It is built on Amazon's Alexa platform, and you interact with it through voice commands. For example, if you say "Alexa, What's for lunch at Canyon Vista?", you will hear Alexa respond with "Canyon Vista is serving Cheeseburger and Chicken Banh Mi for lunch today"
How we built it
The entire platform consists of 4 main modules: 1) Database: This contains all the menu information for all cafetarias, restaurants and dining halls on campus. It even has information about Vegan and Vegetarian options. It is a MongoDB database and is hosted on MongoLab.
2) Scraper: We needed a web scraper to scrape information from the UCSD HDH website and load it into our database. It was built on Python.
3) Web Server: The server handles requests from the Alexa platform. When Alexa is issued a voice command, it queries the Web Server. The server in turn queries the database and responds with a JSON response. It was built using NodeJS and Express.
4) Lambda: This was the endpoint on which all the Alexa "smartness" was built on. Alexa handles all requests and queries on the cloud. AWS Lambda was used to host this. This is also where all the queries were pre-configured and taken care of.
Challenges we ran into:
1) Designing the flow of conversation 2) Saving session data and saving state information about the user 3) Making the conversation natural 4) Relaying information without a visual interface 5) Scraping data from the HDH website where some HTML elements were loaded over AJAX.
Accomplishments that we're proud of:
1) We integrated our various tasks seamlessly 2) Each team member knew exactly what to do 3) Working successfully with a completely new platform in Amazon Alexa
What we learned
What's next for Dining with Alexa
We will be submitting this Alexa Skill to Amazon for certification for it to be published. We hope that UCSD students will find "Dining with Alexa" to be an easy medium through which they can learn dining information around campus.