Murmur is a real-time support tool for caregivers of neurodivergent children. It guides users through emotionally intense moments by helping them identify observable behavior and receive trauma-informed, empathetic responses generated via AI.
Murmur aims to improve caregiver-child communication by:
- Guiding caregivers through structured, observation-based prompts
- Generating helpful, real-time language and behavioral insights using LLMs
- Supporting co-regulation and empathy during difficult moments
- Onboarding: Users answer a short questionnaire about their child to create a personalized
BaseContext(e.g., age, diagnosis, communication style, tone preference). - Observation Selection: During a challenging moment, the user selects from a curated list of observable behaviors (e.g., "They are covering their ears"). These come from a static, Firestore-hosted Situational Context Tree (SCT).
- Prompt Generation: The app combines the
BaseContextand selected observations into a structured prompt, which is sent to OpenAI's API. - AI Response: The backend returns a brief suggested caregiver response and a follow-up question, which are displayed in the app.
- (Optional): The user can provide feedback or request a refined suggestion.
- React with Vite
- TypeScript
- Tailwind CSS
- Axios (for API requests)
- Loads and displays:
- Observation prompts (from Firestore)
- User responses (from backend API)
- Calming and accessible UI
- Python + FastAPI
- Receives base context + user-selected observations
- Generates and sends a structured prompt to the OpenAI API
- Returns: suggested caregiver response + follow-up question
- BaseContext: stored per user in
/users/{userId}/baseContext - Situational Context Trees (SCTs): static, app-wide trees stored in
/contextTrees/, loaded by the frontend - No per-session or chat data is stored for MVP
- The situational context tree is read-only and should be structured as a nested JSON object with:
prompt: the current questionoptions: an array of choices, each with alabel,value, and optionalfollowUp
- The frontend builds a list of selected observations which, together with the base context, forms the basis for the AI prompt
- All LLM interactions are handled by the backend to avoid exposing the API key
cd client
npm install
npm run devcd server
uvicorn main:app --reloadDuring onboarding, each user submits a baseContext that is stored in Firestore at:
This includes: /users/{userId}/baseContext
{
"caregiverName": "Alex",
"childName": "Sam",
"childAgeRange": "4–6",
"diagnoses": ["autism"],
"communicationStyle": "non-verbal",
"language": "English (US)"
}
##youtube link: https://youtu.be/yGCSw11w2pc