# US-MMD001-009: Ver Dashboard de Uso del Sistema

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | US-MMD001-009 |
| **Epica** | EPIC-MMD-001 - Fundamentos |
| **Modulo** | fundamentos |
| **Prioridad** | P2 |
| **Story Points** | 3 |
| **Sprint** | Sprint 2 |
| **Estado** | Backlog |
| **Asignado a** | Por asignar |

---

## Historia de Usuario

**Como** administrador del taller,
**quiero** ver un dashboard con metricas de uso del sistema,
**para** entender como se esta utilizando y detectar areas de mejora.

## Descripcion Detallada

El dashboard de uso muestra metricas basicas de adopcion y utilizacion del sistema: usuarios activos, ordenes procesadas, modulos mas usados, etc. Esto ayuda al administrador a evaluar el ROI del sistema.

---

## Criterios de Aceptacion

**Escenario 1: Ver metricas de usuarios**
```gherkin
DADO que accedo al dashboard de uso
CUANDO veo la seccion de usuarios
ENTONCES veo:
  | Metrica | Valor |
  | Usuarios registrados | 8 |
  | Usuarios activos (hoy) | 5 |
  | Usuarios activos (semana) | 7 |
  | Ultimo login | Hace 5 minutos |
```

**Escenario 2: Ver metricas de ordenes**
```gherkin
DADO que veo el dashboard
CUANDO reviso la seccion de ordenes
ENTONCES veo:
  | Metrica | Valor |
  | Ordenes hoy | 12 |
  | Ordenes esta semana | 45 |
  | Ordenes este mes | 180 |
  | Promedio diario | 6 |
```

**Escenario 3: Ver actividad por modulo**
```gherkin
DADO que veo el dashboard
CUANDO reviso uso por modulo
ENTONCES veo grafica de barras con:
  | Modulo | Accesos |
  | Ordenes | 450 |
  | Inventario | 230 |
  | Vehiculos | 180 |
  | Cotizaciones | 95 |
```

**Escenario 4: Filtrar por periodo**
```gherkin
DADO que quiero ver metricas del mes pasado
CUANDO selecciono "Ultimo mes" en el filtro
ENTONCES las metricas se actualizan con datos del mes anterior
```

---

## Metricas a Mostrar

### Usuarios
| Metrica | Descripcion |
|---------|-------------|
| Total registrados | Usuarios en el sistema |
| Activos hoy | Con al menos 1 accion hoy |
| Activos semana | Con al menos 1 accion esta semana |
| Tasa de adopcion | Activos / Registrados |

### Operaciones
| Metrica | Descripcion |
|---------|-------------|
| Ordenes creadas | Total en periodo |
| Ordenes completadas | Cerradas exitosamente |
| Cotizaciones generadas | Total cotizaciones |
| Diagnosticos registrados | Total diagnosticos |

### Sistema
| Metrica | Descripcion |
|---------|-------------|
| Uptime | Disponibilidad del sistema |
| Errores | Errores registrados |
| Tiempo respuesta | Promedio de respuesta API |

---

## Tareas Tecnicas

**Backend:**
- [ ] BE-032: Crear tabla `activity_log` para tracking
- [ ] BE-033: Middleware para registrar actividad
- [ ] BE-034: Endpoint GET /api/analytics/usage
- [ ] BE-035: Queries agregadas para metricas

**Frontend:**
- [ ] FE-029: Crear UsageDashboardPage
- [ ] FE-030: Crear MetricCard component
- [ ] FE-031: Integrar grafica de barras (recharts)
- [ ] FE-032: Selector de periodo

---

## Dependencias

**Depende de:**
- [ ] US-MMD001-001: Configurar taller
- [ ] US-MMD001-002: Configurar roles

**Bloquea:**
- [ ] Ninguno (funcionalidad de monitoreo)

---

## Notas Tecnicas

**Endpoints:**
| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| GET | /api/analytics/usage | Metricas generales |
| GET | /api/analytics/usage/users | Metricas de usuarios |
| GET | /api/analytics/usage/modules | Uso por modulo |

**Estructura activity_log:**
```typescript
interface ActivityLog {
  id: string;
  user_id: string;
  workshop_id: string;
  module: string;
  action: string;
  entity_type?: string;
  entity_id?: string;
  created_at: Date;
}
```

---

## Definition of Done (DoD)

- [ ] Dashboard con metricas basicas
- [ ] Filtro por periodo
- [ ] Graficas de uso
- [ ] Datos en tiempo real
- [ ] Tests pasando

---

**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-06
