Implementados 5 módulos de analytics con agent swarm: 1. DASHBOARD ADMINISTRATIVO - Resumen ejecutivo (reservas, ingresos, usuarios) - Vista del día con alertas - Calendario semanal de ocupación 2. MÉTRICAS DE OCUPACIÓN - Ocupación por fecha, cancha, franja horaria - Horas pico (top 5 demandados) - Comparativa entre períodos - Tendencias de uso 3. MÉTRICAS FINANCIERAS - Ingresos por período, cancha, tipo - Métodos de pago más usados - Estadísticas de reembolsos - Tendencias de crecimiento - Top días de ingresos 4. MÉTRICAS DE USUARIOS - Stats generales y actividad - Top jugadores (por partidos/victorias/puntos) - Detección de churn (riesgo de abandono) - Tasa de retención - Crecimiento mensual 5. EXPORTACIÓN DE DATOS - Exportar a CSV (separado por ;) - Exportar a JSON - Exportar a Excel (múltiples hojas) - Reportes completos descargables Endpoints nuevos (solo admin): - /analytics/dashboard/* - /analytics/occupancy/* - /analytics/revenue/* - /analytics/reports/* - /analytics/users/* - /analytics/exports/* Dependencias: - xlsx - Generación de archivos Excel Utilidades: - Cálculo de crecimiento porcentual - Formateo de moneda - Agrupación por fechas - Relleno de fechas faltantes
2.6 KiB
2.6 KiB
Integración de Analytics y Exportación
Resumen
Esta fase (5.3) implementa el sistema de métricas de usuarios y exportación de datos para la App Padel.
Archivos Creados
Servicios
src/services/analytics/userAnalytics.service.ts- Métricas y análisis de usuariossrc/services/analytics/export.service.ts- Exportación de datossrc/services/analytics/index.ts- Exportaciones
Controladores
src/controllers/analytics/userAnalytics.controller.ts- Controladores de métricassrc/controllers/analytics/export.controller.ts- Controladores de exportaciónsrc/controllers/analytics/index.ts- Exportaciones
Rutas
src/routes/analytics.routes.ts- Definición de rutas
Utilidades
src/utils/export.ts- Funciones utilitarias para exportación
Tipos
src/types/analytics.types.ts- Definiciones de TypeScript
Constantes
src/constants/export.constants.ts- Enumeraciones y constantes
Instalación de Dependencias
npm install xlsx
Integración en App Principal
import express from 'express';
import analyticsRoutes from './routes/analytics.routes';
const app = express();
// ... otras rutas ...
// Rutas de analytics (proteger con middleware de admin)
app.use('/analytics', authenticate, requireAdmin, analyticsRoutes);
Endpoints Disponibles
Usuarios
GET /analytics/users/overview- Estadísticas generalesGET /analytics/users/activity?startDate=2024-01-01&endDate=2024-01-31- ActividadGET /analytics/users/top-players?limit=10&by=matches- Top jugadoresGET /analytics/users/churn-risk- Usuarios en riesgoGET /analytics/users/retention?startDate=2024-01-01&endDate=2024-06-30- RetenciónGET /analytics/users/growth?months=6- Crecimiento
Exportación
GET /analytics/exports/bookings?startDate=2024-01-01&endDate=2024-01-31&format=csv- ReservasGET /analytics/exports/users?format=csv&level=3.5- UsuariosGET /analytics/exports/payments?startDate=2024-01-01&endDate=2024-01-31- PagosGET /analytics/exports/tournaments/:id?format=csv- Resultados de torneoGET /analytics/exports/excel-report?startDate=2024-01-01&endDate=2024-01-31- Reporte Excel
Formatos de Exportación
csv- Archivo CSV separado por punto y coma (optimizado para Excel español)json- Archivo JSON formateadoexcel- Archivo Excel (.xlsx) con múltiples hojas
Notas
- Todos los endpoints requieren autenticación de administrador
- Las fechas deben estar en formato ISO 8601
- Las exportaciones CSV usan punto y coma (;) como separador
- Para grandes volúmenes de datos, considerar implementar paginación o streaming