DEV Community

MARIELA ESTEFANY RAMOS LOZA
MARIELA ESTEFANY RAMOS LOZA

Posted on

De los datos a la nube: un dashboard de ventas con Streamlit y despliegue automático

Repositorio público: https://github.com/mariela3009/Visualization-Reports-or-Dashboard

Dashboard público: https://ventas360-mariela3009.streamlit.app/

El problema

Una tabla de ventas permite consultar pedidos, pero dificulta detectar tendencias o comparar productos. Este proyecto convierte esa tabla en un dashboard interactivo que responde tres preguntas: ¿cuánto se vendió?, ¿cómo evolucionaron las ventas durante el año? y ¿qué productos aportaron más ingresos?

La aplicación se llama Ventas 360. Incluye filtros de periodo, ciudad y categoría; indicadores de ventas, pedidos, unidades y ticket promedio; gráficos y una descarga de los datos filtrados.

Herramientas y datos

Streamlit construye la interfaz en Python. Pandas transforma y agrupa los registros, mientras Plotly genera gráficos interactivos. GitHub Actions ejecuta las pruebas y Streamlit Community Cloud publica la aplicación desde el repositorio y actualiza el despliegue al cambiar la rama configurada.

Para que el ejemplo sea reproducible y no dependa de información privada, data.py genera 1.200 pedidos ficticios de 2025. Cada registro tiene fecha, producto, categoría, ciudad, unidades e importe en pesos colombianos. La semilla 42 mantiene constantes los datos entre ejecuciones. Las conclusiones del dashboard describen esta simulación, no un negocio real.

Construcción del dashboard

El primer paso es instalar las dependencias y ejecutar la aplicación:

pip install -r requirements.txt
streamlit run app.py
Enter fullscreen mode Exit fullscreen mode

La barra lateral permite seleccionar categorías, ciudades y fechas. Los filtros se combinan y se aplican antes de calcular los indicadores, de modo que los gráficos y la tabla representan el mismo conjunto de pedidos.

Las ventas totales son la suma de los importes; los pedidos corresponden al número de registros, porque cada fila representa un pedido único; las unidades son la suma de cantidades. El ticket promedio se calcula dividiendo las ventas entre los pedidos.

ventas_totales = vista.venta.sum()
pedidos = len(vista)
ticket_promedio = ventas_totales / pedidos
Enter fullscreen mode Exit fullscreen mode

La aplicación comprueba primero que haya resultados. Cuando una selección no contiene pedidos, muestra un mensaje para ajustar los filtros en lugar de calcular indicadores vacíos.

El gráfico de líneas agrupa las ventas por mes para mostrar la evolución. Las barras comparan los ingresos por producto y el gráfico de dona presenta la participación por categoría. Una tabla permite inspeccionar los pedidos; el botón de descarga exporta exactamente la selección visible.

Dashboard publicado

Repositorio público

El repositorio incluye app.py, data.py, requirements.txt, las pruebas y el workflow. El README explica cómo instalar, ejecutar y desplegar. También conserva un Dockerfile para otros proveedores. Streamlit Community Cloud se conecta a GitHub mediante la autorización de la cuenta; no se incluyen credenciales en el código.

Repositorio: https://github.com/mariela3009/Visualization-Reports-or-Dashboard.

Despliegue mediante automatización

El workflow se activa al actualizar main, al abrir un pull request o mediante ejecución manual. Primero instala las dependencias y ejecuta pruebas de reproducibilidad de los datos, arranque de la aplicación, selección de categoría y filtros sin resultados.

La publicación se configura en Streamlit Community Cloud con el repositorio mariela3009/Visualization-Reports-or-Dashboard, la rama main y el archivo app.py. El proveedor instala las dependencias de requirements.txt y ejecuta el dashboard.

GitHub Actions y el despliegue del proveedor son procesos independientes: Community Cloud observa los cambios de la rama y actualiza la aplicación automáticamente; no espera a que Actions termine. Para exigir pruebas antes de integrar cambios, el equipo puede configurar protección de rama y trabajar mediante pull requests. La validación de esta entrega requiere comprobar las pruebas y el funcionamiento de la URL pública.

Ejecución de pruebas exitosa. La leyenda «Publicado en Streamlit Community Cloud · Actualización automática desde GitHub» apareció en la aplicación remota tras enviar el cambio a main, comprobando el despliegue automático.

Una demostración de la automatización consiste en modificar el título, subir el cambio a main y observar su aparición en la aplicación pública después del despliegue. Esa evidencia permite comprobar que las actualizaciones no requieren copiar archivos manualmente al proveedor.

Resultado del conjunto de datos

Sin aplicar filtros, los datos generados contienen 1.200 pedidos, 3.656 unidades y ventas por $1.980.275.000 COP. El ticket promedio es $1.650.229,17 COP. Estos valores sirven para comprobar que el dashboard reproduce los cálculos del conjunto simulado; no representan resultados comerciales reales.

Publicación y resultado

Aplicación: https://ventas360-mariela3009.streamlit.app/

El video del proceso se añadirá a este artículo cuando esté publicado.

El 4 de octubre de 2026 se verificó la aplicación remota: mostró 1.200 pedidos, 3.656 unidades y $1.980.275.000 COP de ventas. Para comprobar las actualizaciones automáticas se agregó una leyenda sobre el proveedor y se envió el cambio a main.

El proyecto ofrece una ruta reproducible desde una tabla hasta una aplicación de visualización. Como mejoras futuras se pueden incorporar archivos propios, comparaciones entre periodos y validaciones de calidad de datos. Cualquier uso con datos reales exigiría adaptar el modelo y revisar quién puede acceder a la información.

Documentación consultada

Top comments (0)