Skip to main content

Database Management Scripts

🎯 Overview​

This guide covers the database management scripts for the Toto platform, including seeding sample data, cleaning, auditing, and deploying enriched cases optimized for AI conversation responses.

πŸ“ File Structure​

πŸ”§ Main Scripts​

  • db-manager.js - Unified Node.js database manager
  • deploy-db.ps1 - PowerShell interface for Windows users
  • package.json - Dependencies for the scripts

πŸ“Š Data Files​

  • enriched-sample-cases.json - Rich case data with detailed stories and medical info optimized for AI responses

πŸ“– Documentation​

  • README.md - Comprehensive guide
  • ENRICHED_CASES_README.md - Detailed documentation for enriched cases

πŸš€ Quick Start​

# Check current database status
.\deploy-db.ps1 status

# Deploy enriched cases (recommended)
.\deploy-db.ps1 deploy

# Full reset with enriched data
.\deploy-db.ps1 reset -Force

Direct Node.js Usage​

# Install dependencies
npm install

# Show available commands
node db-manager.js

# Deploy enriched cases
node db-manager.js deploy

# Check status
node db-manager.js status

πŸ“‹ Available Commands​

CommandDescriptionData Impact
statusShow current database stateRead-only
resetFull reset + deploy enriched data⚠️ Deletes all data
deployDeploy enriched sample cases⚠️ Cleans existing cases
cleanClean database only⚠️ Deletes collections
clean-storageClean storage only⚠️ Deletes uploaded files
usersAdd/update users onlyMinimal impact

🎨 Enriched Cases Features​

✨ What Makes These Cases Special​

  • πŸ₯ Specific Medical Details: "Artritis en caderas y codos" instead of generic "necesita ayuda"
  • ⏰ Exact Timeframes: "24 horas", "72 horas", "12 horas" instead of vague urgency
  • 🚫 Anti-Repetition System: No more "segura y transparente" in every AI response
  • πŸ’ Emotional Connection: Unique pet personalities and visual details
  • 🎯 Platform Awareness: No redundant "visita el sitio web" messages
  • πŸ‡¦πŸ‡· Argentine Context: Localized locations and culturally appropriate content

πŸ• Case Examples​

  • Luna: Terrier mix, malnutrition emergency (24h timeframe)
  • Rusty: Pointer mix, abandoned hunting dog, rehabilitation needed
  • Shadow: Shepherd mix, arthritis treatment (72h timeframe)
  • Coal: Labrador mix, behavioral training for protective instincts
  • Daisy: Poodle mix, eye infection emergency (12h critical timeframe)
  • Brutus: Pitbull mix, challenging breed stereotypes
  • Goldie: Golden retriever, lost pet with disorientation
  • Whisper: Greyhound mix, retired racer transitioning to home life
  • Jax: Boxer mix, ear surgery needed (48h timeframe)
  • Granny: Chihuahua mix, senior care needs (24h timeframe)

πŸ› οΈ Prerequisites​

Required Software​

  • Node.js 18+ (20+ recommended)
  • PowerShell 5.1+ (for Windows users)

Required Files​

  • Firebase authentication: Uses default credentials or environment variables
  • Case images in: ../public/sample_cases_images/
  • Enriched cases data: enriched-sample-cases.json

Auto-Installed Dependencies​

  • firebase-admin - Firebase database and auth
  • @google-cloud/storage - Image upload and storage
  • sharp - Image optimization and conversion

πŸ“– Detailed Usage​

1. Check Database Status​

.\deploy-db.ps1 status

Shows current document counts and case details.

.\deploy-db.ps1 deploy

What it does:

  • βœ… Creates demo guardian auth user
  • πŸ—‘οΈ Cleans existing database collections
  • πŸ‘₯ Adds sample users (3 users)
  • πŸ• Processes and uploads 10 enriched cases
  • πŸ–ΌοΈ Optimizes images to WebP format (5 images per case)
  • πŸ“Š Includes realistic medical histories and social metrics

3. Full Reset​

.\deploy-db.ps1 reset -Force

Use when: Starting completely fresh or after major changes What it does: Everything from deploy + cleans storage completely

4. Clean Operations​

.\deploy-db.ps1 clean          # Database only
.\deploy-db.ps1 clean-storage # Storage only

For Development​

  1. Initial Setup: .\deploy-db.ps1 reset -Force
  2. Regular Updates: .\deploy-db.ps1 deploy
  3. Check State: .\deploy-db.ps1 status

For Testing AI Improvements​

  1. Before Changes: .\deploy-db.ps1 status (document current state)
  2. Deploy Enhanced Data: .\deploy-db.ps1 deploy
  3. Test Conversations: Verify AI responses are specific and non-repetitive
  4. Verify Improvements: Check that responses mention specific medical conditions

For Production Preparation​

  1. Clean Deploy: .\deploy-db.ps1 reset -Force
  2. Verify: .\deploy-db.ps1 status
  3. Test All Features: Cases, donations, updates, AI conversations

πŸ€– AI Agent Integration​

The enriched cases are specifically designed to work with the improved DialogAgent:

Before (Generic Responses)​

USER: "ΒΏPor quΓ© Luna es urgente?"
AGENT: "Luna necesita ayuda urgentemente. En Toto podΓ©s donar de forma segura y transparente..."

After (Enriched Cases)​

USER: "ΒΏPor quΓ© Luna es urgente?"
AGENT: "Luna tiene desnutriciΓ³n severa y posible hipotermia. Su peso estΓ‘ 40% por debajo del normal y necesita atenciΓ³n veterinaria en las prΓ³ximas 24 horas para evitar complicaciones fatales."

More Examples​

USER: "ΒΏQuΓ© le pasa a Shadow?"
AGENT: "Shadow sufre artritis en caderas y codos que le causa dolor significativo. Necesita tratamiento en las prΓ³ximas 72 horas para evitar deterioro irreversible de sus articulaciones."

USER: "ΒΏPor quΓ© Daisy es crΓ­tica?"
AGENT: "Daisy tiene infecciones oculares severas que pueden causar pΓ©rdida de visiΓ³n permanente. Es crucial actuar en las prΓ³ximas 12 horas para salvar su vista."

🚨 Troubleshooting​

Common Issues​

1. "enriched-sample-cases.json not found"​

# Check file exists
Test-Path "enriched-sample-cases.json"

2. "Images not found"​

# Check images directory
Get-ChildItem "../public/sample_cases_images" -Filter "*.png"

3. "Sharp installation failed"​

# Manual Sharp installation
npm install --include=optional sharp

4. Permission errors​

# Run as Administrator or check PowerShell execution policy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Debug Mode​

# Verbose output for debugging
.\deploy-db.ps1 deploy -Verbose

πŸ“Š What Gets Created​

Database Collections​

  • users (3 docs): Demo guardian + sample users
  • cases (10 docs): Enriched pet rescue cases with full details
  • updates (auto-generated): Contextual progress updates for each case
  • donations (auto-generated): Realistic donation histories

Storage Structure​

enriched_cases/
β”œβ”€β”€ luna_main.webp # Main case images
β”œβ”€β”€ luna_1.webp # Gallery images
β”œβ”€β”€ luna_2.webp
β”œβ”€β”€ luna_3.webp
β”œβ”€β”€ luna_4.webp
β”œβ”€β”€ rusty_main.webp
β”œβ”€β”€ rusty_1.webp
└── ...

Medical Categories Covered​

  • Malnutrition & Emergency Care: Luna, Daisy
  • Arthritis & Senior Care: Shadow, Granny
  • Behavioral & Training: Coal, Brutus
  • Surgical Needs: Jax (ear surgery)
  • Lost Pet Recovery: Goldie
  • Breed Transitions: Whisper (racing), Rusty (hunting)

πŸ“ž Support​

Need Help?​

  1. Check Status: .\deploy-db.ps1 status
  2. Verbose Mode: .\deploy-db.ps1 deploy -Verbose
  3. Review Logs: Check console output for specific error messages
  4. Documentation: Read ENRICHED_CASES_README.md for detailed case information

Common Success Indicators​

  • βœ… "Operation completed successfully!"
  • βœ… "Added 10 enriched cases"
  • βœ… "Uploaded and optimized: [image]"
  • βœ… "Added 3 users"
  • βœ… Case details showing specific locations and medical conditions

Next Steps After Deployment​

  1. Test Frontend: Check that cases display correctly with optimized images
  2. Test AI Agent: Try conversations about specific medical conditions
  3. Verify Images: Ensure all case images load properly
  4. Test Urgency: Check that timeframes are displayed correctly

🎯 Toto Admin CLI​

This CLI tool manages Firestore and Storage for the Toto platform, including seeding sample data, cleaning, auditing, and deploying enriched cases.

Usage​

Run the CLI from the scripts directory:

node toto-admin.js <command> [options]

Commands​

seed​

Seeds users and enriched sample cases into Firestore.

Options:

  • --data, -d Path to the enriched sample cases JSON file (default: enriched-sample-cases.json)

Example:

node toto-admin.js seed --data enriched-sample-cases.json

clean​

Cleans Firestore collections and Storage buckets used by the platform.

Example:

node toto-admin.js clean

audit​

Audits image references in Firestore against Storage to find orphaned or missing images.

Example:

node toto-admin.js audit

deploy​

Deploys enriched sample cases to Firestore.

Options:

  • --data, -d Path to the enriched sample cases JSON file (default: enriched-sample-cases.json)

Example:

node toto-admin.js deploy --data enriched-sample-cases.json

Data Validation​

The CLI validates the structure of your sample data file before seeding or deploying. If the data does not match the expected schema, the operation will abort with an error.

Requirements​

  • Node.js
  • Firebase Admin SDK credentials (see project setup)
  • All dependencies installed (npm install in the scripts directory)

Notes​

  • You can still use the original db-manager.js for advanced or legacy operations.
  • For more details on enriched sample cases, see ENRICHED_CASES_README.md.

πŸŽ‰ The enriched database management system provides specific, engaging, and medically accurate content optimized for AI conversations and user engagement!