feat: Anonimización inicial a ACME Demo

This commit is contained in:
sujucu70
2026-02-04 11:40:20 +01:00
parent 1bb0765766
commit 3ef6417dfc
6 changed files with 170 additions and 53 deletions

View File

@@ -1,49 +0,0 @@
{
"permissions": {
"allow": [
"Bash(npx tsc:*)",
"Bash(npm run dev:*)",
"Bash(npm install)",
"Bash(pip install:*)",
"Bash(python -m uvicorn:*)",
"Bash(find:*)",
"WebSearch",
"Bash(npm run build:*)",
"Bash(python -c:*)",
"Bash(docker compose:*)",
"Bash(docker-compose down:*)",
"Bash(docker-compose up:*)",
"Bash(uvicorn:*)",
"Bash(curl:*)",
"Bash(pip show:*)",
"Bash(taskkill:*)",
"Bash(netstat:*)",
"Bash(for pid in 24300 31592 16596)",
"Bash(do taskkill /F /PID $pid)",
"Bash(done)",
"Bash(while read pid)",
"Bash(for pid in 24300 24372 31592 16596)",
"Bash(for pid in 31592 24372 29280 24300 16596)",
"Bash(do echo \"=== PID $pid ===\")",
"Bash(tasklist /FI \"PID eq $pid\")",
"Bash(timeout:*)",
"Bash(findstr:*)",
"Bash(powershell -Command \"Get-ChildItem -Path ''C:\\\\Users\\\\sujuc\\\\BeyondCXAnalytics_AE\\\\backend'' -Filter ''*.py'' -Recurse | ForEach-Object { $content = Get-Content $_FullName -Raw -ErrorAction SilentlyContinue; if \\($content -match ''[\\\\U0001F300-\\\\U0001F9FF]''\\) { $_FullName } }\")",
"Bash(set PYTHONIOENCODING=utf-8)",
"Bash(ping:*)",
"Bash(powershell:*)",
"Bash(git -C \"C:\\\\Users\\\\sujuc\\\\BeyondCXAnalytics_AE\" diff backend/beyond_metrics/dimensions/OperationalPerformance.py)",
"Bash(cmd /c \"cd /d C:\\\\Users\\\\sujuc\\\\BeyondCXAnalytics_AE\\\\frontend && npm run build\")",
"Bash(tasklist:*)",
"Bash(cmd //c \"taskkill /PID 976 /F\")",
"Bash(git remote add:*)",
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(git push:*)",
"Bash(git pull:*)",
"Bash(git fetch:*)",
"Bash(git checkout:*)",
"Bash(git merge:*)"
]
}
}

View File

@@ -695,7 +695,7 @@ Márgenes: 60px laterales, 40px top, 60px bottom
[Overlay negro 65%]
BEYOND CX DIAGNOSTIC
Air Europa - Informe Ejecutivo
ACME Airlines - Informe Ejecutivo
14 días de análisis
€127K ahorro identificado
@@ -1017,7 +1017,7 @@ font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
**Etiquetado:**
- Valor numérico al final de cada barra (fuera si cabe, dentro si no)
- Título del gráfico = conclusión (no "Volumen por skill", sí "Reservas genera 45% del volumen total")
- Fuente datos en caption inferior (ej: "Fuente: Datos internos AE, Oct-Dic 2024")
- Fuente datos en caption inferior (ej: "Fuente: Datos demo ACME, Oct-Dic 2024")
**Ejemplo bueno vs malo:**
@@ -1486,7 +1486,7 @@ DATO → COMPARACIÓN → IMPLICACIÓN → ACCIÓN
Ejemplos:
- Logo_Beyond_v1_Negro.png
- Presentacion_AirEuropa_v2_Final.pptx
- Presentacion_ACME_Demo.pptx
- Reporte_BeyondDiagnostic_v3_Draft.pdf
- Icono_Automation_Azul.svg
```

4
.gitignore vendored
View File

@@ -72,3 +72,7 @@ data/client/
*.sql
*.dump
nul
# Datos reales del cliente
**/data-real/
**/*_real.xlsx

View File

@@ -17,7 +17,7 @@ Beyond CX Analytics is a Contact Center Analytics Platform that analyzes operati
## Project Structure
```
BeyondCXAnalytics_AE/
BeyondCXAnalytics_Demo/
├── backend/
│ ├── beyond_api/ # FastAPI REST API
│ ├── beyond_metrics/ # Core metrics calculation library

143
anonymize-to-acme.ps1 Normal file
View File

@@ -0,0 +1,143 @@
# anonymize-to-acme.ps1
# Script para anonimizar BeyondCXAnalytics de Air Europa a ACME Airlines
Write-Host "🔄 Iniciando anonimización a ACME..." -ForegroundColor Cyan
# 1. Crear backup antes de empezar
Write-Host "`n📦 Creando backup..." -ForegroundColor Yellow
$backupBranch = "backup-before-anonymization"
git branch $backupBranch
Write-Host "✓ Backup creado en rama: $backupBranch" -ForegroundColor Green
# 2. Actualizar CLAUDE.md
Write-Host "`n📝 Actualizando CLAUDE.md..." -ForegroundColor Yellow
$claudeMd = Get-Content "CLAUDE.md" -Raw
$claudeMd = $claudeMd -replace "BeyondCXAnalytics_AE", "BeyondCXAnalytics_Demo"
$claudeMd = $claudeMd -replace "# CLAUDE.md - Beyond CX Analytics", "# CLAUDE.md - Beyond CX Analytics - ACME Demo"
$claudeMd | Set-Content "CLAUDE.md" -NoNewline
Write-Host "✓ CLAUDE.md actualizado" -ForegroundColor Green
# 3. Limpiar .claude/settings.local.json
Write-Host "`n🧹 Limpiando configuración de Claude..." -ForegroundColor Yellow
if (Test-Path ".claude/settings.local.json") {
Remove-Item ".claude/settings.local.json" -Force
Write-Host "✓ settings.local.json eliminado (se regenerará automáticamente)" -ForegroundColor Green
}
# 4. Actualizar brand.md
Write-Host "`n🎨 Actualizando brand.md..." -ForegroundColor Yellow
$brandMd = Get-Content ".claude/skills/brand.md" -Raw
$brandMd = $brandMd -replace "Presentacion_AirEuropa_v2_Final.pptx", "Presentacion_ACME_Demo.pptx"
$brandMd = $brandMd -replace "Fuente: Datos internos AE", "Fuente: Datos demo ACME"
$brandMd = $brandMd -replace "Air Europa", "ACME Airlines"
$brandMd = $brandMd -replace " AE,", " ACME,"
$brandMd | Set-Content ".claude/skills/brand.md" -NoNewline
Write-Host "✓ brand.md actualizado" -ForegroundColor Green
# 5. Actualizar referencias en código frontend
Write-Host "`n💻 Actualizando código frontend..." -ForegroundColor Yellow
$execSummary = Get-Content "frontend/components/tabs/ExecutiveSummaryTab.tsx" -Raw
$execSummary = $execSummary -replace "useState<IndustryKey>\('aerolineas'\)", "useState<IndustryKey>('aerolineas') // Demo: ACME Airlines"
$execSummary | Set-Content "frontend/components/tabs/ExecutiveSummaryTab.tsx" -NoNewline
$dimAnalysis = Get-Content "frontend/components/tabs/DimensionAnalysisTab.tsx" -Raw
$dimAnalysis = $dimAnalysis -replace "// v3.11: CPI consistente con Executive Summary - benchmark aerolíneas p50", "// Demo ACME: benchmark aerolíneas p50"
$dimAnalysis = $dimAnalysis -replace "// Benchmark aerolíneas \(p50\)", "// Demo ACME: Benchmark aerolíneas"
$dimAnalysis | Set-Content "frontend/components/tabs/DimensionAnalysisTab.tsx" -NoNewline
Write-Host "✓ Código frontend actualizado" -ForegroundColor Green
# 6. Crear archivo de configuración demo
Write-Host "`n⚙️ Creando configuración demo..." -ForegroundColor Yellow
$configDir = "config"
if (-not (Test-Path $configDir)) {
New-Item -Path $configDir -ItemType Directory | Out-Null
}
@"
// config/demo.config.js
export const DEMO_CONFIG = {
CLIENT_NAME: 'ACME Airlines',
CLIENT_SHORT: 'ACME',
INDUSTRY: 'Aerolíneas',
DATA_SOURCE: 'Datos demo ACME Airlines',
DATE_RANGE: 'Oct-Dic 2024',
DATABASE_NAME: 'BeyondDiagnosisCache_Demo',
SAMPLE_DATA: {
totalQueues: 12,
totalAgents: 150,
avgHandleTime: 285,
satisfactionScore: 4.2,
monthlyVolume: 45000,
queues: ['Reservas', 'Check-in', 'Equipaje', 'Atención al Cliente', 'Ventas', 'Soporte Técnico']
},
API_ENDPOINT: process.env.VITE_API_BASE_URL || '/api',
BRAND_COLOR: '#FF6B35',
LOGO_PATH: '/img/acme-logo.png'
};
export default DEMO_CONFIG;
"@ | Set-Content "config/demo.config.js"
Write-Host "✓ Configuración demo creada" -ForegroundColor Green
# 7. Crear README para datos demo
Write-Host "`n📊 Creando instrucciones para datos..." -ForegroundColor Yellow
@"
# Datos Demo ACME
## Archivos de Datos
- `frontend/data.xlsx` - Reemplazar con datos demo ACME
- `frontend/datos-limpios.xlsx` - Reemplazar con datos demo ACME
## Generación de Datos Sintéticos
1. Usar la estructura exacta de los archivos originales
2. Generar datos ficticios con distribuciones similares
3. Nombres de colas: usar nombres genéricos de aerolínea
4. Métricas: variar alrededor de las medias de la industria
## Imágenes de Pantalla
- `frontend/pantalla-completa 2.png`
- `frontend/screen1.png`
"@ | Set-Content "DATA_DEMO_README.md"
Write-Host "✓ Instrucciones para datos creadas" -ForegroundColor Green
# 8. Actualizar .gitignore
Write-Host "`n🔒 Actualizando .gitignore..." -ForegroundColor Yellow
@"
# Datos reales del cliente
**/data-real/
**/client-data/
**/*_real.xlsx
**/*_cliente.xlsx
.env.production
config/production.js
"@ | Add-Content ".gitignore"
Write-Host "✓ .gitignore actualizado" -ForegroundColor Green
# 9. Commit de cambios
Write-Host "`n💾 Guardando cambios..." -ForegroundColor Yellow
git add .
git commit -m "feat: Anonimización a ACME Airlines Demo
- Actualizado CLAUDE.md con referencias a demo
- Limpiada configuración de Claude
- Actualizado brand.md con datos ACME
- Agregada configuración demo centralizada
- Documentadas instrucciones para datos sintéticos
- Protegido .gitignore contra datos reales"
Write-Host "✓ Cambios commiteados" -ForegroundColor Green
# 10. Resumen final
Write-Host "`n✅ ANONIMIZACIÓN COMPLETADA" -ForegroundColor Green
Write-Host "`n📋 PASOS MANUALES PENDIENTES:" -ForegroundColor Yellow
Write-Host " 1. Reemplazar frontend/data.xlsx con datos demo ACME" -ForegroundColor White
Write-Host " 2. Reemplazar frontend/datos-limpios.xlsx con datos demo ACME" -ForegroundColor White
Write-Host " 3. Reemplazar imágenes de pantalla" -ForegroundColor White
Write-Host " 4. Actualizar README.md" -ForegroundColor White
Write-Host " 5. Revisar manualmente archivos en busca de datos sensibles" -ForegroundColor White
Write-Host "`n💡 TIP: git checkout backup-before-anonymization" -ForegroundColor Cyan

19
config/demo.config.js Normal file
View File

@@ -0,0 +1,19 @@
// config/demo.config.js
export const DEMO_CONFIG = {
CLIENT_NAME: 'ACME Airlines',
CLIENT_SHORT: 'ACME',
INDUSTRY: 'Aerolíneas',
DATA_SOURCE: 'Datos internos ACME',
DATE_RANGE: 'Oct-Dic 2024',
DATABASE_NAME: 'BeyondDiagnosisCache_Demo',
// Datos de ejemplo para el dashboard
SAMPLE_QUEUES: ['Reservas', 'Check-in', 'Baggage', 'Customer Service'],
SAMPLE_METRICS: {
totalAgents: 150,
avgHandleTime: 285,
satisfactionScore: 4.2
monthlyVolume: 45000
}
};