Proyecto de Chat en Tiempo Real
Comunicación instantánea segura con estados de mensajes en tiempo real.
Descripción
Este proyecto es una aplicación de chat en tiempo real diseñada para facilitar la comunicación instantánea entre usuarios. Permite enviar y recibir mensajes al instante, ver el estado de los mensajes (enviado, entregado, visto) y recibir notificaciones en tiempo real.
El sistema garantiza una experiencia fluida, segura y organizada, permitiendo incluso archivar conversaciones y responder mensajes específicos dentro de un chat.
Tecnologías utilizadas
Backend:
- Java 21 + Spring Boot
- Spring Security (JWT)
- WebSockets (STOMP)
- JPA/Hibernate
- PostgreSQL
Frontend:
- Next.js (React)
- Redux
- Javascript
- Tailwind CSS
- Socket.io
- Axios
Extras:
- Contenerización y despliegue con Docker + Render + Vercel + Ngnix + Docker Compose
- Web Push Notifications (Service Workers) para alertas en el navegador
Capturas de Pantalla







¿Por qué es importante este proyecto?
Experiencia de usuario mejorada – Notificaciones y estados de mensajes en tiempo real.
Eficiencia y rapidez – Sincronización instantánea de mensajes sin necesidad de recargar la página.
Seguridad – Sistema de autenticación robusto para proteger la privacidad de los usuarios.
Características principales
- Inicio de sesión seguro – Autenticación con JWT para proteger las cuentas de usuario.
- Mensajería en tiempo real – Sin retrasos gracias a WebSockets.
- Estados de mensajes en tiempo real Indicadores visuales de "Enviado", "Entregado" y "Visto".
- Notificaciones en el navegador – Notificaciones push sin necesidad de abrir la app.
- Gestión de conversaciones Posibilidad de archivar chats para mantener el orden.
- Respuestas a mensajes – Capacidad de responder a mensajes específicos dentro de una conversación.
Accede al Proyecto
Retos y Aprendizajes
- WebSockets: Implementar comunicación en tiempo real con Spring Boot y STOMP.
- Notificaciones Push: Integración con Service Workers para alertas en el navegador.
- Gestión del Estado: Sincronización entre clientes HTTP y WebSockets sin inconsistencias.
- Arquitectura Backend: Organización eficiente para manejar múltiples conexiones de usuarios.