The Advocate Dashboard -- A storytelling interface for legal intervention in DV cases

What inspired us

Domestic-violence stories are scattered across journals, texts, police notes, and memory. That fragmentation costs survivors credibility and time. We set out to build something that looks harmless on the surface but quietly captures signal and converts it into a clear, evidence-ready narrative for legal advocates.

What we built

  • A privacy-first web app (camouflaged with a casual-game UI) where survivors can journal and chat with a warm assistant.
  • Real-time risk scoring from journals/chats using lightweight NLP for red-flag cues (threats, weapons, strangulation, self-harm) and protective factors.
  • Salesforce Data Cloud receives anonymized events; Tableau Next turns them into:
    • Advocate Dashboard: population view with escalation/lethality filters, geography, children present, trends, and quick links to shelters.
    • Victim Story: single-case timeline, critical safety signals (red boxes), escalation trajectory, and an incident log.
  • Concierge lets advocates ask questions in plain English ("Who are the rising-risk victims in San Jose?") and get instant answers. Inspector (planned) will alert when risk spikes--closing the gap between insight and action.

How we built it

  • Frontend: React/Next.js on Vercel with PIN-lock safe mode and end-to-end-encrypted journals.
  • API: FastAPI on Fly.io.
  • Database: Neon Postgres (encryption at rest).
  • NLP: Python (hybrid rules + LLM prompts) to tag risk/protective phrases and context (children present, location type).
  • Pipelines: Cloud Ingestion API → Salesforce Data Cloud (DMOs) → Tableau Next (Concierge + authoring).

What we learned

  • Safety by design matters: plausible-deniability UI, PIN entry, quick-hide, non-blaming language.
  • For legal users, clarity beats complexity--surface who needs action now and why.
  • Transparent NLP (show why a score moved) builds trust more than a black box.
  • Conversational BI via Concierge genuinely reduces time-to-answer.

Challenges we faced

  • Safety & ethics: avoid false reassurance/alarms → conservative thresholds + human-in-the-loop review.
  • Noisy text & sparsity: normalize by time windows; apply recency decay so stale incidents don't dominate.
  • Privacy: AES-256-GCM journal encryption + anonymized streaming to Data Cloud.
  • Latency vs. cost: lean ingestion + precomputed aggregates for near real-time dashboards.

Accomplishments we’re proud of

  • Built a space survivors can safely open—familiar, gentle, and easy to hide—so support is accessible even in risky homes.
  • Turned scattered memories into a clear timeline survivors can own and advocates can use, without forcing a detailed retelling.
  • Wrote human, non-blaming language that validates feelings and offers choices, lowering the emotional cost of seeking help.
  • Helped advocates spot danger sooner and act faster, so families get support before things escalate.
  • Put privacy and dignity first: entries are private by default, identities protected, and the survivor chooses what to share.
  • Created a shared “story of the case” that strengthens legal arguments and helps survivors feel heard and believed.
  • Showed that data storytelling can serve justice, by prioritizing safety, clarity, and compassion over complexity.

What’s next for The Advocate Dashboard

  • Inspector-powered alerts when the escalation index crosses thresholds; jurisdiction-specific rules.
  • One-tap handoffs: hotlines/shelters, safe check-ins, and evidence packets (PDF/CSV) with cryptographic **.
  • Integrations with LegalServer/Clio and a shelter-bed availability feed.
  • Mobile/offline, multilingual, and WCAG-aligned accessibility.
  • Safety & fairness: red-team/bias audits, conservative default weights, and ongoing calibration with advocate/legal advisors.

Takeaway

This is more than a dashboard--it's justice by design. By turning patterns into proof, we help survivors be heard and help advocates act faster and argue stronger.

Built With

Share this project:

Updates