Buddy - Voice-First Dementia Care Assistant by Anthony LopezBuddy - Voice-First Dementia Care Assistant by Anthony Lopez

Buddy - Voice-First Dementia Care Assistant

Anthony Lopez

Anthony Lopez

https://github.com/whoshotu/-BUDDY Buddy - Voice-First Dementia Care Assistant

AI-powered voice assistant for dementia patients, built for the Amazon Nova AI Hackathon 2026.

๐ŸŽฏ MVP Scope

Alexa Custom Skill - Patient voice interface with Amazon Nova
Caregiver Dashboard - Web interface for managing patient knowledge base
3-Level Safety Escalation - Smart alerts via Amazon SNS SMS
Core Use Cases: Routine guidance, family recognition, medication reminders

๐Ÿ—๏ธ Architecture

Patient Device (Alexa)
โ†“
AWS Lambda (Alexa Skill Handler)
โ†“ (bidirectional streaming)
Amazon Bedrock Nova 2 Sonic (speech-to-speech)
โ†“ (tool calls)
Nova 2 Lite Agentic Workflow
โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ DynamoDB โ”‚ RAG Query โ”‚ Safety Gate โ”‚
โ”‚(Knowledge โ”‚ (Patient โ”‚(Escalation โ”‚
โ”‚ Base) โ”‚ Context) โ”‚ Logic) โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ†“
Caregiver Alert (SMS/SNS) or Emergency Assist

๐Ÿš€ Quick Start

Prerequisiteshttps://github.com/whoshotu/-BUDDY Buddy - Voice-First Dementia Care Assistant AI-powered voice assistant for dementia patients, built for the Amazon Nova AI Hackathon 2026.

๐ŸŽฏ MVP Scope Alexa Custom Skill - Patient voice interface with Amazon Nova
Caregiver Dashboard - Web interface for managing patient knowledge base
3-Level Safety Escalation - Smart alerts via Amazon SNS SMS
Core Use Cases: Routine guidance, family recognition, medication reminders
๐Ÿ—๏ธ Architecture Patient Device (Alexa) โ†“ AWS Lambda (Alexa Skill Handler) โ†“ (bidirectional streaming) Amazon Bedrock Nova 2 Sonic (speech-to-speech) โ†“ (tool calls) Nova 2 Lite Agentic Workflow โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ DynamoDB โ”‚ RAG Query โ”‚ Safety Gate โ”‚ โ”‚(Knowledge โ”‚ (Patient โ”‚(Escalation โ”‚ โ”‚ Base) โ”‚ Context) โ”‚ Logic) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ Caregiver Alert (SMS/SNS) or Emergency Assist
๏ฟผ TypeScript ๐Ÿš€ Quick Start Prerequisites AWS CLI configured (aws configure)
AWS Account with Nova access
Node.js 18+ (for Lambda deployment)
Python 3.9+ (for infrastructure scripts)
Phase 1: Deploy Infrastructure

Deploy DynamoDB tables and seed data

./deploy.sh --environment dev --region us-east-1 ๏ฟผ TypeScript This creates:
BuddyCaregivers-dev - Login credentials and notification preferences
BuddyPatients-dev - Patient profiles, routines, medications, people
BuddyAssignments-dev - Caregiver-patient relationship mapping
BuddyConversationLogs-dev - Conversation history (90-day TTL)
Test Credentials:
Username: caregiver_test
Password: Demo2026!
Patient: John Doe
Phase 2: Deploy Alexa Skill
Configure Environment Copy environment template cp .env.example .env ๏ฟผ TypeScript Edit .env with your AWS values nano .env ๏ฟผ TypeScript
Deploy Lambda Function Deploy the Alexa skill Lambda
./deploy-lambda.sh --environment dev --region us-east-1 ๏ฟผ TypeScript This creates:
Lambda function buddy-alexa-skill-dev
Alexa Skills Kit trigger configured
Environment variables for DynamoDB tables
Save the Lambda ARN - you'll need it for the Alexa Developer Console.
Configure Alexa Developer Console Go to Alexa Developer Console
Click "Create Skill"
Skill Name: "Buddy - Dementia Care Assistant"
Choose a model: Custom
Choose a method: Provision your own
Click "Create Skill"
Interaction Model:
Click on "JSON Editor" (left sidebar)
Delete the default content
Copy the contents of src/alexa-skill/models/en-US.json and paste it in
Click "Save Model" then "Build Model"
Endpoint Configuration:
Go to "Endpoint" (left sidebar)
Select "AWS Lambda ARN"
Paste your Lambda ARN from deployment
Click "Save Endpoints"
Account Linking (Optional):
Go to "Account Linking" (left sidebar)
Configure if you want user authentication
Test:
Go to "Test" tab
Enable testing for your skill
Test: "Alexa, open Buddy Assistant"
Test Your Skill

Test commands

"What do I do this morning?" "Who is Sarah?" "What do I take after breakfast?"

Safety tests

"I'm scared" (repeat 4 times for Level 1 alert) "I fell down" (immediate Level 2 alert) ๏ฟผ TypeScript Phase 3: Refinement & Monitoring (Optional) Deploy Nova Sonic WebSocket API for advanced speech-to-speech
./scripts/deploy-websocket.sh --environment dev --region us-east-1 ๏ฟผ TypeScript Deploy CloudWatch monitoring dashboard ./scripts/deploy-monitoring.sh --environment dev --region us-east-1 ๏ฟผ TypeScript Nova Sonic Features:
Bidirectional streaming with barge-in support
Natural turn-taking and adaptive speech
WebSocket API for real-time conversations
Hybrid mode (traditional skill + Nova Sonic)
Emergency Assist Features:
Level 2 emergency protocol with location sharing
30-minute emergency session persistence
Dual notification system (SNS + SMS)
Real-time caregiver updates
See Nova Sonic README and Emergency Documentation for details.
Phase 4: Caregiver Dashboard Start the React dashboard
cd src/caregiver-dashboard npm install npm run dev ๏ฟผ TypeScript Open http://localhost:3000 ๏ฟผ TypeScript Dashboard Features:
Patient profile overview
Real-time conversation monitoring
Safety alert management
Emergency contact information
Phase 5: Testing Without Alexa Device Test Lambda function directly cd test ./test-lambda.sh ๏ฟผ TypeScript This simulates Alexa requests and tests emergency flow See Testing Guide for comprehensive test scenarios.
๐Ÿ“ Project Structure buddy/ โ”œโ”€โ”€ docs/ # Documentation โ”‚ โ”œโ”€โ”€ README.md # Documentation index โ”‚ โ”œโ”€โ”€ EXECUTIVE_SUMMARY.md # Project overview โ”‚ โ”œโ”€โ”€ ARCHITECTURE.md # System design โ”‚ โ”œโ”€โ”€ API.md # API reference โ”‚ โ”œโ”€โ”€ DEMO_SCRIPT.md # Demo guide โ”‚ โ”œโ”€โ”€ PRD.md # Product requirements โ”‚ โ”œโ”€โ”€ SETUP.md # Installation guide โ”‚ โ”œโ”€โ”€ DEPLOYMENT.md # Deployment strategies โ”‚ โ”œโ”€โ”€ EMERGENCY.md # Emergency features โ”‚ โ”œโ”€โ”€ BETA_TESTING.md # Testing procedures โ”‚ โ””โ”€โ”€ DYNAMODB_OPTIMIZATION.md # Performance guide โ”‚ โ”œโ”€โ”€ infrastructure/ # CloudFormation templates โ”‚ โ”œโ”€โ”€ dynamodb.yaml # DynamoDB tables โ”‚ โ”œโ”€โ”€ websocket-api.yaml # WebSocket API โ”‚ โ”œโ”€โ”€ monitoring.yaml # CloudWatch dashboards โ”‚ โ””โ”€โ”€ seed_data.py # Test data โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ alexa-skill/ # Lambda function โ”‚ โ”‚ โ”œโ”€โ”€ index.js โ”‚ โ”‚ โ”œโ”€โ”€ skill.json โ”‚ โ”‚ โ”œโ”€โ”€ models/ โ”‚ โ”‚ โ”œโ”€โ”€ package.json โ”‚ โ”‚ โ””โ”€โ”€ tests/ # Unit tests โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ caregiver-dashboard/ # React web interface โ”‚ โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”œโ”€โ”€ package.json โ”‚ โ”‚ โ””โ”€โ”€ README.md โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ nova-sonic-websocket/ # Advanced speech-to-speech โ”‚ โ”œโ”€โ”€ index.js โ”‚ โ”œโ”€โ”€ test-client.html โ”‚ โ””โ”€โ”€ README.md โ”‚ โ”œโ”€โ”€ scripts/ # Deployment scripts โ”‚ โ”œโ”€โ”€ deploy.sh โ”‚ โ”œโ”€โ”€ deploy-iam.sh โ”‚ โ”œโ”€โ”€ deploy-lambda.sh โ”‚ โ”œโ”€โ”€ deploy-websocket.sh โ”‚ โ”œโ”€โ”€ deploy-monitoring.sh โ”‚ โ””โ”€โ”€ verify.sh โ”‚ โ”œโ”€โ”€ test/ # Test suite โ”‚ โ”œโ”€โ”€ test-lambda.sh โ”‚ โ””โ”€โ”€ test-lambda.js โ”‚ โ”œโ”€โ”€ demo/ # Demo materials โ””โ”€โ”€ README.md # Main project README
๏ฟผ TypeScript ๐Ÿ”ง Environment Configuration Copy .env.example to .env and configure:

Required variables (auto-populated by deployment scripts)

AWS_REGION=us-east-1 ENVIRONMENT=dev ROLE_ARN=arn:aws:iam::YOUR_ACCOUNT_ID:role/buddy-lambda-role SNS_TOPIC_ARN=arn:aws:sns:us-east-1:YOUR_ACCOUNT_ID:buddy-alerts-dev LAMBDA_ARN=arn:aws:lambda:us-east-1:YOUR_ACCOUNT_ID:function:buddy-alexa-skill-dev

DynamoDB tables (auto-populated)

CAREGIVERS_TABLE=BuddyCaregivers-dev PATIENTS_TABLE=BuddyPatients-dev ASSIGNMENTS_TABLE=BuddyAssignments-dev LOGS_TABLE=BuddyConversationLogs-dev ๏ฟผ TypeScript ๐Ÿงช Testing Local Testing Navigate to skill directory cd src/alexa-skill ๏ฟผ TypeScript Install dependencies npm install ๏ฟผ TypeScript Create test event cat > test-event.json << 'EOF' { "version": "1.0", "session": { "new": true, "sessionId": "test-session-001", "application": { "applicationId": "test-app-id" }, "user": { "userId": "amzn1.ask.account.test" } }, "context": { "System": { "user": { "userId": "amzn1.ask.account.test" } } }, "request": { "type": "IntentRequest", "intent": { "name": "WhoIsIntent", "slots": { "person": { "name": "person", "value": "Sarah" } } } } } EOF ๏ฟผ TypeScript Run test node -e " const handler = require('./index.js').handler; const event = require('./test-event.json'); handler(event, {}, (err, result) => { console.log('Result:', JSON.stringify(result, null, 2)); }); " ๏ฟผ TypeScript CloudWatch Monitoring View Lambda logs aws logs tail /aws/lambda/buddy-alexa-skill-dev --follow ๏ฟผ TypeScript Check invocation metrics aws cloudwatch get-metric-statistics --namespace AWS/Lambda --metric-name Invocations --dimensions Name=FunctionName,Value=buddy-alexa-skill-dev --start-time $(date -u -v-1H +%Y-%m-%dT%H:%M:%S) --end-time $(date -u +%Y-%m-%dT%H:%M:%S) --period 60 --statistics Sum ๏ฟผ TypeScript ๐Ÿ”’ Security Encryption: DynamoDB SSE (AES-256) at rest, TLS 1.2+ in transit
Authentication: JWT tokens (1-hour expiry) for caregiver API
Authorization: Caregivers can only access their assigned patients
Data Minimization: No audio stored, only text transcripts
Retention: 90-day auto-deletion of conversation logs (DynamoDB TTL)
IAM: Least-privilege access with table-specific permissions
๐Ÿ“… Project Timeline Phase 1 (Jan 20-26): Core Infrastructure โœ…
DynamoDB tables deployed
IAM roles created
Seed data inserted
Phase 2 (Jan 27-Feb 2): Alexa Skill Implementation โœ…
Lambda function with Nova integration
Safety escalation system
SNS SMS alerts
Intent handlers for routines, medications, family
Phase 3 (Feb 3-7): Refinement โœ…
Nova Sonic speech-to-speech integration with WebSocket API
Enhanced Emergency Assist with location sharing and 30-min session
CloudWatch monitoring dashboard and alarms
Conversation logging and analytics
Phase 4 (Feb 1-7): Caregiver Dashboard โœ…
React dashboard with patient monitoring
Web UI implementation
API documentation
Edge case handling
Phase 5 (Mar 6-16): Demo & Submission โœ…
Demo video production
Devpost submission
Documentation polish
Test credentials for judges
๐Ÿ“š Documentation Product Requirements Document - Full feature specification
Database Schema - DynamoDB design and access patterns
Alexa Skill README - Skill-specific documentation
Monitoring Guide - CloudWatch and safety monitoring
๐Ÿค Contributing This is a hackathon project. For issues or improvements, please:
Check existing issues first
Create a new issue with detailed description
Submit pull requests with clear commit messages
๐Ÿ“ License MIT License - Amazon Nova AI Hackathon 2026
Status: 100% COMPLETE โœ… - Ready for Submission
๏ฟผ๏ฟผ GitHub - whoshotu/-BUDDY: An AI-powered voice assistant built specifically for dementia patients using Amazon Nova AI. An AI-powered voice assistant built specifically for dementia patients using Amazon Nova AI. - whoshotu/-BUDDY https://github.com/whoshotu/-BUDDY
๏ฟผ ๏ฟผ
AWS CLI configured (aws configure)
AWS Account with Nova access
Node.js 18+ (for Lambda deployment)
Python 3.9+ (for infrastructure scripts)

Phase 1: Deploy Infrastructure

# Deploy DynamoDB tables and seed data
./deploy.sh --environment dev --region us-east-1
This creates:
BuddyCaregivers-dev - Login credentials and notification preferences
BuddyPatients-dev - Patient profiles, routines, medications, people
BuddyAssignments-dev - Caregiver-patient relationship mapping
BuddyConversationLogs-dev - Conversation history (90-day TTL)
Test Credentials:
Username: caregiver_test
Password: Demo2026!
Patient: John Doe

Phase 2: Deploy Alexa Skill

1. Configure Environment

Copy environment template

cp .env.example .env

Edit .env with your AWS values

nano .env

2. Deploy Lambda Function

Deploy the Alexa skill Lambda
./deploy-lambda.sh --environment dev --region us-east-1
This creates:
Lambda function buddy-alexa-skill-dev
Alexa Skills Kit trigger configured
Environment variables for DynamoDB tables
Save the Lambda ARN - you'll need it for the Alexa Developer Console.

3. Configure Alexa Developer Console

Click "Create Skill"
Skill Name: "Buddy - Dementia Care Assistant"
Choose a model: Custom
Choose a method: Provision your own
Click "Create Skill"
Interaction Model:
Click on "JSON Editor" (left sidebar)
Delete the default content
Copy the contents of src/alexa-skill/models/en-US.json and paste it in
Click "Save Model" then "Build Model"
Endpoint Configuration:
Go to "Endpoint" (left sidebar)
Select "AWS Lambda ARN"
Paste your Lambda ARN from deployment
Click "Save Endpoints"
Account Linking (Optional):
Go to "Account Linking" (left sidebar)
Configure if you want user authentication
Test:
Go to "Test" tab
Enable testing for your skill
Test: "Alexa, open Buddy Assistant"

4. Test Your Skill

# Test commands
"What do I do this morning?"
"Who is Sarah?"
"What do I take after breakfast?"

# Safety tests
"I'm scared" (repeat 4 times for Level 1 alert)
"I fell down" (immediate Level 2 alert)

Phase 3: Refinement & Monitoring (Optional)

Deploy Nova Sonic WebSocket API for advanced speech-to-speech
./scripts/deploy-websocket.sh --environment dev --region us-east-1

Deploy CloudWatch monitoring dashboard

./scripts/deploy-monitoring.sh --environment dev --region us-east-1
Nova Sonic Features:
Bidirectional streaming with barge-in support
Natural turn-taking and adaptive speech
WebSocket API for real-time conversations
Hybrid mode (traditional skill + Nova Sonic)
Emergency Assist Features:
Level 2 emergency protocol with location sharing
30-minute emergency session persistence
Dual notification system (SNS + SMS)
Real-time caregiver updates

Phase 4: Caregiver Dashboard

Start the React dashboard
cd src/caregiver-dashboard
npm install
npm run dev

Open

http://localhost:3000
Dashboard Features:
Patient profile overview
Real-time conversation monitoring
Safety alert management
Emergency contact information

Phase 5: Testing Without Alexa Device

Test Lambda function directly

cd test
./test-lambda.sh

This simulates Alexa requests and tests emergency flow

See Testing Guide for comprehensive test scenarios.

๐Ÿ“ Project Structure

buddy/
โ”œโ”€โ”€ docs/ # Documentation
โ”‚ โ”œโ”€โ”€ README.md # Documentation index
โ”‚ โ”œโ”€โ”€ EXECUTIVE_SUMMARY.md # Project overview
โ”‚ โ”œโ”€โ”€ ARCHITECTURE.md # System design
โ”‚ โ”œโ”€โ”€ API.md # API reference
โ”‚ โ”œโ”€โ”€ DEMO_SCRIPT.md # Demo guide
โ”‚ โ”œโ”€โ”€ PRD.md # Product requirements
โ”‚ โ”œโ”€โ”€ SETUP.md # Installation guide
โ”‚ โ”œโ”€โ”€ DEPLOYMENT.md # Deployment strategies
โ”‚ โ”œโ”€โ”€ EMERGENCY.md # Emergency features
โ”‚ โ”œโ”€โ”€ BETA_TESTING.md # Testing procedures
โ”‚ โ””โ”€โ”€ DYNAMODB_OPTIMIZATION.md # Performance guide
โ”‚
โ”œโ”€โ”€ infrastructure/ # CloudFormation templates
โ”‚ โ”œโ”€โ”€ dynamodb.yaml # DynamoDB tables
โ”‚ โ”œโ”€โ”€ websocket-api.yaml # WebSocket API
โ”‚ โ”œโ”€โ”€ monitoring.yaml # CloudWatch dashboards
โ”‚ โ””โ”€โ”€ seed_data.py # Test data
โ”‚
โ”œโ”€โ”€ src/
โ”‚ โ”œโ”€โ”€ alexa-skill/ # Lambda function
โ”‚ โ”‚ โ”œโ”€โ”€ index.js
โ”‚ โ”‚ โ”œโ”€โ”€ skill.json
โ”‚ โ”‚ โ”œโ”€โ”€ models/
โ”‚ โ”‚ โ”œโ”€โ”€ package.json
โ”‚ โ”‚ โ””โ”€โ”€ tests/ # Unit tests
โ”‚ โ”‚
โ”‚ โ”œโ”€โ”€ caregiver-dashboard/ # React web interface
โ”‚ โ”‚ โ”œโ”€โ”€ src/
โ”‚ โ”‚ โ”œโ”€โ”€ package.json
โ”‚ โ”‚ โ””โ”€โ”€ README.md
โ”‚ โ”‚
โ”‚ โ””โ”€โ”€ nova-sonic-websocket/ # Advanced speech-to-speech
โ”‚ โ”œโ”€โ”€ index.js
โ”‚ โ”œโ”€โ”€ test-client.html
โ”‚ โ””โ”€โ”€ README.md
โ”‚
โ”œโ”€โ”€ scripts/ # Deployment scripts
โ”‚ โ”œโ”€โ”€ deploy.sh
โ”‚ โ”œโ”€โ”€ deploy-iam.sh
โ”‚ โ”œโ”€โ”€ deploy-lambda.sh
โ”‚ โ”œโ”€โ”€ deploy-websocket.sh
โ”‚ โ”œโ”€โ”€ deploy-monitoring.sh
โ”‚ โ””โ”€โ”€ verify.sh
โ”‚
โ”œโ”€โ”€ test/ # Test suite
โ”‚ โ”œโ”€โ”€ test-lambda.sh
โ”‚ โ””โ”€โ”€ test-lambda.js
โ”‚
โ”œโ”€โ”€ demo/ # Demo materials
โ””โ”€โ”€ README.md # Main project README

๐Ÿ”ง Environment Configuration

Copy .env.example to .env and configure:
# Required variables (auto-populated by deployment scripts)
AWS_REGION=us-east-1
ENVIRONMENT=dev
ROLE_ARN=arn:aws:iam::YOUR_ACCOUNT_ID:role/buddy-lambda-role
SNS_TOPIC_ARN=arn:aws:sns:us-east-1:YOUR_ACCOUNT_ID:buddy-alerts-dev
LAMBDA_ARN=arn:aws:lambda:us-east-1:YOUR_ACCOUNT_ID:function:buddy-alexa-skill-dev

# DynamoDB tables (auto-populated)
CAREGIVERS_TABLE=BuddyCaregivers-dev
PATIENTS_TABLE=BuddyPatients-dev
ASSIGNMENTS_TABLE=BuddyAssignments-dev
LOGS_TABLE=BuddyConversationLogs-dev

๐Ÿงช Testing

Local Testing

Navigate to skill directory

cd src/alexa-skill

Install dependencies

npm install

Create test event

cat > test-event.json << 'EOF'
{
"version": "1.0",
"session": {
"new": true,
"sessionId": "test-session-001",
"application": { "applicationId": "test-app-id" },
"user": { "userId": "amzn1.ask.account.test" }
},
"context": {
"System": { "user": { "userId": "amzn1.ask.account.test" } }
},
"request": {
"type": "IntentRequest",
"intent": {
"name": "WhoIsIntent",
"slots": { "person": { "name": "person", "value": "Sarah" } }
}
}
}
EOF

Run test

node -e "
const handler = require('./index.js').handler;
const event = require('./test-event.json');
handler(event, {}, (err, result) => {
console.log('Result:', JSON.stringify(result, null, 2));
});
"

CloudWatch Monitoring

View Lambda logs

aws logs tail /aws/lambda/buddy-alexa-skill-dev --follow

Check invocation metrics

aws cloudwatch get-metric-statistics \
--namespace AWS/Lambda \
--metric-name Invocations \
--dimensions Name=FunctionName,Value=buddy-alexa-skill-dev \
--start-time $(date -u -v-1H +%Y-%m-%dT%H:%M:%S) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
--period 60 \
--statistics Sum

https://github.com/whoshotu/-BUDDY Buddy - Voice-First Dementia Care Assistant

AI-powered voice assistant for dementia patients, built for the Amazon Nova AI Hackathon 2026.

๐ŸŽฏ MVP Scope

Alexa Custom Skill - Patient voice interface with Amazon Nova
Caregiver Dashboard - Web interface for managing patient knowledge base
3-Level Safety Escalation - Smart alerts via Amazon SNS SMS
Core Use Cases: Routine guidance, family recognition, medication reminders

๐Ÿ—๏ธ Architecture

Patient Device (Alexa)
โ†“
AWS Lambda (Alexa Skill Handler)
โ†“ (bidirectional streaming)
Amazon Bedrock Nova 2 Sonic (speech-to-speech)
โ†“ (tool calls)
Nova 2 Lite Agentic Workflow
โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ DynamoDB โ”‚ RAG Query โ”‚ Safety Gate โ”‚
โ”‚(Knowledge โ”‚ (Patient โ”‚(Escalation โ”‚
โ”‚ Base) โ”‚ Context) โ”‚ Logic) โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ†“
Caregiver Alert (SMS/SNS) or Emergency Assist

๐Ÿš€ Quick Start

Prerequisites

AWS CLI configured (aws configure)
AWS Account with Nova access
Node.js 18+ (for Lambda deployment)
Python 3.9+ (for infrastructure scripts)

Phase 1: Deploy Infrastructure

# Deploy DynamoDB tables and seed data
./deploy.sh --environment dev --region us-east-1
This creates:
BuddyCaregivers-dev - Login credentials and notification preferences
BuddyPatients-dev - Patient profiles, routines, medications, people
BuddyAssignments-dev - Caregiver-patient relationship mapping
BuddyConversationLogs-dev - Conversation history (90-day TTL)
Test Credentials:
Username: caregiver_test
Password: Demo2026!
Patient: John Doe

Phase 2: Deploy Alexa Skill

1. Configure Environment

Copy environment template

cp .env.example .env

Edit .env with your AWS values

nano .env

2. Deploy Lambda Function

Deploy the Alexa skill Lambda
./deploy-lambda.sh --environment dev --region us-east-1
This creates:
Lambda function buddy-alexa-skill-dev
Alexa Skills Kit trigger configured
Environment variables for DynamoDB tables
Save the Lambda ARN - you'll need it for the Alexa Developer Console.

3. Configure Alexa Developer Console

Click "Create Skill"
Skill Name: "Buddy - Dementia Care Assistant"
Choose a model: Custom
Choose a method: Provision your own
Click "Create Skill"
Interaction Model:
Click on "JSON Editor" (left sidebar)
Delete the default content
Copy the contents of src/alexa-skill/models/en-US.json and paste it in
Click "Save Model" then "Build Model"
Endpoint Configuration:
Go to "Endpoint" (left sidebar)
Select "AWS Lambda ARN"
Paste your Lambda ARN from deployment
Click "Save Endpoints"
Account Linking (Optional):
Go to "Account Linking" (left sidebar)
Configure if you want user authentication
Test:
Go to "Test" tab
Enable testing for your skill
Test: "Alexa, open Buddy Assistant"

4. Test Your Skill

# Test commands
"What do I do this morning?"
"Who is Sarah?"
"What do I take after breakfast?"

# Safety tests
"I'm scared" (repeat 4 times for Level 1 alert)
"I fell down" (immediate Level 2 alert)

Phase 3: Refinement & Monitoring (Optional)

Deploy Nova Sonic WebSocket API for advanced speech-to-speech
./scripts/deploy-websocket.sh --environment dev --region us-east-1

Deploy CloudWatch monitoring dashboard

./scripts/deploy-monitoring.sh --environment dev --region us-east-1
Nova Sonic Features:
Bidirectional streaming with barge-in support
Natural turn-taking and adaptive speech
WebSocket API for real-time conversations
Hybrid mode (traditional skill + Nova Sonic)
Emergency Assist Features:
Level 2 emergency protocol with location sharing
30-minute emergency session persistence
Dual notification system (SNS + SMS)
Real-time caregiver updates

Phase 4: Caregiver Dashboard

Start the React dashboard
cd src/caregiver-dashboard
npm install
npm run dev

Open

http://localhost:3000
Dashboard Features:
Patient profile overview
Real-time conversation monitoring
Safety alert management
Emergency contact information

Phase 5: Testing Without Alexa Device

Test Lambda function directly

cd test
./test-lambda.sh

This simulates Alexa requests and tests emergency flow

See Testing Guide for comprehensive test scenarios.

๐Ÿ“ Project Structure

buddy/
โ”œโ”€โ”€ docs/ # Documentation
โ”‚ โ”œโ”€โ”€ README.md # Documentation index
โ”‚ โ”œโ”€โ”€ EXECUTIVE_SUMMARY.md # Project overview
โ”‚ โ”œโ”€โ”€ ARCHITECTURE.md # System design
โ”‚ โ”œโ”€โ”€ API.md # API reference
โ”‚ โ”œโ”€โ”€ DEMO_SCRIPT.md # Demo guide
โ”‚ โ”œโ”€โ”€ PRD.md # Product requirements
โ”‚ โ”œโ”€โ”€ SETUP.md # Installation guide
โ”‚ โ”œโ”€โ”€ DEPLOYMENT.md # Deployment strategies
โ”‚ โ”œโ”€โ”€ EMERGENCY.md # Emergency features
โ”‚ โ”œโ”€โ”€ BETA_TESTING.md # Testing procedures
โ”‚ โ””โ”€โ”€ DYNAMODB_OPTIMIZATION.md # Performance guide
โ”‚
โ”œโ”€โ”€ infrastructure/ # CloudFormation templates
โ”‚ โ”œโ”€โ”€ dynamodb.yaml # DynamoDB tables
โ”‚ โ”œโ”€โ”€ websocket-api.yaml # WebSocket API
โ”‚ โ”œโ”€โ”€ monitoring.yaml # CloudWatch dashboards
โ”‚ โ””โ”€โ”€ seed_data.py # Test data
โ”‚
โ”œโ”€โ”€ src/
โ”‚ โ”œโ”€โ”€ alexa-skill/ # Lambda function
โ”‚ โ”‚ โ”œโ”€โ”€ index.js
โ”‚ โ”‚ โ”œโ”€โ”€ skill.json
โ”‚ โ”‚ โ”œโ”€โ”€ models/
โ”‚ โ”‚ โ”œโ”€โ”€ package.json
โ”‚ โ”‚ โ””โ”€โ”€ tests/ # Unit tests
โ”‚ โ”‚
โ”‚ โ”œโ”€โ”€ caregiver-dashboard/ # React web interface
โ”‚ โ”‚ โ”œโ”€โ”€ src/
โ”‚ โ”‚ โ”œโ”€โ”€ package.json
โ”‚ โ”‚ โ””โ”€โ”€ README.md
โ”‚ โ”‚
โ”‚ โ””โ”€โ”€ nova-sonic-websocket/ # Advanced speech-to-speech
โ”‚ โ”œโ”€โ”€ index.js
โ”‚ โ”œโ”€โ”€ test-client.html
โ”‚ โ””โ”€โ”€ README.md
โ”‚
โ”œโ”€โ”€ scripts/ # Deployment scripts
โ”‚ โ”œโ”€โ”€ deploy.sh
โ”‚ โ”œโ”€โ”€ deploy-iam.sh
โ”‚ โ”œโ”€โ”€ deploy-lambda.sh
โ”‚ โ”œโ”€โ”€ deploy-websocket.sh
โ”‚ โ”œโ”€โ”€ deploy-monitoring.sh
โ”‚ โ””โ”€โ”€ verify.sh
โ”‚
โ”œโ”€โ”€ test/ # Test suite
โ”‚ โ”œโ”€โ”€ test-lambda.sh
โ”‚ โ””โ”€โ”€ test-lambda.js
โ”‚
โ”œโ”€โ”€ demo/ # Demo materials
โ””โ”€โ”€ README.md # Main project README

๐Ÿ”ง Environment Configuration

Copy .env.example to .env and configure:
# Required variables (auto-populated by deployment scripts)
AWS_REGION=us-east-1
ENVIRONMENT=dev
ROLE_ARN=arn:aws:iam::YOUR_ACCOUNT_ID:role/buddy-lambda-role
SNS_TOPIC_ARN=arn:aws:sns:us-east-1:YOUR_ACCOUNT_ID:buddy-alerts-dev
LAMBDA_ARN=arn:aws:lambda:us-east-1:YOUR_ACCOUNT_ID:function:buddy-alexa-skill-dev

# DynamoDB tables (auto-populated)
CAREGIVERS_TABLE=BuddyCaregivers-dev
PATIENTS_TABLE=BuddyPatients-dev
ASSIGNMENTS_TABLE=BuddyAssignments-dev
LOGS_TABLE=BuddyConversationLogs-dev

๐Ÿงช Testing

Local Testing

Navigate to skill directory

cd src/alexa-skill

Install dependencies

npm install

Create test event

cat > test-event.json << 'EOF'
{
"version": "1.0",
"session": {
"new": true,
"sessionId": "test-session-001",
"application": { "applicationId": "test-app-id" },
"user": { "userId": "amzn1.ask.account.test" }
},
"context": {
"System": { "user": { "userId": "amzn1.ask.account.test" } }
},
"request": {
"type": "IntentRequest",
"intent": {
"name": "WhoIsIntent",
"slots": { "person": { "name": "person", "value": "Sarah" } }
}
}
}
EOF

Run test

node -e "
const handler = require('./index.js').handler;
const event = require('./test-event.json');
handler(event, {}, (err, result) => {
console.log('Result:', JSON.stringify(result, null, 2));
});
"

CloudWatch Monitoring

View Lambda logs

aws logs tail /aws/lambda/buddy-alexa-skill-dev --follow

Check invocation metrics

aws cloudwatch get-metric-statistics \
--namespace AWS/Lambda \
--metric-name Invocations \
--dimensions Name=FunctionName,Value=buddy-alexa-skill-dev \
--start-time $(date -u -v-1H +%Y-%m-%dT%H:%M:%S) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%S) \
--period 60 \
--statistics Sum

๐Ÿ”’ Security

Encryption: DynamoDB SSE (AES-256) at rest, TLS 1.2+ in transit
Authentication: JWT tokens (1-hour expiry) for caregiver API
Authorization: Caregivers can only access their assigned patients
Data Minimization: No audio stored, only text transcripts
Retention: 90-day auto-deletion of conversation logs (DynamoDB TTL)
IAM: Least-privilege access with table-specific permissions

๐Ÿ“… Project Timeline

Phase 1 (Jan 20-26): Core Infrastructure โœ…
DynamoDB tables deployed
IAM roles created
Seed data inserted
Phase 2 (Jan 27-Feb 2): Alexa Skill Implementation โœ…
Lambda function with Nova integration
Safety escalation system
SNS SMS alerts
Intent handlers for routines, medications, family
Phase 3 (Feb 3-7): Refinement โœ…
Nova Sonic speech-to-speech integration with WebSocket API
Enhanced Emergency Assist with location sharing and 30-min session
CloudWatch monitoring dashboard and alarms
Conversation logging and analytics
Phase 4 (Feb 1-7): Caregiver Dashboard โœ…
React dashboard with patient monitoring
Web UI implementation
API documentation
Edge case handling
Phase 5 (Mar 6-16): Demo & Submission โœ…
Demo video production
Devpost submission
Documentation polish
Test credentials for judges

๐Ÿ“š Documentation

Product Requirements Document - Full feature specification
Database Schema - DynamoDB design and access patterns
Alexa Skill README - Skill-specific documentation
Monitoring Guide - CloudWatch and safety monitoring

๐Ÿค Contributing

This is a hackathon project. For issues or improvements, please:
Check existing issues first
Create a new issue with detailed description
Submit pull requests with clear commit messages

๐Ÿ“ License

MIT License - Amazon Nova AI Hackathon 2026
Status: 100% COMPLETE โœ… - Ready for Submission

๐Ÿ”’ Security

Encryption: DynamoDB SSE (AES-256) at rest, TLS 1.2+ in transit
Authentication: JWT tokens (1-hour expiry) for caregiver API
Authorization: Caregivers can only access their assigned patients
Data Minimization: No audio stored, only text transcripts
Retention: 90-day auto-deletion of conversation logs (DynamoDB TTL)
IAM: Least-privilege access with table-specific permissions

๐Ÿ“… Project Timeline

Phase 1 (Jan 20-26): Core Infrastructure โœ…
DynamoDB tables deployed
IAM roles created
Seed data inserted
Phase 2 (Jan 27-Feb 2): Alexa Skill Implementation โœ…
Lambda function with Nova integration
Safety escalation system
SNS SMS alerts
Intent handlers for routines, medications, family
Phase 3 (Feb 3-7): Refinement โœ…
Nova Sonic speech-to-speech integration with WebSocket API
Enhanced Emergency Assist with location sharing and 30-min session
CloudWatch monitoring dashboard and alarms
Conversation logging and analytics
Phase 4 (Feb 1-7): Caregiver Dashboard โœ…
React dashboard with patient monitoring
Web UI implementation
API documentation
Edge case handling
Phase 5 (Mar 6-16): Demo & Submission โœ…
Demo video production
Devpost submission
Documentation polish
Test credentials for judges

๐Ÿ“š Documentation

Product Requirements Document - Full feature specification
Database Schema - DynamoDB design and access patterns
Alexa Skill README - Skill-specific documentation
Monitoring Guide - CloudWatch and safety monitoring

๐Ÿค Contributing

This is a hackathon project. For issues or improvements, please:
Check existing issues first
Create a new issue with detailed description
Submit pull requests with clear commit messages

๐Ÿ“ License

MIT License - Amazon Nova AI Hackathon 2026
Status: 100% COMPLETE โœ… - Ready for Submission
Like this project

Posted Jun 17, 2026

Developed Buddy, a voice-first dementia care assistant for Amazon hackathon.

Likes

1

Views

0

Timeline

Jan 19, 2026 - Mar 15, 2026

Clients

Amazon