Inspiration

Bogotá, the capital of Colombia, is filled with different museums that have suffered the loss of visitors during the lock-down associated with the pandemic.

We are eager to visit those exhibition halls again but -in the meantime- we are convinced that using tools like Alexa, we can create a compelling experience for users that will enable financial support via donations for any type of cultural institutions looking to inspire people to dig deeper into art and history.

What it does

Our Museum Tour application uses a dynamic content stored in AWS repositories such as S3 buckets and DynamoDB tables to provide an interactive experience to visitors.

Exhibition rooms are segmented into artistic movements and can dynamically list more artist and paintings at any time by flat configuration files. These experiences can be replicated when moving into the gift shop or into a donation area that enables simple financial support via an Amazon Pay integration.

We did not stop there and we already integrated the option to enable Audio-guides directly on the Alexa app so users won´t need to rent a physical device once they can visit the museum again.

How we built it

The core application runs on a Lambda function built on Python which captures all events configured in our Interaction model and defines:

  • When to read from our configuration files repository in S3.
  • When to store or retrieve session status from our DynamoDB table.
  • When to trigger new selections or close the session definitely.

This core Lambda functions invokes a specialized micro-service (also a lambda function) responsible to interact with our Amazon Pay account to process authentication (based on our Seller ID, Access Key ID and Secret Access Key), authorization and payment.

The configuration file repository is critical since it stores all data being created by any content manager in the museum while providing full customization:

  • Painters for each movement associated with a exhibition room.
  • Facts specific for each movement, artist and painting being presented.
  • Questions available to engage more with the audience.
  • Items available in the gift shop.
  • Natural language enables like bounding phrases and introduction paragraphs.

A DynamoDB table is responsible for storing session information like current location, artist, painting and questions being shared. Everything is bonded by a sessionID (created from timestamps) stored at application launch.

Finally, all images used were obtained thanks to the amazing Unsplash, the Wikipedia site and the Wikimedia Commons repositories as well as Unsplash community including: Jon Tyson, Corey Buckley and many others.

Challenges I ran into

Making sure that we understood directives correctly was critical due to the conversational nature of the application and the demand for Render-Templates on our Echo Show development.

Making sure that our selection of S3 and DynamoDB storage could scale to meet demand was tough, since we focused on preserving our innovative randomly generated interactions on complex configuration files.

English is not our native language so triggering the right Skill and go through all the intents proved challenging at times.

Finally, adding Amazon Pay was simple to initiate but tough to managed all possible customer interactions.

Accomplishments that I'm proud of

Being able to have the basic interaction model in a few days while orchestrating the functional aspects in parallel. Creating a framework that enables museum staff and other content creators to add rooms, artists, facts and questions without modifying our core Lambda function.

What I learned

The importance of providing tools such as these to non-profit organizations and all types of small business that need innovative solutions to attract financial support and continue to operate. Being from Latinamerica, these events are being felt really close at the moment

What's next for Museum Tour

Improve our payment flows with Amazon Pay. Improve our front-end to enable any content creator or museum staff to load more data and assets into the application. Making these available to museums everywhere.

Built With

Share this project:

Updates