Students who don't know how to find books in the library.

What it does

Using the Alexa Presentation Language, a person can query a library's database of media to find what they are looking for based on author, title, or genre. The service is easy to setup, and greatly improves the speed of finding media. After a query is made, an Alexa device will display a list of media matching the query, including details on title found, the author, the call number, and a thumbnail for a visual.

How I built it

I used Amazon's lambda service for the backend, and wrote the service in python. To scrape the data from the database, I built a separate API service that searches the HTML of the returned database page for valuable information, and organizes the information into a JSON file. This scraping process is interesting because it can be used on more than just library services; retail, super markets, and book stores can all benefit from a similar service.

Challenges I ran into

Linking accounts to the Alexa service proved to be very difficult. In order for web-scraping to function correctly, Alexa needs to have access to the root URL. Ultimately, I ended up setting up a web application for the user (library) to put the information in. The website isn't completed yet, but will be in the future. Currently, accounting linking through this web application doesn't work, but will in the future.

Accomplishments that I'm proud of

Useful concept that my school library sees as being very valuable. The web-scraping api works very well, and I see so many applications for this infrastructure.

What I learned

The Amazon Alexa Presentation Language was new, and I had never used it before, and I found it to be a great tool for making Alexa skills and testing them. However, I found that if the document attribute to the APL is changed, it may appear on the simulator on the developer page, but not on a show device linked to the same Alexa Account. This had me debugging for a while. I fixed the issue by updating information to the APL document through the data sources attribute.

What's next for Alexa Card Catalog

There is so much innovation available on this project. The first thing I want to do is fix the account linking issue, so Alexa can talk to the web application and get the root URL to the library service. Next, I want the library to be able to set up a floor plan, so Alexa can direct a user to a physical bookshelf. Also, updating this skill for other media databases from retail to warehouses.

Built With

Share this project: