feat: Anonimización inicial a ACME Demo
This commit is contained in:
@@ -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:*)"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -695,7 +695,7 @@ Márgenes: 60px laterales, 40px top, 60px bottom
|
|||||||
[Overlay negro 65%]
|
[Overlay negro 65%]
|
||||||
|
|
||||||
BEYOND CX DIAGNOSTIC
|
BEYOND CX DIAGNOSTIC
|
||||||
Air Europa - Informe Ejecutivo
|
ACME Airlines - Informe Ejecutivo
|
||||||
|
|
||||||
14 días de análisis
|
14 días de análisis
|
||||||
€127K ahorro identificado
|
€127K ahorro identificado
|
||||||
@@ -1017,7 +1017,7 @@ font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
|
|||||||
**Etiquetado:**
|
**Etiquetado:**
|
||||||
- Valor numérico al final de cada barra (fuera si cabe, dentro si no)
|
- 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")
|
- 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:**
|
**Ejemplo bueno vs malo:**
|
||||||
|
|
||||||
@@ -1486,7 +1486,7 @@ DATO → COMPARACIÓN → IMPLICACIÓN → ACCIÓN
|
|||||||
|
|
||||||
Ejemplos:
|
Ejemplos:
|
||||||
- Logo_Beyond_v1_Negro.png
|
- Logo_Beyond_v1_Negro.png
|
||||||
- Presentacion_AirEuropa_v2_Final.pptx
|
- Presentacion_ACME_Demo.pptx
|
||||||
- Reporte_BeyondDiagnostic_v3_Draft.pdf
|
- Reporte_BeyondDiagnostic_v3_Draft.pdf
|
||||||
- Icono_Automation_Azul.svg
|
- Icono_Automation_Azul.svg
|
||||||
```
|
```
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -72,3 +72,7 @@ data/client/
|
|||||||
*.sql
|
*.sql
|
||||||
*.dump
|
*.dump
|
||||||
nul
|
nul
|
||||||
|
|
||||||
|
# Datos reales del cliente
|
||||||
|
**/data-real/
|
||||||
|
**/*_real.xlsx
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ Beyond CX Analytics is a Contact Center Analytics Platform that analyzes operati
|
|||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
BeyondCXAnalytics_AE/
|
BeyondCXAnalytics_Demo/
|
||||||
├── backend/
|
├── backend/
|
||||||
│ ├── beyond_api/ # FastAPI REST API
|
│ ├── beyond_api/ # FastAPI REST API
|
||||||
│ ├── beyond_metrics/ # Core metrics calculation library
|
│ ├── beyond_metrics/ # Core metrics calculation library
|
||||||
|
|||||||
143
anonymize-to-acme.ps1
Normal file
143
anonymize-to-acme.ps1
Normal 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
19
config/demo.config.js
Normal 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
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user