Inspiration

Our inspiration for this web application came from life experience. As seniors, some of our team recently found jobs! But to work, we had to sign 50+ page long employment contracts, with sentences that spanned multiple pages, and indecipherable legal jargon. Between confidentiality agreements, non-solicitation agreements, IP clauses and more, we had no idea what we were signing away, and yet we had to sign regardless. However, our legal system expects us to understand, and holds us accountable for everything in the contracts we sign. This unrealistic expectation causes a severe lack of understanding not only in Employment Contracts, but also in other personal and financial contracts like Mortgages, and even the infamous End User License Agreements that we have to sign every time we access software. We're BitLegal, and we're here to help!

What it does

Our website will take your document and parse it for standardized legal clauses and terms, and then present to you the meaning of each part of the contract. We do this with a tiered system. First, we use "legal clauses" as the larger structure of the documents. Second, we use "legal terms," which are phrases and individual words that have a very specific meaning in a legal context. Users can then view all of this information together, making the contract far more understandable than its original copy written in "legalese." This way, everyone can begin to understand just what they are getting themselves into the next time they have to sign a legally binding document.

How we built it

We built out our website as a web application with R-Shiny. The back end uses some standard natural language processing packages, as well as some custom pre and post-processing steps. Additionally, we used some python scripts to pre-process some of the data files used in the web application, namely with web scraping from Merriam Webster's legal dictionary.

Challenges we ran into

Because we didn't have the time or training to invest in other APIs, or write custom code in HTML and/or CSS, we had to get very creative to pull off all of the site features that we wanted using only R-Shiny. For example, R-Shiny doesn't exactly shine when it comes to animating interactive text features, so we had to combine a built-in drop-down menu with a basic text box for the legal clause descriptions.

Aside from the UI challenges, we also had to have an algorithm to properly search the document. We experimented with mixing a bit of the built-in R fuzzy text search function with some of our own tweaks and optimizations.

Accomplishments that we're proud of

It works?!

What we learned

First and foremost, we learned a lot of valuable soft skills from our project. We learned the importance of communication, patience, and how important is was to invest time into project management and organization, to make sure that everyone's workflow is aligned to add value to our end goal.

Secondly, we learned a lot about fuzzy text matching. There are many ways to communicate the same essence of information in English, and making sure that a) we pick up all of the right information and b) pick up little to no misinformation are surprisingly different and complex tasks. Ultimately, we had to rethink the very structures of grammar and syntax in order to apply a more supervised approach, which struck a balance that we were all happy with.

What's next for BitLegal, by R-Rusty

We're considering taking our idea live. We can get web hosting and continue to develop to site while collecting data from users to help pay the bills.

Built With

  • r
  • shiny
Share this project:

Updates