👷♂️ ForoHub es una aplicación web desarrollada con Spring Boot que permite a los usuarios crear, consultar, actualizar y eliminar tópicos de discusión. La aplicación implementa autenticación JWT, control de acceso basado en roles y documentación de API con Swagger.
🔐 Autenticación y autorización con JWT
📝 Gestión de tópicos (CRUD)
🛡️ Control de acceso por roles
📊 Documentación de API con Swagger
💾 Persistencia de datos con MySQL
🔄 Migraciones de base de datos con Flyway
🔸Java 17+
🔸Spring Boot 3.x
🔸Spring Security
🔸Spring Data JPA
🔸Lombok
👉 BASE DE DATOS:
🔸MySQL 8.0
🔸Flyway Migration
👉 AUTH:
🔸JWT (JSON Web Tokens)
🔸BCrypt Password Encoding
👉 DOCUMENTACION:
🔸Swagger OpenAPI
🔸JDK 17 o superior
🔸Maven
🔸MySQL 8.0
🔸IDE (IntelliJ IDEA, Eclipse, VS Code)
-
Clonar el Repositorio
git clone https://github.com/tu-usuario/forohub.git cd forohub
-
Configurar Base de Datos
CREATE DATABASE forohub;
-
Configurar credenciales en application.properties
spring.datasource.url=jdbc:mysql://localhost/forohub spring.datasource.username=tu_usuario spring.datasource.password=tu_contraseña
-
Compilar y ejecutar
click en run.
🔸POST /login: Iniciar sesión y obtener token JWT
🔸POST /topicos: Crear nuevo tópico (Requiere autenticación)
🔸GET /topicos: Listar tópicos (Requiere autenticación)
🔸PUT /topicos/{id}: Actualizar tópico (Requiere autenticación)
🔸DELETE /topicos/{id}: Eliminar tópico (Requiere rol ADMIN)
🏗️ Accede a la documentación de Swagger:
URL
http://localhost:8080/swagger-ui.html
🔸Autenticación basada en JWT
🔸Roles de usuario (USER/ADMIN)
🔸Endpoints protegidos
👉 Las migraciones se manejan con Flyway.
🔸src/main/resources/db/migration/
🔸Haz un fork del proyecto
🔸Crea tu feature branch (git checkout -b feature/nueva-caracteristica)
🔸Commit tus cambios (git commit -m 'Añadir nueva característica')
🔸Push a la rama (git push origin feature/nueva-caracteristica)
🔸Abre un Pull Request
Me encantaría conectar con diferentes personas alrededor del mundo por lo que si quieres puedes saludarme. 🫣