Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/interezante456-pixel/Miercoles-Proyecto/llms.txt

Use this file to discover all available pages before exploring further.

El Dashboard es la pantalla central de Tiendas Mi Cholo. Al iniciar sesión, cualquier usuario autenticado accede a un resumen ejecutivo del negocio: cuánto se vendió hoy, cuántos productos tienen stock bajo, cuántas compras siguen pendientes de recepción y una gráfica de ventas mensuales para el año en curso. Todos los datos provienen de una sola llamada al backend y se recargan automáticamente al montar el componente.

KPIs del Dashboard

El backend consolida los indicadores en un único endpoint y los devuelve como un objeto JSON. La interfaz Angular renderiza cada valor en una tarjeta con ícono y etiqueta.

ventasHoy

Monto total (S/) facturado en el día calendario actual. Suma únicamente ventas con estado COMPLETADA.

totalVentas

Cantidad total de registros en la tabla ventas desde el inicio de operaciones.

totalProductos

Conteo total de registros en la tabla productos (incluye productos activos e inactivos).

totalClientes

Conteo total de registros en la tabla clientes.

comprasPendientes

Órdenes de compra con estado PENDIENTE que aún no han sido recibidas en almacén.

alertasStock

Conteo numérico de productos donde stockActual <= stockMinimo. El campo productosStockBajo contiene la lista detallada.
Además de los KPIs anteriores, el endpoint devuelve dos estructuras adicionales:
CampoTipoDescripción
ventasPorMesMap<Integer, BigDecimal>Monto vendido por mes (1–12) para el año en curso
productosPorCategoriaArrayConteo de productos agrupados por categoría

Endpoint de Estadísticas

GET /api/dashboard/stats
Authorization: Bearer <token>
Respuesta 200 OK:
{
  "ventasHoy": 15750.00,
  "totalVentas": 87,
  "totalProductos": 48,
  "totalClientes": 120,
  "comprasPendientes": 2,
  "productosStockBajo": [
    {
      "id": 3,
      "nombre": "Mouse Logitech M185",
      "stockActual": 2,
      "stockMinimo": 10
    },
    {
      "id": 7,
      "nombre": "Cable HDMI 2m",
      "stockActual": 0,
      "stockMinimo": 5
    }
  ],
  "alertasStock": 2,
  "ventasPorMes": {
    "1": 0.00,
    "2": 0.00,
    "3": 12400.00,
    "4": 31800.00,
    "5": 19500.00,
    "6": 0.00,
    "7": 0.00,
    "8": 0.00,
    "9": 0.00,
    "10": 0.00,
    "11": 0.00,
    "12": 0.00
  },
  "productosPorCategoria": [
    { "categoria": "Electrónica", "cantidad": 18 },
    { "categoria": "Abarrotes",   "cantidad": 30 }
  ]
}

Control de Acceso

RolPuede ver el Dashboard
ADMIN
VENDEDOR
ALMACENERO
El endpoint /api/dashboard/stats es accesible para cualquier usuario autenticado. No se requiere un rol específico; basta con incluir el header Authorization: Bearer <token>.

Gráfica de Ventas Mensuales

El componente Angular recibe el mapa ventasPorMes y dibuja un gráfico de barras con los 12 meses del año. Las barras se escalan proporcionalmente al mes con mayor monto. Los meses sin ventas muestran la barra vacía. El año que se muestra corresponde al año en curso en el servidor (LocalDateTime.now().getYear()).

Accesos Rápidos

Desde el Dashboard el usuario puede navegar directamente a:
  • Nueva Venta/ventas/nueva
  • Clientes/clientes
  • Productos/productos
  • Nueva Compra/compras/nueva
  • Inventario/inventario
  • Reportes PDF/reportes
Cuando alertasStock > 0, el dashboard muestra la sección “Productos con Stock Bajo” con una barra de progreso por producto. La barra se vuelve roja (critical) si stockActual === 0. Usa esta sección como punto de entrada diario para identificar qué productos necesitan reordenarse. Puedes hacer clic en “Ver todo” para ir directamente al módulo de Inventario y revisar el historial de movimientos.

Build docs developers (and LLMs) love