JVChat es una aplicación de mensajería instantánea en tiempo real, desarrollada con tecnologías modernas como Next.js, React, Socket.IO y MongoDB. Permite a los usuarios registrarse, personalizar su perfil, gestionar contactos y conversar de forma fluida y segura.
- Registro y autenticación de usuarios con JWT
- Selección de avatar personalizado al crear cuenta
- Chat en tiempo real usando Socket.IO
- Gestión de contactos: buscar, agregar y aceptar solicitudes de amistad
- Notificaciones de mensajes y solicitudes en tiempo real
- Historial de mensajes persistente y sincronizado
- Indicadores de conexión y mensajes no leídos
- Interfaz responsiva y moderna con Tailwind CSS
- Sincronización entre múltiples sesiones abiertas del mismo usuario
-
Frontend:
- Next.js 14
- React 18
- Tailwind CSS
- Socket.IO Client
- JWT (jsonwebtoken)
-
Backend:
- Node.js
- Express
- Socket.IO
- MongoDB & Mongoose
- Bcrypt (hashing de contraseñas)
git clone https://github.com/tuusuario/JVChat.git
cd JVChatyarn installCrea un archivo .env.local en la raíz del proyecto con las siguientes variables:
MONGODB_URI=mongodb://localhost:27017/jvchat
JWT_SECRET=secret_key
NEXT_PUBLIC_SOCKET_URL=http://localhost:4000node serverSocket/server.jsyarn devLa aplicación estará disponible en http://localhost:3000
- Abre la aplicación en http://localhost:3000
- Regístrate con un correo y contraseña
- Selecciona un avatar
- En otra ventana o navegador, regístrate con otro usuario
- Busca y envía una solicitud de amistad
- Acepta la solicitud desde el otro usuario
- ¡Comienza a chatear en tiempo real!
JVChat/
├── app/ # Código fuente del frontend (Next.js)
│ ├── api/ # Rutas de la API
│ ├── auth/ # Páginas de autenticación
│ └── dashboard/ # Páginas del dashboard
├── components/ # Componentes de React reutilizables
├── serverSocket/ # Servidor backend (Express + Socket.IO)
├── models/ # Modelos de datos (Mongoose)
├── public/ # Recursos estáticos
└── styles/ # Estilos globales (Tailwind)
- Asegúrate de tener MongoDB instalado y corriendo localmente
- El servidor Socket.IO debe estar en ejecución para el chat en tiempo real
- El frontend corre en el puerto 3000 por defecto
- El backend corre en el puerto 4000 por defecto
- Para desarrollo, puedes usar
yarn deven modo desarrollo
- Verifica que el servidor backend esté en ejecución
- Revisa que la URL del socket en
.env.localsea correcta
- Asegúrate que MongoDB esté corriendo
- Verifica la conexión a la base de datos en
MONGODB_URI