A multilingual court-date navigation and reminder platform that helps people actually make it to court.
Built for the LevelNext Hackathon 2026.
Millions of court dates are missed every year — not because people are fleeing, but because they forgot, couldn't get there, didn't understand the notice, or couldn't find childcare. The consequences cascade: bench warrants, license suspensions, job loss, housing instability.
CourtNav is a navigation and access tool (not legal AI) that provides:
- Multilingual reminders — SMS and email in English, Spanish, Vietnamese, Arabic, and Haitian Creole
- One-tap responses — "I'll Be There," "I Can't Make It," or "I Need Help" directly from a reminder link
- Support requests — transportation, interpreter, ADA accommodation, and childcare assistance
- Self-service reschedule requests — guided flow to request a continuance in plain language
- Court prep guides — "What to Expect in Court" written at a 5th-grade reading level, per case type
- Clerk dashboard — AI-prioritized support request queue, response tracking, request management
- AI-powered — real-time translation, text simplification, and support request prioritization via Google Gemini
- ❌ Legal advice or case strategy
- ❌ Sentencing recommendation tool
- ❌ Autonomous legal decision-making
- ❌ Punitive "risk scoring" system
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, Tailwind CSS, TypeScript, react-i18next |
| Backend | Python 3.11, FastAPI, SQLAlchemy, Alembic |
| Database | PostgreSQL 16 |
| AI | Google Gemini API (translation, readability, prioritization) |
| SMS/Email | Mock services (Twilio & SendGrid ready) |
| DevOps | Docker Compose |
git clone https://github.com/[username]/courtnav.git
cd courtnav
cp .env.example .env
# Add your GEMINI_API_KEY to .env
docker compose up --buildThen seed the demo database:
docker compose exec backend python -m app.seedAccess:
Clerk demo credentials: clerk@example.org / ChangeMe123!
├── backend/
│ ├── app/
│ │ ├── api/routes/ # FastAPI route handlers
│ │ ├── core/ # Config, security
│ │ ├── db/ # SQLAlchemy session
│ │ ├── models/ # 15 ORM models
│ │ ├── schemas/ # Pydantic request/response schemas
│ │ ├── seed/ # Demo data generator (942 lines)
│ │ └── services/ # AI, SMS, email, auth, token services
│ ├── alembic/ # Database migrations
│ ├── Dockerfile
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── pages/ # 9 page components
│ │ ├── layouts/ # Public + Clerk layouts
│ │ ├── lib/ # API client, routing, auth
│ │ ├── components/ # Shared UI components
│ │ └── i18n/ # English + Spanish translations
│ ├── Dockerfile
│ └── package.json
├── docker-compose.yml
└── docs/
└── technical-specification.md
- Participant receives a reminder link → lands on the response page (auto-translated to their language)
- Taps one of three buttons: ✅ I'll Be There · ❌ I Can't Make It · 🆘 I Need Help
- "I Need Help" → support request flow (transportation, interpreter, ADA, childcare)
- "I Can't Make It" → reschedule request flow (reason, details, preferred dates)
- Court prep → "What to Expect" guide with collapsible sections
- Clerk logs in → dashboard shows AI-prioritized support queue with scores and explanations
CourtNav uses Google Gemini for three functions, each with rule-based fallbacks if the API is unavailable:
- Translation — translates reminder content and UI into the participant's preferred language
- Simplification — rewrites legal/court content at a 5th-grade reading level
- Prioritization — scores support requests 0.0–1.0 based on urgency, request type, and days until hearing (ADA and interpreter requests are flagged as legal requirements)
MIT