Plataforma de Business Intelligence y Gestión Operacional desarrollada para Empresas Cambiaso. Este repositorio contiene el cliente web (SPA) que permite la visualización de dashboards, gestión de usuarios (RBAC) e ingesta de datos.
IOC Frontend es la interfaz de usuario que conecta a los tomadores de decisiones con los datos de producción. Implementa una arquitectura moderna basada en React 19 y TypeScript, enfocada en la velocidad, seguridad y experiencia de usuario.
- Visualización: Embedding seguro de Dashboards de Metabase mediante JWT firmados.
- Gobernanza: Sistema de gestión de usuarios, roles y permisos (RBAC).
- Ingesta de Datos: Interfaz para carga de archivos ETL con validación en tiempo real.
- Inteligencia Artificial: Integración con Gemini AI para explicaciones narrativas de gráficos vía Streaming.
Basado en la sección 3.1 del Manual Técnico:
- Core: React 19, TypeScript, Vite.
- Estilos: TailwindCSS v4, clsx, tailwind-merge.
- Estado & Data Fetching: TanStack Query (vía Refine Core), Context API.
- Autenticación: Supabase Auth (GoTrue Client).
- Formularios: React Hook Form + Zod (Validación de esquemas).
- Componentes UI: Headless UI, Heroicons, ApexCharts, FullCalendar.
- Testing: Vitest + React Testing Library.
- Node.js v20.x (LTS recomendado)
- npm v10.x+
-
Clonar el repositorio:
git clone https://github.com/tu-org/ioc-frontend.git cd ioc-frontend -
Instalar dependencias:
npm install
-
Configurar Variables de Entorno: Crea un archivo
.enven la raíz del proyecto basándote en el siguiente esquema (NO uses valores reales en producción):# === SUPABASE AUTH === VITE_SUPABASE_URL=https://tu-proyecto.supabase.co VITE_SUPABASE_ANON_KEY=tu-anon-key-publica # === BACKEND API === # Desarrollo: http://localhost:8080 # Producción: https://ioc-backend.onrender.com VITE_API_BASE_URL=http://localhost:8080 # === METABASE CONFIGURATION === VITE_DASHBOARD_GERENCIAL_ID=5 VITE_DASHBOARD_OPERACIONAL_ID=3
-
Ejecutar en Desarrollo:
npm run dev
La aplicación estará disponible en
http://localhost:5173.
src/
├── components/ # 90+ Componentes Reutilizables
│ ├── auth/ # Formularios de Login/Registro
│ ├── admin/ # Paneles de gestión (Usuarios, ETL)
│ ├── common/ # UI Kits (Botones, Modales, Tablas)
│ └── charts/ # Gráficos locales (ApexCharts)
├── pages/ # 28 Vistas de la aplicación
│ ├── Dashboard/ # Vistas principales
│ ├── admin/ # Vistas protegidas de administración
│ └── AuthPages/ # Login, Recovery, etc.
├── hooks/ # Custom Hooks (useAuth, useAiExplanation)
├── services/ # Comunicación con APIs (Axios)
├── context/ # Global State (Auth, Theme, Sidebar)
├── layout/ # Estructura principal (Sidebar + Header)
└── schemas/ # Validaciones Zod
Implementación de rutas protegidas mediante RoleProtectedRoute.
- Admin: Acceso total (Configuración, ETL).
- Gerente: Acceso solo a Dashboards Estratégicos.
- Analista: Acceso a Dashboards Operacionales y descarga de reportes.
El componente DashboardEmbed.tsx gestiona la solicitud de URLs firmadas al backend.
- Renovación automática de tokens.
- Redimensionamiento responsivo (iFrame).
Uso de Server-Sent Events (SSE) para recibir explicaciones generadas por Google Gemini en tiempo real, mejorando la percepción de velocidad del usuario.
Módulo de carga de archivos con validación en el cliente (Frontend) antes de enviar al servidor:
- Validación de extensión (.txt).
- Verificación de cabeceras.
- Detección de errores de formato (encoding).
El proyecto utiliza Vitest para pruebas unitarias.
# Ejecutar tests
npm run test
# Ejecutar tests en modo watch
npm run test:watchCobertura actual: Tests unitarios de esquemas de validación (user.schema.test.ts).
El proyecto está optimizado para desplegarse en Vercel.
- Conectar repositorio de GitHub a Vercel.
- Configurar las variables de entorno en el panel de Vercel.
- El
buildse ejecuta automáticamente con:npm run build
- Boris Arriagada - Product Owner & Developer
- Jaime Vicencio - Scrum Master & Developer
Proyecto Capstone - Duoc UC 2025