7.3 KiB
7.3 KiB
Nexus AI Chat 🚀
Aplicación de chat con IA moderna con arquitectura limpia, escalable y una interfaz de usuario profesional inspirada en ChatGPT.
✨ Características
- 🎨 UI Moderna: Diseño inspirado en ChatGPT con diseño responsivo completo
- 💬 Chat en Tiempo Real: Comunicación instantánea mediante WebSockets
- 🌙 Modo Oscuro: Paleta de colores profesional optimizada para baja luz
- 📱 Responsive: Funciona perfectamente en desktop, tablet y móvil
- ⚡ Rápido: Animaciones suaves de 60fps con aceleración GPU
- ♿ Accesible: Cumple con estándares WCAG AA
- 🎯 Sugerencias Inteligentes: Tarjetas interactivas para comenzar conversaciones
- 💾 Persistencia: Guarda conversaciones localmente
- 🔒 Seguro: Protección contra XSS y otras vulnerabilidades
🚀 Inicio Rápido
Instalación
npm install
Configuración
- Copia el archivo de ejemplo de variables de entorno:
cp .env.example .env
- Edita
.envcon tus configuraciones.
Desarrollo
# Modo desarrollo con hot reload
npm run dev
# En otra terminal, el servidor estará disponible en:
# http://localhost:3000
Producción
# Compilar
npm run build
# Ejecutar versión compilada
npm start
Scripts Disponibles
npm run dev- Ejecutar en modo desarrollo con hot reloadnpm run build- Compilar TypeScript a JavaScriptnpm start- Ejecutar la aplicación compiladanpm run clean- Limpiar carpeta distnpm run lint- Verificar código con ESLintnpm run format- Formatear código con Prettier
🎨 Interfaz de Usuario
La nueva interfaz incluye:
Componentes Principales
- Sidebar Colapsable: Historial de conversaciones y perfil de usuario
- Chat Area: Mensajes con avatares y formateo Markdown
- Input Expandible: Textarea que crece automáticamente
- Tarjetas de Sugerencias: 4 categorías predefinidas (Ideas, Código, Problemas, Aprendizaje)
- Indicador de Escritura: Animación mientras la IA responde
- Header Móvil: Navegación optimizada para dispositivos táctiles
Documentación UI
- 📖 UI-GUIDE.md - Guía completa de la interfaz
- 🎨 UI-VISUAL.md - Vista visual y diagramas
- 📊 COMPARISON.md - Antes vs Después
- 📝 CHANGELOG.md - Historial de cambios
📁 Estructura del Proyecto
Nexus/
├── src/
│ ├── config/ # Configuraciones
│ ├── core/ # Lógica central (Application)
│ ├── server/ # Servidor web y WebSockets
│ ├── services/ # Servicios de negocio
│ ├── utils/ # Utilidades (logger)
│ ├── types/ # Tipos TypeScript
│ └── index.ts # Punto de entrada
├── public/ # Archivos estáticos
│ ├── index.html # UI principal (198 líneas)
│ ├── css/
│ │ └── styles.css # Estilos modernos (520+ líneas)
│ └── js/
│ └── app.js # Lógica del cliente (430+ líneas)
├── logs/ # Archivos de log
├── dist/ # Código compilado
└── package.json
🔧 Tecnologías
Backend
- TypeScript - Lenguaje principal con tipos estáticos
- Express - Framework web minimalista
- Socket.IO - Comunicación en tiempo real
- Winston - Sistema de logging profesional
- CORS - Control de acceso entre orígenes
Frontend
- Vanilla JavaScript - Sin frameworks, código ligero
- Socket.IO Client - Cliente WebSocket
- Inter Font - Tipografía moderna de Google Fonts
- CSS Variables - Sistema de tematización dinámico
Desarrollo
- tsx - Ejecución de TypeScript con hot reload
- ESLint - Linting de código
- Prettier - Formateo de código
🎯 Características de la UI
Desktop (> 768px)
- ✅ Sidebar visible de 280px
- ✅ Chat centrado con max-width 780px
- ✅ Grid de sugerencias en 2x2
- ✅ Hover effects avanzados
Tablet (≤ 768px)
- ✅ Sidebar overlay con toggle
- ✅ Header móvil con menú hamburguesa
- ✅ Layout adaptativo
- ✅ Touch-optimized
Móvil (≤ 480px)
- ✅ Sugerencias en columna única
- ✅ Padding optimizado
- ✅ Fuentes escaladas
- ✅ Botones más grandes
💬 Eventos Socket.IO
Cliente → Servidor
socket.emit('user_message', {
message: string,
conversationId?: string
})
Servidor → Cliente
// Respuesta de AI
socket.emit('ai_response', {
content: string,
timestamp: Date,
conversationId: string
})
// Error
socket.emit('error', {
message: string,
timestamp: Date
})
🎨 Paleta de Colores
/* Fondos */
--bg-primary: #0f0f0f /* Casi negro */
--bg-secondary: #171717 /* Gris muy oscuro */
--bg-tertiary: #2f2f2f /* Gris oscuro */
/* Textos */
--text-primary: #ececec /* Blanco suave */
--text-secondary: #b4b4b4 /* Gris claro */
/* Acentos */
--accent-primary: #19c37d /* Verde brillante */
--accent-hover: #1aa874 /* Verde hover */
📝 Roadmap
✅ Completado
- Arquitectura TypeScript moderna
- Servidor Express con Socket.IO
- UI moderna inspirada en ChatGPT
- Diseño responsive completo
- Sistema de mensajería en tiempo real
- Tarjetas de sugerencias
- Formateo Markdown básico
- Logging profesional
🚧 En Progreso
- Integración con modelo de IA real (OpenAI/Claude)
- Sistema de autenticación
- Base de datos para historial
📅 Próximos Pasos
- IA Real: Conectar con OpenAI API o modelo local
- Base de Datos: PostgreSQL/MongoDB para persistencia
- Auth: Sistema de usuarios y sesiones
- Markdown Completo: Listas, tablas, imágenes
- Syntax Highlighting: Para bloques de código
- Tema Claro: Toggle entre modo claro/oscuro
- Adjuntar Archivos: Subida de imágenes y documentos
- Tests: Cobertura completa con Jest
- CI/CD: Pipeline de despliegue automático
- Docker: Containerización
🤝 Contribuir
- Crea una rama para tu feature
- Realiza tus cambios
- Asegúrate de que pasa el linting:
npm run lint - Formatea el código:
npm run format - Crea un Pull Request
Guía de Estilos
CSS
- Usar variables CSS para colores y espaciados
- Seguir nomenclatura BEM para clases
- Comentar secciones principales
- Mobile-first approach
JavaScript
- ESLint con configuración estricta
- Funciones pequeñas y reutilizables
- Comentarios para lógica compleja
- Manejo de errores robusto
TypeScript
- Tipos explícitos siempre que sea posible
- Interfaces para estructuras de datos
- Evitar
anya toda costa - Documentar funciones públicas
📊 Métricas
- Líneas de Código: ~1,500+
- Archivos: 15+
- Componentes UI: 12+
- Variables CSS: 30+
- Animaciones: 6+
- Cobertura Responsive: 100%
- Compatibilidad: Chrome, Firefox, Safari, Edge (últimas versiones)
🐛 Reportar Bugs
Por favor, abre un issue con:
- Descripción del problema
- Pasos para reproducir
- Comportamiento esperado
- Screenshots si aplica
- Navegador y versión
📄 Licencia
Privado
Versión: 1.0.0
Última actualización: 13 de Febrero, 2026
Diseño inspirado en: ChatGPT UI Kit
Hecho con: ❤️ y TypeScript