ForoHub es una API RESTful que implementa un CRUD para la gestión de tópicos en un foro, con persistencia de datos en MySQL. Además, utiliza JWT para la autenticación y autorización de usuarios, garantizando un acceso seguro a los recursos.
- CRUD de Tópicos: Crear, actualizar, eliminar, listar y filtrar tópicos.
- Autenticación y Autorización: Implementación de JWT para proteger el acceso a los endpoints.
- Persistencia de Datos: Almacenamiento de la información en MySQL mediante JPA e Hibernate.
- Documentación Automática: Integración con Springdoc OpenAPI para generar documentación interactiva con Swagger.
- Migraciones de Base de Datos: Uso de Flyway para la gestión de cambios en el esquema de la base de datos.
La API de ForoHub cuenta con documentación interactiva generada con Swagger. Para visualizarla, accede a:
- Entorno de Desarrollo: IntelliJ IDEA Community Edition
- Lenguaje: Java 17
- Framework: Spring Boot 3.4.0
- Gestor de Dependencias: Maven
- Dependencias Principales:
- Spring Web
- Spring Data JPA
- Spring Boot DevTools
- Lombok
- Flyway Migration
- MySQL Driver
- Spring Security
- Java JWT
- Springdoc OpenAPI
- Validation
- Base de Datos: MySQL
Sigue estos pasos para ejecutar el proyecto en tu entorno local:
- Clonar el Repositorio:
git clone https://github.com/joche-dev/challenge-forohub.git
- Configurar el archivo application.properties:
- Abre el proyecto en IntelliJ IDEA.
- Edita src/main/resources/application.properties para establecer los parámetros de conexión a MySQL:
spring.datasource.url=jdbc:mysql://localhost:3306/nombre_base_datos spring.datasource.username=tu_usuario spring.datasource.password=tu_contraseña
- Compilar y Ejecutar la Aplicación:
- Abre el archivo ApiApplication.java y ejecútalo.
- Alternativamente, desde la terminal ejecuta:
mvn spring-boot:run
- Acceder a la API:
- La API se ejecutará en http://localhost:8080/
- Consulta los endpoints disponibles en Swagger UI