Inspiration
Every year, millions of Americans miss court dates — not because they're fleeing justice, but because they forgot, couldn't get transportation, didn't understand a notice written in English, or couldn't find childcare. The consequences are devastating and disproportionate: bench warrants, license suspensions, job loss, and deeper poverty. A single missed court date can spiral into years of legal entanglement.
The existing "reminder" system in most jurisdictions is a single mailed paper notice in English, sent weeks in advance. For non-English speakers, people with unstable housing, or anyone overwhelmed by the legal system — this isn't enough.
I wanted to build something that treats this as a logistics problem, not a compliance problem.
What it does
CourtNav is a multilingual court-date navigation and reminder platform that connects participants to their court dates and connects clerks to the people who need help getting there.
For participants:
- Receive SMS and email reminders in their preferred language (English, Spanish, Vietnamese, Arabic, Haitian Creole)
- Respond with one tap: "I'll Be There," "I Can't Make It," or "I Need Help"
- Request transportation, interpreter, ADA accommodation, or childcare support
- Submit reschedule requests in plain language without needing a lawyer
- Read "What to Expect in Court" guides written at a 5th-grade reading level
For court clerks:
- Dashboard with AI-prioritized support request queue
- Response tracking across all upcoming hearings
- Reschedule request review and management
- Message log for all outbound communications
How I built it
- Frontend: React 18 + Vite + Tailwind CSS with react-i18next for multilingual UI
- Backend: Python FastAPI + SQLAlchemy ORM + Alembic migrations
- Database: PostgreSQL 16 with full relational schema (12 tables)
- AI: Google Gemini API for real-time translation, text simplification, and support request prioritization with rule-based fallbacks
- Architecture: Token-based public access (no login required for participants), JWT auth for clerks, mock SMS/email services ready for Twilio/SendGrid swap
- DevOps: Docker Compose for one-command local development
Challenges I ran into
Designing for accessibility across languages and literacy levels forced us to rethink every piece of copy. Legal content that seems simple in English becomes genuinely difficult when you need it to be accurate, translated, and readable at a 5th-grade level — all without providing legal advice. The AI translation pipeline needed careful prompt engineering to preserve dates, times, addresses, and system keywords exactly while translating everything else.
Accomplishments that I'm proud of
The AI-prioritized support request queue is the feature we're most proud of. When a single parent with no transportation submits a help request 2 days before their hearing, the system automatically scores it higher than a request with more lead time — and explains why to the clerk. ADA and interpreter requests are flagged as legal requirements. This turns a pile of requests into an actionable, ordered queue.
What I learned
The biggest barrier to justice isn't the law — it's the logistics. Most court technology focuses on case management for attorneys and judges. Almost nothing exists for the person who just needs to know where to park, what to bring, and how to ask for a Spanish interpreter. That gap is where CourtNav lives.
What's next for CourtNav
- Live Twilio SMS/SendGrid email integration (currently using mock services)
- Real OTP phone verification for participant registration
- APScheduler for automated reminder scheduling (7-day, 3-day, 1-day, morning-of)
- Inbound SMS handler for keyword responses (CONFIRM, CANT, HELP)
- Expanded language support with cached AI translations
- Pilot with New Hanover County Courthouse, Wilmington, NC
Built With
- alembic
- docker
- fastapi
- google-gemini-api
- postgresql
- python
- react
- react-i18next
- sqlalchemy
- tailwind-css
- typescript
- vite
Log in or sign up for Devpost to join the conversation.