Project Info
This project did not submit a demo video on Devpost.
Inspiration
Every year, over 400,000 children sit in the U.S. foster care system — and nearly 50% of placements disrupt. Caseworkers juggling 20+ cases rely on gut instinct and spreadsheets to make life-altering matches. Nikhil has extensive experience in developmental therapy through his startup SportsMind, working intensively with high-performing athletes on psychological resilience. Julio has worked in Ed and now EdTech, specifically with students from marginalized contexts. In a conversation about one of Julio's previous students, the foster care system came up — how flawed the matching process is. Julio saw firsthand the severity that a familial mismatch could lead to: behavioral regression, broken trust, and a child who becomes harder to place with every failed attempt. They decided to build the solution themselves. What It Does Sunny, the AI Counselor — Children talk to a warm, live video avatar (HeyGen + Claude) instead of filling out clinical forms. Sunny adapts to the child's age, extracts 30+ psychosocial dimensions and 6 safety flags from a natural 5-minute conversation. No clipboards. Family Profiling — Families complete guided onboarding capturing parenting style, emotional capacity, trauma training, cultural practices, and environment details. Caseworker Note Intelligence — Caseworkers paste free-text notes; Claude extracts structured clinical metrics and cross-references them with the AI counselor's findings. 7-Layer Matching — Every child-family pair runs through a 1,142-line matching engine: $$\text{MatchScore} = \sum_{i=1}^{7} w_i \cdot L_i(\text{child}, \text{family}, \text{context})$$ L1: Profile Normalization L2: Hard Constraints L3: 7 Weighted Dimensions (Personality, Emotional, Attachment, Cultural, Communication, Environment, Stability) L4: Cross-Dimensional Synergy L5: Contextual Reasoning (dual-source: AI transcripts + caseworker notes) L6: Bias Audit & Fairness L7: Stability Prediction & Risk Classification Vector pre-filtering uses pgvector with custom 25-dimensional embeddings (cosine similarity) to narrow candidates before full reasoning. How We Built It Frontend: Flutter web, Provider state management, 10 screens AI Counselor: Claude Sonnet 4.5 (7 conversation phases) + HeyGen Streaming Avatar (LiveKit/WebRTC) + speech-to-text/TTS with auto-listen Backend: Supabase — PostgreSQL + pgvector, 6 tables, 3 Edge Functions (Deno) Matching: 7-layer engine running server-side via Edge Function, local Dart fallback Embeddings: 25-dim vectors encoding energy, attachment, trust, culture, environment, and 20 other factors Challenges We Ran Into Ordering problem: Transcripts saved before the child existed in DB, violating FK constraints. Had to restructure the entire UUID/save flow. Client vs. server matching: Built the engine client-side first, then migrated to Edge Functions for database access while keeping local fallback. Avatar + speech coordination: HeyGen video, STT, and TTS had to not step on each other — solved with state guards and auto-listen callbacks. Trauma-informed prompting: 300+ line system prompt to make Claude genuinely warm with a 5-year-old while extracting clinical-grade metrics. Algorithmic bias: Built Layer 6 specifically to correct for systematic biases against older children, cross-cultural matches, and special needs. Accomplishments We're Proud Of Sunny feels real — kids don't know they're being assessed Every match has a full transparent audit trail — no black boxes Dual-source validation between AI counselor and caseworker notes Custom 25-dimensional embedding space purpose-built for adoption matching 6 real-time safety flags monitored during every conversation What We Learned The foster care matching problem isn't lack of caring — it's lack of tools Children reveal far more in natural conversation than in checkbox forms Bias correction is core infrastructure, not a nice-to-have — it's literally Layer 6 LLMs can be trauma-informed with the right prompting architecture What's Next for The First Match Longitudinal outcome tracking to improve matching with real-world feedback Multi-language support for Sunny Agency partnerships to pilot against expert caseworker decisions Mobile app for tablets in caseworker offices and group homes Sibling group optimization — keeping siblings together
treehacks
A new Flutter project.
Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Analysis
View
Metric
- 3
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CIn code
- C++In code
- DartIn code
- HTMLIn code
- JavaScriptIn code
- KotlinIn code
- SwiftIn code
- TypeScriptIn code
- SupabaseClaimed
8 of 9 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
525 KB
Source files
78
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
ramlukn/treehacks
168 files · 893 KB · @ 128d304
Structure
Interface
26 files · 15%Screens, components and styles rendered to the user.
Application logic
82 files · 49%Domain rules, services and shared utilities.
+17 moreData & schema
9 files · 5%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Dart80%
- TypeScript11%
- C++4%
- JavaScript2%
- C1%
- XML1%
- Other (6)2%
Share of indexed source by file size. Binary and vendored files are excluded.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.