Checking the balance of your William and Mary express account, your dining (flex) dollars, and the number of meal swipes you have can be a hassle. Aflexa remedies this by integrating all this information with Amazon Alexa. Furthermore, laundry information is available for every connected washer and dryer in every living space on campus, including Fraternity Housing and the Graduate Building.

What it does

Retrieves laundry machine status, flex balance, express balance, and meal swipe balance based on user request.

How we built it

Data was retrieved from WM cbord service using the MechanicalSoup library in Python. Financial data was scraped, parsed and outputted. Laundry data was found and scraped as well.

Challenges we ran into

Alexa is a fickle mistress. Integrating the Python backend to the frontend was difficult, as the flow of the calls on the actual python script running on the Alexa was difficult to work around. Webscraping and authenticating was difficult due to a hidden key, so an implementation involving storing cookies and submitting this hidden key was found. Furthermore, MechanicalSoup did not support javascript, which made scraping the laundry pages very difficult, since the HTML for the large table was entirely generated through Javascript. However, after reverse engineering the Javascript, we found that it used a .php file generated by another Javascript file using AJAX to load in data from a hidden database, so we scraped the .php file for the data.

Accomplishments that we're proud of

We were able to successfully retrieve data for multiple financial accounts for a user, as well as find availability of every single washer and dryer on campus.

What we learned

We learned a lot about developing Alexa skills, as well as its voice recognition capabilities.

What's next for Aflexa

We are planning to improve Alexa's recognition functionality when in noisy environments. Furthermore, we are planning to find and provide information as to when washers/dryers would become available, then push a notification to the Alexa. Users could also choose to receive a notification for their laundry.
To further expand the financial capability, we would like to implement the ability to add funds to express and add extra flex dollars, as well as retrieve spending history. However, we must first improve the security, and part of that would be looking to authenticate the WM CAS credentials with the Amazon account.

Share this project: