In my community, there are several lost pet reports. They all occur on different mediums Craigslist, Nextdoor, Facebook, etc. In order for someone to be able to post their pet, they have to log into these services and post the information there.

What it does

What this service aims to do, is to provide a bot that the user can interact with via SMS. That way as soon as they see that their little one is missing, the owner can text a number and fill in the information required. Then when someone hears about the missing pet, they'll get a notification. No need to install apps or go to websites.

How we built it

For this implementation, we really wanted to user to be able to upload a picture of their fur baby. So we created a Twilio webhook that would intercept messages between Lex and the user. If an MMS was detected, the picture attached would be given a UUID and then stored into S3. That UUID would be used to satisfy the Lex slot.

Unfortunately, we weren't able to complete the rest of the service, but the idea was that the image would then be given to Rekognition to further extract details and provide more metadata about the picture provided.

All of the pieces were written in Clojure.

Challenges we ran into

Lex doesn't support MMS it also doesn't support all of the bulit-in Slots that Alexa does, such as the Confirm Slot.

Accomplishments that we're proud of

Being able to support MMS was very cool. We had to figure out how to sit in between Lex and Twilio to do that. By default, Lex gives you the ability to simply hook into Twilio, but since we needed to do something custom, a different webhook had to be created with AWS Lambda and API Gateway.

What we learned

Building smart bots is much harder than expected. Lex makes it so much easier, but a lot of times the Bot wouldn't build because what we've asked it to do is too much. This was definitely a fun experience as we got to play with different technologies and different parts of the AWS ecosystem.

What's next for Pet Finder

We will continue to develop the actual pet database and add a frontend such that if someone sees a missing pet the original owner will get a notification via SMS.

Possibly provide a ReportFoundPet intent so that someone can say that they've found someone's pet.

Share this project: