Inspiration

Many young adults, especially students under 25, do not fully understand rent contracts or their legal rights. Rental agreements often use complex legal jargon, which can be confusing and difficult to understand. This can lead to students signing contracts without knowing their responsibilities or protections, leading to problems. To solve this, we decided to create a website that explains rent contracts and rental law in simple and clear language. The website is designed for students and young adults who are renting for the first time. It will help them understand contract terms, tenant rights, deposits, and other important information. Our goal is to make rental law easier to understand and more accessible, so young renters can make better and more informed decisions.

What it does

Our website simplifies tenant agreements. Users can upload their rental contract which then when processed, will have the terms explained in simple and easy English. It helps students and young renters understand what they are agreeing to, including their rights, responsibilities, deposits, and important conditions.

How we built it

We built LeaseMate using HTML5, Vanilla JavaScript, and Tailwind CSS. On the backend, a Python and Flask server used PyMuPDF and python-docx to extract raw text from uploaded PDF and Word contracts. To prevent AI hallucinations and ensure legally sound advice, we designed a strict prompt engineering pipeline: the AI cross-references the extracted contract text, along with the user's specific living situation gathered from our frontend questionnaire, against a custom, up-to-date knowledge base of UK housing law. The LLM then analyses as a highly structured object, allowing the frontend to instantly change legal risks into readable sticky notes and severity-ranked action cards.

Challenges we ran into

Our biggest challenge was preventing the AI from hallucinating legal advice, which we solved by engineering a based ground-truth prompt system to keep the analysis anchored to actual UK housing law. Extracting clean, readable text from heavily formatted PDF and Word contracts also proved tricky, as messy layouts and tables could easily confuse the LLM. Additionally, forcing the AI to return perfectly structured results without any extra conversational text required heavy prompt tuning to ensure our dynamic frontend didn't break.

Accomplishments that we're proud of

We are proud of building a legal tool that speaks to Gen-Z without dumbing down the complexities of UK housing law. Successfully grounding the AI with a custom, meticulously researched YAML knowledge base, including the upcoming Renters' Rights Act 2025, ensures LeaseMate provides accurate, advice rather than dangerous hallucinations. We're also happy with how we managed to connect the everything: transforming dense, 30-page PDF legalese and personalized student context into perfectly structured webpage, all beautifully rendered into an intuitive, visually engaging dashboard that actually empowers young renters to protect themselves.

What we learned

We learned just how challenging it is to bridge the gap between complex legal frameworks and accessible tech. We mastered advanced prompt engineering techniques to force an LLM to act deterministically, by relying strictly on a provided knowledge base rather than hallucinating and to consistently output clean for our frontend to ingest. We also gained valuable experience handling messy, unstructured document extraction. Above all, we realized the importance of user experience in legal tech; transforming contracts into friendly, bite-sized sticky notes taught us how critical empathy and a clear visual hierarchy are when designing for users navigating stressful real-world situations.

What's next for LeaseMate?

For LeaseMate, we want to try to bring it up to the Student Union to maybe use its services to help actual students with renting contracts. We know that it is still in progress as this is the first prototype, but we are confident this can help students by informing them about their contracts.

Share this project:

Updates