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 managerdeploy-db.ps1- PowerShell interface for Windows userspackage.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 guideENRICHED_CASES_README.md- Detailed documentation for enriched cases
π Quick Startβ
Windows PowerShell (Recommended)β
# 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β
| Command | Description | Data Impact |
|---|---|---|
status | Show current database state | Read-only |
reset | Full reset + deploy enriched data | β οΈ Deletes all data |
deploy | Deploy enriched sample cases | β οΈ Cleans existing cases |
clean | Clean database only | β οΈ Deletes collections |
clean-storage | Clean storage only | β οΈ Deletes uploaded files |
users | Add/update users only | Minimal 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 storagesharp- Image optimization and conversion
π Detailed Usageβ
1. Check Database Statusβ
.\deploy-db.ps1 status
Shows current document counts and case details.
2. Deploy Enriched Cases (Recommended)β
.\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
π― Recommended Workflowβ
For Developmentβ
- Initial Setup:
.\deploy-db.ps1 reset -Force - Regular Updates:
.\deploy-db.ps1 deploy - Check State:
.\deploy-db.ps1 status
For Testing AI Improvementsβ
- Before Changes:
.\deploy-db.ps1 status(document current state) - Deploy Enhanced Data:
.\deploy-db.ps1 deploy - Test Conversations: Verify AI responses are specific and non-repetitive
- Verify Improvements: Check that responses mention specific medical conditions
For Production Preparationβ
- Clean Deploy:
.\deploy-db.ps1 reset -Force - Verify:
.\deploy-db.ps1 status - 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?β
- Check Status:
.\deploy-db.ps1 status - Verbose Mode:
.\deploy-db.ps1 deploy -Verbose - Review Logs: Check console output for specific error messages
- Documentation: Read
ENRICHED_CASES_README.mdfor 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β
- Test Frontend: Check that cases display correctly with optimized images
- Test AI Agent: Try conversations about specific medical conditions
- Verify Images: Ensure all case images load properly
- 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,-dPath 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,-dPath 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 installin the scripts directory)
Notesβ
- You can still use the original
db-manager.jsfor 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!