Inspiration
The inspiration for FinePrint came from the idea that the more words people need to read, the less some care to understand. For example, many terms and conditions, contracts, and privacy policies are often written in dense, technical language that most users simply skim through. In more serious situations like this, a lack of understanding can lead to unintended consequences, like agreeing to unattractive terms, or missing key details.
What it does
We wanted to create a solution that makes legal documents accessible, transparent, and easy to understand. Using AI technologies like Natural Language Processing (NLP) and Large Language Models (LLM), FinePrint helps users quickly identify key issues and gain clarity without needing a lawyer. We do not aim to replace legal professionals, however we aim to help users to understand contracts better and educate them about potential points to pay attention to. The goal of this project is to empower individuals by making legal information more transparent and actionable, putting users back in control of what they’re agreeing to.
How we built it
To start, we divided the team into front-end and back-end roles based on our different skill sets. This allowed us to work efficiently while ensuring both user experience and ML functionality were integrated well. For the front-end, we started by sketching designs of what we wanted our website to look like, and all the features we wanted our final project to include. We also brainstormed to see which features would be essential to our project and then decided which ideas were outside our scope, or were not possible in our time frame. Our website had three main pages: the home page, document upload page, and finally the output and response page; as we had three team members working on the front-end, it was natural to have one member work on each of the pages. We used HTML, CSS, JavaScript and JS libraries to achieve our desired visual effects in order to enhance user experience and improve the functionality of our project.
For the back-end, We first had thoughts on using a neural network (BERT) for our text classification. This proved to be a difficult task as neural networks work really well on large datasets and since we made our dataset from scratch, the NN didn't have enough information for the model to actually give a good confidence interval without overfitting, thus we resorted to NLP with Naive bayes theorem which does require much processing time and gives us a good confidence interval for accuracy. For the dataset we performed synthetic data generation to generate unique entries based on different criteria.We then used this data to manually train an ML model using an NLP algorithm. For the summary generation, we used a pre-trained LLM with a custom touch to get the desired output. A REST api was built to connect the frontend of our app with the ml model.
Challenges we ran into
In the past couple of hours since we started working on FinePrint, we have run into many challenges. There have been technical issues, like dealing with bugs in the code, and design challenges where we struggled to create a visually appealing and user-friendly interface. However, the most significant obstacle we faced has been merging our code on our GitHub repository. Some of our group members had never used GitHub prior to this Hackathon, and so it was a challenge to not only learn how to navigate the website, but to also push, pull, and merge changes successfully. We faced conflicts when multiple members were working on the same sections of code, and understanding how to resolve those conflicts properly while keeping the project intact was a learning experience for the entire team. Despite these hurdles, we managed to come together, share knowledge, and make the necessary adjustments to keep our collaboration as smooth as possible moving forward. Another challenge was to gather a relevant dataset for training our ML model for sentiment analysis.
Accomplishments that we're proud of
The accomplishment we are most proud of is being able to build a working AI model that can accurately analyse contracts, summarise clauses, and flag risks within the timeframe of this hackathon. As we only had two days to complete our project, including the initial planning, implementation, and refinement processes, we feel that this project is something we can be proud of. All of us learned and gained valuable skills that will be useful in future projects and hackathons.
Furthermore, we are also proud of our clean and intuitive User Interface which provides an efficient and responsive user experience. We experimented with different visual effects, for example the implementation of constellations/particles on the output page, and the responsive hexagons on the document upload page; seeing our end product with all of these effects in action was definitely a proud moment, as our front-end team members had never worked with features like these before.
What we learned
Every member of our team was able to learn something from their time working on Fineprint. For example, many of us used GitHub for the first time during this Hackathon. Learning how to push, pull, and merge code effectively is a skill that we can now use towards future Hackathons and coding projects. Through FinePrint, we also had the chance to experiment with different libraries where we found interesting visual effects. Experimenting with these complex visuals was a difficult task, but in the process we were able to adopt a user perspective to shape the UI and determine how best to illustrate our vision. Additionally, the importance of teamwork stood out to us as we had to divide our tasks based on our individual strengths, from back-end and UI design to front-end and marketing. Planning and communication also played a huge role in keeping us organized and focused. Another learning aspect is how much your dataset is important for training the ML model,with bad inputs the learning of the model will be skewed giving us wrong results even though we trained the dataset. So, it was essential to know how important dataset generation is for a project of this magnitude. Overall, the hackathon experience highlighted the power of collaboration and leveraging personal strengths to create a successful product.
What's next for FinePrint
The main idea we were unable to implement due to time constraints was the idea of a traffic light system to determine the nature of different clauses in the document uploaded by the user; we had originally wanted our AI model to classify items in a contract into Red Flags for concerning clauses, Yellow Flags for ambiguous or potentially concerning clauses, and Green Flags for beneficial clauses which protect the user’s rights. As this was one of our main ideas for the functionality of FinePrint, we feel that implementing this feature would be a natural next step for this project.
In addition, we plan to refine our AI model by improving training data and fine-tuning the model so that it will better understand legal terms, improve classifying accuracy, and detect more complex risks/flags. Doing so would ensure an even better user experience as this refinement increases the scope of our tool, allowing it to be used in more complex and general situations. Another feature that we could not fit into our scope was implementing our tool in a Chrome extension; we believe that doing this will make it much more convenient for users to access our tool, as they can easily click on the extension icon and receive the summary and flagged items instead of having to download or copy their contract and access our tool through the website.
Built With
- backend
- css
- datapipeline
- frontend
- fullstack
- html
- javascript
- llm
- machine-learning
- natural-language-processing
- python
- restapi
Log in or sign up for Devpost to join the conversation.