InsightFlow es una plataforma web moderna para la gestión inteligente de inventarios que combina análisis de datos en tiempo real con Inteligencia Artificial de Google Gemini. El sistema proporciona alertas predictivas, análisis de demanda automatizado, visualización de tendencias y optimización de recursos para empresas del sector alimenticio y retail.
Proyecto creado para el hackathon HackaTecNM, enfocado en solucionar problemas reales de gestión empresarial mediante tecnología innovadora.
- Análisis predictivo de demanda con Google Gemini AI
- 6 tipos de alertas inteligentes generadas automáticamente:
- ⏰ Riesgo de caducidad con cálculo de pérdidas financieras
- 📦 Stock crítico y recomendaciones de reabastecimiento
- 📈 Planificación de demanda con fechas específicas
- 💰 Oportunidades de optimización de márgenes
- 📋 Optimización de espacio de almacén
- 🔄 Productos de rotación lenta con estrategias de liquidación
- Visualización en tiempo real de métricas clave (KPIs)
- Gráficos dinámicos con Chart.js:
- Proyección de demanda (gráfico de líneas)
- Distribución de stock (gráfico de dona)
- Stock de materias primas (gráfico de barras)
- Productos por caducar (alertas visuales)
- Tendencias históricas de inventario
- Control completo de materias primas y productos terminados
- Seguimiento de stock actual, mínimo y máximo
- Alertas de caducidad automáticas
- Categorización inteligente de productos
- Estados visuales (Normal, Bajo, Alto)
- Ventas totales por período
- Porcentaje de inventario próximo a caducar
- Exportación de reportes automáticos
- Análisis de tendencias históricas
- React 19.1.0 - Framework principal
- Chart.js 4.4.9 - Visualización de gráficos
- React-ChartJS-2 - Integración de Chart.js con React
- CSS3 - Diseño moderno y responsive
- Node.js - Entorno de ejecución
- Express 4.18.2 - Framework web
- MySQL2 - Base de datos relacional
- CORS - Manejo de peticiones cross-origin
- dotenv - Gestión de variables de entorno
- Google Gemini AI (2.0 Flash Lite) - Análisis predictivo y generación de alertas
- Generative Language API - Procesamiento de lenguaje natural
Antes de instalar, asegúrate de tener instalado:
- Node.js (v16 o superior) - Descargar aquí
- MySQL (v8.0 o superior) - Descargar aquí
- npm o yarn - Gestor de paquetes
- API Key de Google Gemini - Obtener aquí
git clone https://github.com/tu-usuario/HackaTecNM.git
cd HackaTecNMnpm installcd backend
npm install
cd ..mysql -u root -pLuego ejecuta los scripts SQL en el siguiente orden:
-- Crear estructura
SOURCE Inventario.sql;
-- Cargar datos de ejemplo
SOURCE datos_ejemplo.sql;
-- O usar datos de prueba del backend
SOURCE backend/data/clean_database.sql;
SOURCE backend/data/datos_prueba.sql;Crea un archivo .env en la carpeta backend/ con el siguiente contenido:
# Configuración del Servidor
PORT=5000
# Configuración de MySQL
DB_HOST=localhost
DB_USER=tu_usuario
DB_PASSWORD=tu_contraseña
DB_NAME=inventario_db- Ve a Google AI Studio
- Inicia sesión con tu cuenta de Google
- Haz clic en "Create API Key"
- Copia tu API Key
Abre el archivo src/geminiPrompt.js y reemplaza YOUR_API_KEY_HERE con tu API Key:
// Línea 10 en src/geminiPrompt.js
const GEMINI_API_KEY = 'TU_API_KEY_AQUI'; // ← Pega aquí tu API Key
⚠️ Importante:
- Cada usuario debe usar su propia API Key de Google Gemini (es gratuita)
- NO subas tu API Key personal a GitHub
- Esta es una implementación para demostración/hackathon
cd backend
npm startEl servidor se ejecutará en http://localhost:5000
En otra terminal:
npm startLa aplicación se abrirá en http://localhost:3000
HackaTecNM/
├── backend/
│ ├── config/
│ │ └── db.js # Configuración de MySQL
│ ├── data/
│ │ ├── clean_database.sql # Script de limpieza
│ │ └── datos_prueba.sql # Datos de prueba
│ ├── routes/
│ │ ├── dashboard.js # Endpoints de KPIs
│ │ ├── demanda.js # Endpoints de demanda
│ │ ├── graficas.js # Endpoints de gráficas
│ │ └── inventario.js # Endpoints de inventario
│ ├── server.js # Servidor Express
│ └── package.json
│
├── src/
│ ├── App.js # Componente principal
│ ├── Dashboard.jsx # Dashboard completo
│ ├── Dashboard.css # Estilos del dashboard
│ ├── geminiPrompt.js # Integración con Gemini AI
│ ├── index.js # Punto de entrada
│ └── Logo.PNG # Logo de la aplicación
│
├── public/
│ ├── index.html
│ └── manifest.json
│
├── Inventario.sql # Estructura de base de datos
├── datos_ejemplo.sql # Datos de ejemplo
├── package.json # Dependencias del frontend
└── README.md # Este archivo
GET /api/inventario- Obtener todo el inventario
GET /api/dashboard/ventas-totales- Ventas totales del períodoGET /api/dashboard/inventario-caducar- % de inventario próximo a caducarGET /api/dashboard/alertas- Número de alertas activas
GET /api/demanda- Obtener datos de demanda histórica
GET /api/graficas/distribucion-stock- Distribución de stock por categoríaGET /api/graficas/stock-materias- Stock de materias primasGET /api/graficas/productos-caducar- Productos próximos a caducarGET /api/graficas/tendencia-stock- Tendencia histórica de stock
- Gráfico de proyección de demanda con tendencias mensuales
- Cards informativos con métricas clave:
- Ventas totales (últimos 30 días)
- Alertas inteligentes activas
- % de inventario por caducar
- Nivel de demanda predicho por IA
- Última fecha de exportación de reportes
-
Tabla de Materias Primas:
- Nombre, categoría, stock actual/mínimo/máximo
- Fecha de caducidad próxima
- Estado visual (Normal/Bajo/Alto)
-
Tabla de Productos Terminados:
- Misma estructura que materias primas
- Indicadores de color según estado
Sistema de 6 alertas dinámicas generadas con IA:
-
⏰ Riesgo de Caducidad: Identifica productos próximos a caducar con cálculo de pérdidas financieras y sugerencias de descuentos.
-
📦 Stock Crítico: Detecta productos con stock bajo el mínimo y recomienda cantidades exactas de reabastecimiento.
-
📈 Planificación de Demanda: Predice fechas específicas y cantidades necesarias para producción basándose en patrones históricos.
-
💰 Oportunidad de Margen: Analiza productos con potencial de incremento de precio y calcula el impacto en ingresos.
-
📋 Optimización de Almacén: Sugiere reorganización de categorías para liberar espacio y reducir costos.
-
🔄 Rotación Lenta: Identifica productos estancados y propone estrategias de liquidación con cálculo de capital a liberar.
- Distribución de Stock: Visualización en dona de la distribución por categorías
- Stock de Materias Primas: Gráfico de barras con stock actual por categoría
- Productos por Caducar: Alertas visuales de productos con días hasta caducidad
- Tendencia de Stock: Gráfico de líneas comparando materias primas vs productos
- La API Key de Gemini se configura en el frontend (
src/geminiPrompt.js) - Cada usuario debe usar su propia API Key (gratuita en Google AI Studio)
- NO subas tu API Key personal a repositorios públicos
- Para uso en producción, considera mover las API Keys al backend con variables de entorno
Este proyecto fue desarrollado para el HackaTecNM con fines educativos y de demostración.
- HackaTecNM por la oportunidad de desarrollar este proyecto
- Google Gemini AI por proporcionar la API de inteligencia artificial
- TecNM por fomentar la innovación tecnológica
⭐ Si este proyecto te fue útil, considera darle una estrella en GitHub ⭐
Desarrollado con ❤️ para HackaTecNM 2024