In an ideal world, every individual could use the restroom of the gender they identify with. We do not live an ideal world though and one of the biggest battlefields upon which the fight for transgender rights is taking place daily are restrooms. Despite legislative victories in recent years regarding restroom usage, many transgender individuals still face both verbal and physical harassment simply for using the restroom of their choice. Nobody should have to face that - and that is why I created the 'Refugee Restrooms' skill.
What it does
Refuge Restrooms is an Alexa skill that seeks to provide safe restroom access for transgender, intersex, and gender nonconforming individuals. The skill also targets people looking for accessible restrooms and restrooms with changing tables.
Users can search for restrooms by proximity and that meet their criteria. The criteria that we currently support are unisex restrooms (for gender non-conforming users), accessible restrooms (for differently abled customers) and parent friendly restrooms (for parents traveling with a kid who needs diaper changes).
The user's get the results delivered by voice, on their echo devices with screens, in the Alexa companion app and also an email with clickable Google Maps links to the restrooms.
How I built it
The skill requires the following inputs from the user -
- Whether they want to search by their current location or at a specific zipcode.
- The zipcode if they are searching at a specific zipcode.
- One or more of the three supported search criteria. (unisex, accessible, parent-friendly).
In the most complex case, we need to collect four pieces of information from the user. To write a skill that collects four inputs from the user would be quite tedious using the traditional custom skill model.
That is when I learned about Alexa Conversations. I was able to use the power of AI to easily handle the entire conversation around gathering inputs using Alexa Conversations. Once all the inputs are collected and confirmed, I transfer control to the custom skill to actually search and present the restrooms.
Challenges I ran into
- Getting a hang of all the concepts of Alexa Conversations took some time. The cook book code samples and the office hours helped a lot.
- I habitually rely a lot on ASK CLI based replay-testing while developing skills. However, that is not yet supported for Alexa Conversations based skills. So, I had to double down on unit testing to make sure I keep my development turn around time short instead of having to deploy the skill every time I make a minor change. End of the day, I ended up with as much test code as source code giving me a lot of confidence as I make changes to the skill.
Accomplishments that I'm proud of
While building a skill on a new platform is quite fulfilling, I'm actually quite proud of the number of bugs / issues I found with the Alexa-Conversations model. I submitted five issues on the Amazon developer forum and hopefully, these reports help make the platform better as it grows out of beta.
What's next for Refugee Restrooms
- The skill currently supports searching at a specific zip code but that is quite restrictive. User's planning to travel somewhere would be more likely to ask for restrooms by city or full address. I will add support to search for restrooms by full addresses.
- The skill currently speaks the address of the restrooms and puts a card with the address in the Alexa companion app. However, the best user experience would be drop a clickable Google Maps link to the restroom. I will add the ability to build a Google Maps like and email it to the customer.