Categories
Design Development

Microsoft Azure Hack for Social Justice

PrivIQ logo

Just wrapped up our team’s entry for the Microsoft Azure Hack for Social Justice hosted on Devpost. It was such a fun experience.

I signed up pretty early on, but was having a really hard time finding teammates. I asked some friends and some strangers with no luck. Just as I thought oh well, it’s a no go for me I got a request to join a team.

My team was great, with people located all over the country. Many in school and some with full-time jobs. It was a solid mix.

We ultimately developed PrivIQ. It is an Edge Extension that helps simplify if a site collects private data on a visitor.

My task was to create the NLP (neural linguistic programming). So I had to analyze privacy policy text and determine if the policy should alert a visitor that it does collect their private data.

I decided to use the Azure Text Analytics client library. Their API works great with Javascript and their Key Phrases service was a great fit. I was able to pass text from a privacy policy with a POST request to the API with Fetch and it would analyze the text and return an object of key terms.

What really impressed me most was how fast the Text Analytics analyzed and returned the response. I was sending over 5000 characters and it was milliseconds in its return. I wasn’t expecting such an immediate response.

So once we got our response of key words, we then compared them to our list of privacy terms we were looking for. Depending on how many matches were returned we either alerted the visitor through the Extension that yes your data is being collected, or that it may be being collected.

Luckily I got that part down with more than a week to spare. I’d say I got a lot better at sending and receiving POST requests to an API in vanilla Javascript. So that was a big plus!

Other team members worked on the design of the extension, the web scraper that would called the privacy text from a site and putting it all together in an Edge Extension.

Unfortunately we had a hard time getting our scraper to work in the Extension. There were some CORS issues (which did make sense), and we attempted to called an outside server side script like and API at the last moment, but alas ran out of time.

I would like to continue to learn how to better write an Azure Function. That’s the route I would have like to of taken.

We got our almost fully operational example submitted just a few minutes ago, and am really glad I participated. It really was a lot of fun and forced me to learn some new/better ways of coding.

Leave a Reply

Your email address will not be published. Required fields are marked *