ChatApp es una aplicación de mensajería en tiempo real que permite a los usuarios registrarse, iniciar sesión y comunicarse entre sí mediante mensajes de texto. La aplicación utiliza tecnologías modernas como Spring Boot para el backend y WebSocket para la comunicación en tiempo real.
- Registro de usuarios: Los nuevos usuarios pueden registrarse proporcionando un nombre de usuario, una contraseña y un correo electrónico.
- Inicio de sesión: Los usuarios pueden autenticarse utilizando su nombre de usuario y contraseña.
- Envío de mensajes: Los usuarios pueden enviar y recibir mensajes en tiempo real.
- Historial de mensajes: Los usuarios pueden recuperar el historial de mensajes enviados y recibidos.
- Manejo de errores: La aplicación cuenta con un manejo de excepciones para proporcionar respuestas adecuadas en caso de errores.
- Backend: Spring Boot
- Base de datos: JPA/Hibernate con una base de datos relacional (ej. MySQL)
- Seguridad: Spring Security para la autenticación y autorización
- Comunicación en tiempo real: WebSocket
- DTOs y Mappers: Utiliza patrones de diseño para la transferencia de datos entre las capas de la aplicación.
-
Clona el repositorio:
git clone https://github.com/tu_usuario/ChatApp.git cd ChatApp
-
Asegúrate de tener Java y Maven instalados en tu máquina.
-
Configura la base de datos en el archivo
application.properties
:spring.datasource.url=jdbc:mysql://localhost:3306/tu_base_de_datos spring.datasource.username=tu_usuario spring.datasource.password=tu_contraseña
-
Compila y ejecuta la aplicación:
mvn clean install mvn spring-boot:run
- Registro de usuario: Realiza una solicitud POST a
/api/users/register
con los parámetrosusername
,password
yemail
. - Inicio de sesión: Realiza una solicitud POST a
/api/users/login
con un JSON que contengausername
ypassword
. - Enviar mensaje: Realiza una solicitud POST a
/api/messages/send
con los parámetrossenderId
,receiverId
,content
y opcionalmentereplyTo
. - Obtener mensajes: Realiza una solicitud GET a
/api/messages/obtenerMensajes
con los parámetrosuserId
ycontactId
.
Las contribuciones son bienvenidas. Si deseas contribuir, por favor sigue estos pasos:
- Haz un fork del proyecto.
- Crea una nueva rama (
git checkout -b feature/nueva-caracteristica
). - Realiza tus cambios y haz commit (
git commit -m 'Agrega una nueva característica'
). - Haz push a la rama (
git push origin feature/nueva-caracteristica
). - Abre un Pull Request.
Siente libre de personalizar cualquier sección según las necesidades específicas de tu aplicación.