Inspiration
Legal problems that everyday Nigerians face most often a landlord withholding a deposit, an employer delaying salary, a store refusing a refund rarely reach a lawyer. Not because the issues are unimportant, but because legal language is intimidating and legal help is expensive or hard to find. We wanted to build something that meets people where they are: plain English, free, and instant.
What it does
RightsDesk has two tools in one app:
- Ask a question - describe your situation in plain language and get a short, actionable explanation of your rights (tenancy, consumer, or labour issues) plus concrete next steps - no legal jargon.
- Check a document - paste a lease, offer letter, or contract and get clause-by-clause risk flags (low / medium / high risk) that point out auto-renewal traps, waived rights, unlimited liability, non-compete overreach, and similar red flags before you sign.
How we built it
The backend is Django, with two endpoints (/api/ask and /api/analyze)
that route text through a local, rule-based NLP engine we wrote ourselves:
a keyword-scoring classifier sorts a question into a tenancy, consumer, or
labour sub-category and returns a matched, templated response; a set of
regex patterns scans a pasted document clause by clause for common risk
signals and tags each one by severity. The frontend is vanilla HTML/CSS/JS
talking to those endpoints over fetch. It's deployed on Render with
Gunicorn and WhiteNoise for static files.
Challenges we ran into
Deciding against an external LLM API was a deliberate trade-off: it meant giving up some flexibility in phrasing, but it also meant the demo can never fail from a missing API key, a rate limit, or a network hiccup during judging - everything runs locally and deterministically. Getting the keyword classifier to route ambiguous, real-world phrasing ("my landlord won't give my money back") into the right category without misfiring on edge cases took several rounds of testing against sample phrasings.
Accomplishments that we're proud of
A fully working prototype, covering both a conversational and a document-based
use case, that runs with zero external dependencies and zero configuration
beyond pip install.
What we learned
How far you can get on rule-based NLP alone when the domain is narrow and well-scoped and where the line is between "good enough for common cases" and "needs a real language model."
What's next for RightsDesk
Expanding the keyword/template library to cover more issue types and more Nigerian states' specific procedures, adding a language toggle for Pidgin English, and letting users save their conversation as a PDF to bring to a legal aid office.
Built With
- css3
- django
- gunicorn
- html5
- javascript
- python
- regex
- render
- whitenoise
Log in or sign up for Devpost to join the conversation.