Transforma tus datos de redes sociales en insights accionables con el poder de la Inteligencia Artificial
🌐 Demo en vivo: https://data-analysis-challenge.vercel.app/
DataPulse es una aplicación web moderna que utiliza Inteligencia Artificial para analizar datos de redes sociales (Instagram, Facebook, TikTok) y proporcionar insights valiosos para optimizar tu estrategia de contenido digital.
- 🤖 Limpieza de Datos con IA: Procesamiento automático e inteligente de datos usando Groq AI
- 📈 Análisis Avanzado: Identifica patrones de éxito y detecta oportunidades de mejora
- ⏰ Optimización Temporal: Descubre los mejores días y horarios para publicar
- 💬 Chatbot Especializado: Asistente IA experto en estrategias de redes sociales
- 📊 Visualización Interactiva: Gráficos y métricas en tiempo real
- 🎨 Interfaz Moderna: Diseño intuitivo y responsivo con Tailwind CSS
- 📁 Soporte Multi-formato: Compatible con CSV y Excel (XLSX/XLS)
- 🔒 Procesamiento Seguro: Tus datos se procesan de forma segura y privada
Frontend:
├── Next.js 16.0 (React Framework)
├── TypeScript (Type Safety)
├── Tailwind CSS (Styling)
└── Radix UI + shadcn/ui (UI Components)
Backend:
├── Next.js API Routes (Serverless Functions)
├── Groq AI SDK (LLM Integration)
└── CSV/Excel Parser (Data Processing)
Deployment:
└── Vercel (Production & Preview)
data-analysis-challenge/
│
├── app/ # Next.js App Router
│ ├── page.tsx # Landing page con features y CTA
│ ├── layout.tsx # Layout principal con providers
│ ├── globals.css # Estilos globales
│ │
│ ├── dashboard/ # Dashboard de análisis
│ │ └── page.tsx # Interfaz principal de análisis
│ │
│ ├── powerbi-dashboard/ # Vista Power BI (opcional)
│ │ └── page.tsx
│ │
│ └── api/ # API Routes (Serverless)
│ ├── clean-data/
│ │ └── route.ts # Endpoint de limpieza de datos con IA
│ └── chatbot/
│ └── route.ts # Endpoint del chatbot streaming
│
├── components/ # Componentes React
│ ├── file-upload.tsx # Componente de carga de archivos
│ ├── data-preview.tsx # Vista previa de datos
│ ├── data-analysis.tsx # Visualización de análisis
│ ├── social-media-chatbot.tsx # Interfaz del chatbot
│ ├── sample-data-download.tsx # Descarga de datos de ejemplo
│ ├── powerbi-dashboard.tsx # Integración Power BI
│ │
│ └── ui/ # Componentes UI reutilizables
│ ├── button.tsx
│ ├── card.tsx
│ ├── tabs.tsx
│ ├── progress.tsx
│ └── ... (más componentes)
│
├── lib/ # Utilidades y helpers
│ └── utils.ts # Funciones auxiliares (cn, etc.)
│
├── hooks/ # Custom React Hooks
│ ├── use-mobile.ts
│ └── use-toast.ts
│
├── public/ # Archivos estáticos
│ ├── sample-data.csv # Datos de ejemplo
│ ├── dirty-data.csv # Datos sucios para demo
│ └── dirty-data-test.csv
│
├── styles/ # Estilos adicionales
│ └── globals.css
│
├── next.config.mjs # Configuración de Next.js
├── tailwind.config.ts # Configuración de Tailwind
├── tsconfig.json # Configuración de TypeScript
├── components.json # Configuración de shadcn/ui
└── package.json # Dependencias del proyecto
Usuario → Landing Page → Explora Features → Click "Comenzar gratis"
- Presenta la propuesta de valor del producto
- Muestra características clave con animaciones
- CTA (Call-to-Action) hacia el dashboard
Dashboard → Upload File → Processing Pipeline → Results + Chatbot
1. Upload de Archivo (CSV/XLSX)
↓
2. Lectura del contenido
↓
3. Parsing inicial (headers + rows)
↓
4. Pre-limpieza (eliminar nulls en columnas críticas)
↓
5. Envío a API /clean-data
↓
6. Análisis con Groq AI (LLaMA 3.3 70B)
↓
7. Respuesta con datos limpios + análisis
↓
8. Visualización de resultados
↓
9. Chatbot disponible para consultasEndpoint: POST /api/clean-data
// Proceso:
1. Recibe archivo via FormData
2. Convierte a texto y parsea CSV
3. Pre-limpia datos (elimina filas con nulls)
4. Construye prompt para IA con reglas específicas
5. Groq AI procesa y devuelve:
- cleanedData: Array de registros limpios
- summary: Estadísticas agregadas
- insights: Patrones y recomendaciones
- bestTimes: Horarios óptimos
- contentTypes: Análisis por tipo de contenidoReglas de Limpieza IA:
- ✅ Mantener valores 0 (son datos válidos)
- ❌ Eliminar filas con nulls en columnas críticas
- 📅 Normalizar fechas a YYYY-MM-DD
- 🔢 Convertir números a formato numérico
- 🧮 Calcular engagement rate:
((Likes + Comentarios + Compartidos) / Alcance) * 100 - 🚫 Eliminar outliers extremos
Endpoint: POST /api/chatbot (Streaming)
// Características:
- Modelo: LLaMA 3.3 70B Versatile (via Groq)
- Streaming: Respuestas en tiempo real
- Contexto: Incluye datos del usuario si están disponibles
- Especialización: Solo temas de redes sociales
- Límites: Rechaza temas fuera de scopeCapacidades del Chatbot:
- 📱 Estrategias de contenido para IG, FB, TikTok
- ⏰ Mejores horarios para publicar
- 💡 Ideas creativas de contenido
- 📊 Análisis de métricas
- #️⃣ Sugerencias de hashtags
- 🎯 Optimización de engagement
- Node.js 18+ instalado
- Cuenta en Groq para API keys
- pnpm (recomendado) o npm
- Clonar el repositorio
git clone https://github.com/xdarwin13/data-analysis-challenge.git
cd data-analysis-challenge- Instalar dependencias
pnpm install
# o
npm install- Configurar variables de entorno
Crear archivo .env.local en la raíz del proyecto:
GROQ_API_KEY=tu_api_key_aqui
GROQ_API_KEY2=tu_api_key_2_aquiNota: Necesitas obtener tus API keys desde Groq Console
- Ejecutar en desarrollo
pnpm dev
# o
npm run dev- Abrir en el navegador
http://localhost:3000
{
"dev": "next dev", // Desarrollo con hot-reload
"build": "next build", // Build de producción
"start": "next start", // Servidor de producción
"lint": "eslint ." // Linting del código
}Maneja la carga de archivos con drag & drop:
<FileUpload
onFileSelect={(file) => handleFileUpload(file)}
isProcessing={isProcessing}
/>Muestra una vista previa tabular de los datos:
<DataPreview
data={cleanedData.cleanedData}
summary={cleanedData.summary}
/>Renderiza gráficos y análisis visual:
<DataAnalysis
data={cleanedData}
/>Chatbot interactivo con streaming:
<SocialMediaChatbot
userData={cleanedData}
/>El proyecto está optimizado para despliegue en Vercel:
-
Conectar repositorio en Vercel
- Ir a vercel.com
- Click en "New Project"
- Importar tu repositorio de GitHub
-
Configurar variables de entorno
- Agregar
GROQ_API_KEYen Settings → Environment Variables - Agregar
GROQ_API_KEY2en Settings → Environment Variables
- Agregar
-
Deploy
- Vercel detecta automáticamente Next.js
- Deploy se ejecuta en cada push a
main
# Instalar Vercel CLI
pnpm add -g vercel
# Deploy
vercel
# Deploy a producción
vercel --prodURL de Producción: https://data-analysis-challenge.vercel.app/
Formato CSV esperado:
Fecha,Hora,Plataforma,Tipo,Likes,Comentarios,Compartidos,Alcance,Impresiones
2024-01-15,14:30,Instagram,Foto,150,20,5,1200,1500
2024-01-16,18:00,TikTok,Video,890,45,120,5000,6500Columnas requeridas:
Fecha: Fecha de publicaciónHora: Hora de publicaciónPlataforma: Instagram, Facebook, o TikTokTipo: Tipo de contenido (Foto, Video, Carrusel, etc.)Likes: Número de likesComentarios: Número de comentariosCompartidos: Número de compartidosAlcance: Alcance de la publicaciónImpresiones: Impresiones totales
- Arrastra tu archivo CSV/XLSX a la zona de carga
- O click en "Seleccionar archivo" para buscar
El sistema automáticamente:
- ✅ Limpia los datos
- ✅ Calcula engagement rate
- ✅ Identifica patrones
- ✅ Genera recomendaciones
- ✅ Encuentra mejores horarios
- Vista General: Estadísticas clave (total posts, avg engagement, etc.)
- Problemas Detectados: Issues encontrados en los datos
- Insights IA: Recomendaciones personalizadas
- Mejores Horarios: Días y horas óptimas para publicar
- Por Tipo de Contenido: Análisis por formato
Haz preguntas como:
- "¿Qué tipo de contenido debo crear?"
- "¿Cuándo es mejor publicar en Instagram?"
- "¿Cómo mejorar mi engagement?"
- "Dame ideas para Reels"
- Next.js 16.0: Framework React con App Router
- React 19: Biblioteca UI con Server Components
- TypeScript: Tipado estático
- Tailwind CSS: Utility-first CSS framework
- Radix UI: Primitivos de UI accesibles
- shadcn/ui: Componentes pre-construidos
- Lucide React: Iconos modernos
- Class Variance Authority: Gestión de variantes de estilos
- Groq SDK: Integración con LLMs ultra-rápidos
- LLaMA 3.3 70B: Modelo de lenguaje de Groq
- React Hook Form: Manejo de formularios
- Zod: Validación de esquemas
- clsx: Utilidad para clases condicionales
- date-fns: Manipulación de fechas
- cmdk: Command palette
- Embla Carousel: Carruseles reactivos
- Analiza qué tipo de contenido genera más engagement
- Descubre los mejores momentos para publicar
- Optimiza tu calendario de contenido
- Reportes automáticos de rendimiento
- Insights basados en datos reales
- Recomendaciones de estrategia
- Maximiza el ROI de tus redes sociales
- Identifica qué publicaciones generan más conversiones
- Planifica contenido data-driven
- Análisis multi-cliente
- Reportes profesionales
- Optimización de campañas
Editar app/api/clean-data/route.ts:
const completion = await groq.chat.completions.create({
messages: [...],
model: "llama-3.3-70b-versatile", // Cambiar modelo
temperature: 0.7, // Ajustar creatividad
max_tokens: 2048, // Máximo de tokens
})- Actualizar tipos en componentes
- Agregar validación en API
- Actualizar prompt de IA con contexto de la nueva plataforma
Editar el prompt en app/api/clean-data/route.ts:
const prompt = `
Tus reglas personalizadas aquí...
`Las contribuciones son bienvenidas! Para contribuir:
- Fork el proyecto
- Crea tu Feature Branch (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la Branch (
git push origin feature/AmazingFeature) - Abre un Pull Request
- Integración con APIs de redes sociales (Instagram Graph API, etc.)
- Exportación de reportes en PDF
- Dashboard colaborativo multi-usuario
- Análisis de competidores
- Predicciones con Machine Learning
- Integración con herramientas de calendario
- Notificaciones de mejores horarios
- A/B testing de contenido
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
Darwin
- GitHub: @xdarwin13
- Groq por su increíble infraestructura de IA
- Vercel por el hosting
- shadcn por los componentes UI
- Comunidad de Next.js
¿Tienes preguntas o problemas?
- 🐛 Reportar un bug
- 💡 Solicitar una feature
- 📧 Contacto directo (agregar tu email si deseas)
⭐ Si este proyecto te fue útil, considera darle una estrella en GitHub ⭐
Hecho con ❤️ y ☕ por Darwin Y Camilo