Una aplicación moderna de clasificación y resumen de documentos usando IA, desarrollada con React y Node.js.
- 🧠 Clasificación Inteligente: Usa GPT-4 para clasificar documentos automáticamente
- 📄 Múltiples Formatos: Soporta PDF, imágenes, Word, Excel, CSV y texto
- 🎨 UI Moderna: Interfaz elegante con Material-UI y animaciones
- 📤 Drag & Drop: Subida de archivos intuitiva
- 🌐 URLs: Procesa documentos desde enlaces web
- ⚡ Tiempo Real: Procesamiento rápido con feedback visual
- 📊 Análisis Detallado: Clasificación, resumen y metadatos
- Node.js 18+ y npm
- API Key de OpenAI (Obtener aquí)
# Instalar dependencias del backend
cd backend
npm install
# Crear archivo de configuración
cp env.example .env
# Editar .env y agregar tu API key de OpenAI
nano .envConfiguración del archivo .env:
PORT=3000
OPENAI_API_KEY=sk-tu-api-key-aqui
NODE_ENV=development
MAX_FILE_SIZE=10485760# Instalar dependencias del frontend
cd ../frontend
npm installTerminal 1 - Backend:
cd backend
npm run devTerminal 2 - Frontend:
cd frontend
npm run dev- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- Health Check: http://localhost:3000/health
- Arrastra y suelta tu documento en la zona de subida
- O haz clic para seleccionar un archivo
- La IA procesará y analizará automáticamente
- Pega la URL de un documento online
- Haz clic en "Analyze URL"
- El sistema descargará y procesará el contenido
- Clasificación: Tipo, categoría y puntuación de confianza
- Resumen: Resumen inteligente generado por IA
- Metadatos: Tiempo de procesamiento y detalles del archivo
| Tipo | Formatos | Descripción |
|---|---|---|
.pdf |
Extracción de texto completo | |
| 🖼️ Imágenes | .jpg, .jpeg, .png |
OCR con Tesseract |
| 📝 Word | .docx, .doc |
Documentos de Microsoft Word |
| 📊 Excel | .xlsx, .xls |
Hojas de cálculo |
| 📋 CSV | .csv |
Archivos de datos estructurados |
| 📃 Texto | .txt |
Archivos de texto plano |
┌─────────────────┐ HTTP/REST ┌─────────────────┐
│ │ ──────────────> │ │
│ React Frontend │ │ Node.js Backend │
│ (Port 5173) │ <────────────── │ (Port 3000) │
│ │ │ │
└─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ OpenAI API │
│ GPT-4 │
└─────────────────┘
- Material-UI: Componentes de interfaz modernos
- React Router: Navegación
- Axios: Cliente HTTP
- React Dropzone: Subida de archivos drag & drop
- Express: Servidor web
- Multer: Manejo de archivos
- OpenAI: Procesamiento de IA
- PDF-Parse: Extracción de PDFs
- Tesseract.js: OCR para imágenes
- Mammoth: Documentos Word
- XLSX: Hojas de cálculo
Procesa un documento (archivo o URL)
Archivo:
curl -X POST http://localhost:3000/api/process-document \
-F "document=@archivo.pdf"URL:
curl -X POST http://localhost:3000/api/process-document \
-H "Content-Type: application/json" \
-d '{"url": "https://ejemplo.com/documento.pdf"}'Respuesta:
{
"success": true,
"data": {
"classification": {
"type": "Technical Document",
"category": "Software Documentation",
"confidence": 95
},
"summary": "Este documento describe...",
"metadata": {
"processing_time_ms": 2500,
"source": {...}
}
}
}Estado del servidor
Información del sistema
- Diseño moderno con gradientes y animaciones
- Cards de subida de archivos y URLs
- Chips informativos de características
- Indicadores de progreso visuales
- Pasos del procesamiento en tiempo real
- Animaciones suaves
- Tarjetas de clasificación con colores dinámicos
- Resumen de IA destacado
- Metadatos detallados del procesamiento
├── backend/
│ ├── src/
│ │ ├── index.js # Servidor principal
│ │ ├── config.js # Configuración
│ │ ├── documentProcessor.js # Procesamiento de archivos
│ │ └── agents/
│ │ └── documentAgent.js # Agente de IA
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── features/
│ │ │ └── documentClassification/
│ │ │ ├── pages/
│ │ │ ├── components/
│ │ │ └── services/
│ │ └── theme/
│ └── package.json
└── README.md
Backend:
npm run dev # Desarrollo con nodemon
npm start # ProducciónFrontend:
npm run dev # Servidor de desarrollo
npm run build # Build para producción
npm run preview # Vista previa del build- ✅ Validación de tipos de archivo
- ✅ Límites de tamaño de archivo
- ✅ CORS configurado
- ✅ Variables de entorno para datos sensibles
- ✅ Sanitización de entrada
Ya configurado con las instrucciones de arriba.
- Configura variables de entorno en producción
- Build del frontend:
npm run build - Sirve archivos estáticos del frontend
- Ejecuta backend con
npm start
- Fork del proyecto
- Crea una rama para tu feature
- Commit de tus cambios
- Push a la rama
- Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.
¿Problemas? ¡Aquí tienes ayuda!
Backend no inicia:
# Verifica que tienes Node.js 18+
node --version
# Instala dependencias
cd backend && npm install
# Verifica el archivo .env
cat .envError de conexión frontend-backend:
# Verifica que el backend esté ejecutándose
curl http://localhost:3000/health
# Verifica CORS si usas un dominio diferenteError de API Key:
- Verifica que tu API key de OpenAI sea válida
- Asegúrate de que esté en el archivo
.env - Verifica que tengas créditos en tu cuenta de OpenAI
- 💬 Issues: GitHub Issues
Hecho con ❤️ usando React, Node.js y OpenAI GPT-4