Un dashboard profesional para la gestión de productos y análisis de datos con funcionalidades de IA para creación automática de ofertas.
- Métricas en tiempo real: Revenue, subscripciones, ventas y usuarios activos
- Gráficos interactivos: Overview con filtros por semana, mes y trimestre
- Ventas recientes: Lista de transacciones más recientes
- Tema claro/oscuro: Cambio dinámico de tema con persistencia
- Paso 1: Integración con ChatGPT Vision para análisis automático de imágenes
- Paso 2: Procesamiento de listas de productos con nombres y precios
- Paso 3: Sistema de tarjetas para procesamiento individual con drag & drop
- Procesamiento automático: Remoción de fondo y aplicación de plantillas
- Descarga masiva: Exportación de todas las ofertas procesadas
- Análisis de CSV: Carga y procesamiento de datos del chatbot
- Métricas automáticas: Contactos totales, consultas activas, emprendedores, mecánicos
- Visualización: Gráficos de distribución de tipos de usuarios
- Drag & Drop: Interfaz intuitiva para cargar archivos
- Responsive Design: Adaptable a todos los dispositivos
- Navegación fluida: Sidebar colapsible con persistencia de estado
- Notificaciones: Sistema de alertas en tiempo real
- Animaciones: Transiciones suaves y efectos visuales
- Accesibilidad: Soporte completo para lectores de pantalla
Python 3.8+
pip (gestor de paquetes de Python)pip install -r requirements.txtmmr_saas/
├── app/
│ ├── app.py # Aplicación Flask principal
│ └── config.py # Configuraciones
├── templates/
│ ├── base.html # Template base
│ └── index.html # Dashboard principal
├── static/
│ ├── css/
│ │ └── dashboard.css # Estilos principales
│ ├── js/
│ │ └── dashboard.js # Lógica del frontend
│ └── images/ # Imágenes estáticas
├── processing/
│ └── product_templates/
│ └── plantilla.png # Plantilla para ofertas
├── fonts/
│ └── Oswald-VariableFont_wght.ttf # Fuente principal
└── run.py # Punto de entrada
python run.pypython app/app.pyLa aplicación estará disponible en: http://localhost:5000
- Navegación: Usa el sidebar para cambiar entre secciones
- Métricas: Visualiza las estadísticas principales en las tarjetas superiores
- Gráficos: Interactúa con los filtros para cambiar períodos de tiempo
- Tema: Usa el botón de luna/sol para cambiar entre tema claro y oscuro
-
Paso 1 - ChatGPT Vision:
- Haz clic en "Abrir ChatGPT Visión"
- Sube tus imágenes de productos
- Pide: "Extrae nombre, precio y descripción de cada producto en formato lista"
- Copia la lista generada
-
Paso 2 - Procesar Lista:
- Pega la lista en el formato:
- Aceite Gulf 20W-50 - $2,450 - Aceite sintético - Kit Transmisión Honda - $8,900 - Kit completo - Filtro K&N - $1,200 - Filtro alto rendimiento - Haz clic en "Procesar Lista"
- Pega la lista en el formato:
-
Paso 3 - Procesamiento Individual:
- Arrastra las imágenes a la zona de drop
- Las imágenes se asignarán automáticamente a los productos
- Haz clic en "Procesar Producto" para cada uno
- Descarga individual o masiva de las ofertas
-
Carga de CSV:
- Arrastra tu archivo CSV o haz clic para seleccionar
- El sistema procesará automáticamente los datos
- Visualiza las métricas generadas
-
Interpretación:
- Total Contactos: Número total de registros
- Consultas Activas: Contactos con input significativo
- Emprendedores: Perfiles identificados como emprendedores
- Mecánicos/Locales: Talleres y mecánicos detectados
:root {
--mmr-yellow: #FFD700; /* Amarillo principal MMR */
--mmr-yellow-hover: #FFC107; /* Amarillo hover */
--mmr-yellow-dark: #FF8F00; /* Amarillo oscuro */
}- Principal: Inter (Google Fonts)
- Logo: Orbitron (Google Fonts)
- Ofertas: Oswald Variable (Local)
- Ubicación:
processing/product_templates/plantilla.png - Formato recomendado: PNG con transparencia
- Resolución: Mínimo 800x600px
- Verifica que estés subiendo archivos de imagen válidos
- Formatos soportados: JPG, PNG, GIF, WEBP
- Reinstala rembg:
pip install --upgrade rembg - Verifica que la imagen no esté corrupta
- Verifica que Chart.js esté cargando correctamente
- Revisa la consola del navegador para errores JavaScript
- Verifica que
fonts/Oswald-VariableFont_wght.ttfexiste - El sistema usará fuente por defecto si no encuentra Oswald
Procesa una imagen de producto y genera la oferta final.
Parámetros:
image: Archivo de imagen (multipart/form-data)name: Nombre del producto (string)price: Precio del producto (string)
Respuesta: Imagen PNG procesada
Ejemplo:
const formData = new FormData();
formData.append('image', imageFile);
formData.append('name', 'Aceite Gulf 20W-50');
formData.append('price', '2450');
fetch('/process', {
method: 'POST',
body: formData
})
.then(response => response.blob())
.then(blob => {
// Manejar imagen procesada
});- Validación de archivos: Solo se aceptan imágenes válidas
- Límite de tamaño: Configurado en Flask para evitar uploads masivos
- Sanitización: Nombres de productos son sanitizados antes del procesamiento
# Crear Procfile
echo "web: python app/app.py" > Procfile
# Deploy
git add .
git commit -m "Deploy to Heroku"
git push heroku mainFROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app/app.py"]- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.
Para soporte técnico o consultas:
- Email: [email protected]
- Documentación: Wiki del proyecto
- Issues: GitHub Issues
MMR Group - Transformando la gestión de productos con tecnología de vanguardia 🚀