Skip to content

Interactive R Shiny dashboard connected to a simulated SQL Server (Northwind database). Developed for the Data Mining course (ISW911) at Universidad Técnica Nacional.

Notifications You must be signed in to change notification settings

aulate-dev/shiny-sql-northwind-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 Laboratorio #3 – ShinyApp conectada a SQL Server (Northwind)

🧠 Descripción general

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

🎯 Objetivo del laboratorio

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.


⚙️ Estructura del proyecto (Arquitectura MVC)

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.

📦 Dependencias utilizadas

library(shiny)
library(DBI)
library(odbc)
library(dplyr)
library(DT)
library(plotly)
library(bslib)
library(shinyjs)

🧱 Componentes principales

🔐 Conexión a SQL Server (global.R)

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 SELECT sobre columnas relevantes
  • Desconecta de forma segura

Ejemplo de consulta utilizada:

SELECT 
  OrderID,
  CustomerName,
  OrderDate,
  ShippedDate,
  ShipCountry,
  ProductName,
  Quantity,
  UnitPrice,
  Discount,
  ExtendedPrice
FROM Invoices

🖥️ Interfaz de Usuario (UI)

Desarrollada en /ui/ui.R con:

  • Tema visual Flatly de bslib

  • Filtros:

    • Rango de fechas
    • País del cliente
  • Dos pestañas:

    1. 📈 Resumen general

      • Indicadores descriptivos
      • Ventas por país
      • Evolución mensual de ingresos
    2. 🧾 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.

🧠 Lógica del Servidor (server)

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
  • Visualizaciones interactivas con Plotly

  • Tabla DT estilizada y accesible


🎨 Aspectos de diseño y accesibilidad

  • Paleta institucional:

    • Azul principal: #007AC7
    • Violeta secundario: #AD5AB8
  • Tabla accesible:

    • Hover destacado
    • Búsqueda visible
    • Bordes suaves
  • Gráficas responsivas

  • Textos descriptivos y centrados

  • Botón de actualización accesible


▶️ Instrucciones de ejecución

1. Colocar la estructura del proyecto así:

/ProyectoShiny/
│── app.R
│── global.R
│── conexion_simulada.R
│── /ui/ui.R
└── /server/server.R

2. Abrir el proyecto en RStudio

  • File → Open Project
  • Seleccionar la carpeta del proyecto

3. Ejecutar la aplicación

En la consola de R:

shiny::runApp()

La aplicación se abrirá automáticamente en:

http://127.0.0.1:xxxx

👩‍💻 Autores

  • 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


🏁 Licencia y uso

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.

About

Interactive R Shiny dashboard connected to a simulated SQL Server (Northwind database). Developed for the Data Mining course (ISW911) at Universidad Técnica Nacional.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages