Esta aplicación interactiva fue desarrollada en R Shiny siguiendo una arquitectura MVC para conectarse a una base de datos SQL Server (Northwind) y consumir datos desde la vista Invoices. Su objetivo es visualizar información clave de las facturas, permitiendo filtrar, analizar y explorar datos mediante:
- Gráficas dinámicas (Plotly)
- Tablas interactivas (DT)
- Indicadores descriptivos
- Filtros interactivos
Desarrollar una aplicación interactiva en R Shiny que se conecte a una base de datos SQL Server, lea la vista Invoices, y genere:
- Gráficas dinámicas
- Tablas interactivas
- Indicadores cuantitativos
para visualizar información relevante sobre las facturas del modelo Northwind.
| Carpeta / Archivo | Función |
|---|---|
| app.R | Archivo principal que inicializa la aplicación (carga UI y server). |
| global.R | Contiene librerías, configuración y la función obtener_datos() que realiza la consulta a SQL Server. |
| /ui/ui.R | Implementa toda la interfaz gráfica (vista). |
| /server/server.R | Contiene la lógica del servidor (controlador): filtros, cálculos, renderización de tabla y gráficos. |
| conexion_simulada.R | Archivo auxiliar con valores ficticios de conexión para fines académicos. |
| README.md | Documento explicativo del proyecto. |
library(shiny)
library(DBI)
library(odbc)
library(dplyr)
library(DT)
library(plotly)
library(bslib)
library(shinyjs)La conexión se realiza mediante:
- odbc() para comunicarse con SQL Server
- DBI para ejecutar la consulta
- Vista utilizada: Invoices
La función obtener_datos():
- Establece conexión con SQL Server
- Ejecuta un
SELECTsobre columnas relevantes - Desconecta de forma segura
Ejemplo de consulta utilizada:
SELECT
OrderID,
CustomerName,
OrderDate,
ShippedDate,
ShipCountry,
ProductName,
Quantity,
UnitPrice,
Discount,
ExtendedPrice
FROM InvoicesDesarrollada en /ui/ui.R con:
-
Tema visual Flatly de bslib
-
Filtros:
- Rango de fechas
- País del cliente
-
Dos pestañas:
-
📈 Resumen general
- Indicadores descriptivos
- Ventas por país
- Evolución mensual de ingresos
-
🧾 Detalle de facturas
- Tabla DT con paginación, filtros y estilo accesible
-
Incluye estilos personalizados y mensajes de estado como:
⏳ Cargando datos…✅ Datos actualizados correctamente.
Ubicada en /server/server.R, incluye:
-
Eventos reactivos para recargar datos
-
Filtrado por fecha y país
-
Cálculo de métricas:
- Total de facturas
- Clientes únicos
- Valor total
- Promedio por factura
-
Formateo de columnas:
- Fecha →
"día mes año"(ej. 04 Jul 2022) - Descuento y Total → redondeados a 2 decimales
- Fecha →
-
Visualizaciones interactivas con Plotly
-
Tabla DT estilizada y accesible
-
Paleta institucional:
- Azul principal:
#007AC7 - Violeta secundario:
#AD5AB8
- Azul principal:
-
Tabla accesible:
- Hover destacado
- Búsqueda visible
- Bordes suaves
-
Gráficas responsivas
-
Textos descriptivos y centrados
-
Botón de actualización accesible
/ProyectoShiny/
│── app.R
│── global.R
│── conexion_simulada.R
│── /ui/ui.R
└── /server/server.R
- File → Open Project
- Seleccionar la carpeta del proyecto
En la consola de R:
shiny::runApp()La aplicación se abrirá automáticamente en:
http://127.0.0.1:xxxx
- Ana Ulate
- Irella León
- Álvaro Chaverri
Universidad Técnica Nacional – Sede Regional San Carlos Curso: Minería de Datos (ISW911) Profesor: Freddy Rocha Boza Fecha de entrega: 14 de noviembre de 2025
Proyecto realizado con fines académicos.
No contiene credenciales reales; la conexión es simulada mediante conexion_simulada.R.
El código puede ser reutilizado para fines educativos o demostrativos.