When reading EULAs I have a hard time focusing on the very long content. EULAgy converts the text to voice and allows me to listen to EULAs during a commute, while I cook dinner, or as I lay down to sleep.

What it does

EULAgy takes any text, converts it to an mp3 and then persists the file in a database or S3 bucket. Doing the conversion only once saves time and money.

EULAgy also uses Amazon Comprehend to extract and count key phrases and do sentiment analysis.

EULAgy can be deployed on AWS or used from the command line.

EULA uses S3 to store artifacts from conversion and analysis. This saves time and money since your application won't have to execute these expensive operations every time you want the mp3 or key phrases information.

How I built it

  • JavaScript on Lambda using Jest for testing
  • Amazon Comprehend
  • Amazon Polly
  • AWS S3

Challenges I ran into

PostgreSQL on RDS

Initially I was using RDS to persist mp3 and other data, but technical issues forced me to move to S3 for persistence.

  • I am new to the bytea datatype and it took me a while to the conversion correct
  • I couldn't figure out how to use AWS RDS instances from Circle CI to run tests
  • I could use RDS instances from my local machine, but was getting timeouts when trying to read data from RDS from Lambda

Accomplishments that I'm proud of

This can be used for any text, not just EULAs! Hopefully others will find this functionality helpful in their work, even if it isn't EULA-related.

What I learned

  • Amazon's AI library tools are easy to use even if you're not an AI expert!
  • The conversion and analysis utilities provided by the AWS SDK are pretty fast!
  • How to manipulate files in JavaScript
  • How to manipulate files in S3

RDS PostgreSQL

I initially used Amazon RDS to store records (including mp3 data) but abandoned that approach for S3 storage. (Look in the repository history to see the RDS code that was ripped out.)

  • PostgreSQL bytea usage and conversion to store mp3 data
  • PostgreSQL on RDS is fast enough to persist and server mp3s quickly
  • PostgreSQL on RDS is fast enough to use for unit testing from my local machine

What's next for EULAgy

  • Creating an Alexa Skill as a reference implementation. This skill will read EULAs from Echo devices and display results of key phrase analysis for devices with screens.

Built With

Share this project: