Foro Hub es una aplicación backend de foros desarrollada con Spring Boot. Está diseñada para gestionar tópicos de discusión y utiliza tecnologías como Java, Spring Boot y MySQL para su funcionamiento.
- CRUD de Tópicos: Crear, leer, actualizar y eliminar tópicos.
- Autenticación y Autorización: Implementada con JWT.
- Validaciones: Validaciones de entrada de datos utilizando Jakarta Bean Validation.
- Listar Autores por Año: Imprime por consola los autores vivos en el año especificado.
- Swagger: Documentación de la API generada automáticamente.
Para este proyecto se utilizaron las siguientes tecnologías:
- Java JDK: versión 21
- Maven: versión 4
- Spring Boot: versión 3.3.1
- MySQL: versión 8.0
- IDE: IntelliJ IDEA
- Swagger
- Lombok
- Spring Web
- Spring Boot DevTools
- Spring Data JPA
- Flyway Migration
- MySQL Driver
- Validation
- Spring Security
-
Clona el repositorio:
git clone https://github.com/tu-usuario/foro-hub.git cd foro-hub -
Configura la base de datos MySQL:
CREATE DATABASE foro_hub; CREATE USER 'foro_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON foro_hub.* TO 'foro_user'@'localhost'; FLUSH PRIVILEGES;
-
Configura las propiedades de la aplicación en
src/main/resources/application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/foro_hub spring.datasource.username=user spring.datasource.password=password spring.jpa.hibernate.ddl-auto=update api.security.secret=tu_secreto_de_jwt
-
Compila y ejecuta la aplicación con Maven:
mvn clean install mvn spring-boot:run
-
La aplicación estará disponible en
http://localhost:8080.
Para autenticarse, envíe una solicitud POST a /login con las credenciales del usuario. Esto devolverá un token JWT, que debe incluirse en el encabezado de autorización en todas las solicitudes futuras.
- POST /topicos: Crea un nuevo tópico.
- GET /topicos: Obtiene la lista de tópicos.
- PUT /topicos/{id}: Actualiza un tópico existente.
- DELETE /topicos/{id}: Elimina un tópico de la base de datos.