Nota: Este proyecto forma parte del desafío técnico del programa de formación Backend con Java y Spring Boot de Alura Latam en colaboración con ONE (Oracle Next Education).
ForoHub es una API REST desarrollada con Spring Boot que permite la gestión de un foro educativo. Los usuarios pueden crear cursos, publicar tópicos de discusión y responder a los mismos, fomentando la colaboración y el aprendizaje en comunidad.
- Gestión de Usuarios: Registro y administración de perfiles de usuario
- Cursos: Creación y gestión de cursos educativos
- Tópicos: Publicación y seguimiento de discusiones
- Respuestas: Sistema de respuestas con marcado de soluciones
- API RESTful: Diseño siguiendo las mejores prácticas REST
- Base de datos: MySQL con migraciones mediante Flyway
- Lenguaje: Java 24
- Framework: Spring Boot 3.5.4
- Base de datos: MySQL 8.0+
- ORM: Hibernate/JPA
- Migraciones: Flyway
- Utilidades: Lombok, Spring Boot DevTools
src/main/java/com/luiscm/forohub/
├── config/ # Configuraciones de la aplicación
├── controller/ # Controladores REST
├── model/ # Entidades y DTOs
│ ├── dto/ # Objetos de Transferencia de Datos
│ └── enums/ # Enumeraciones
├── repository/ # Repositorios de datos
├── service/ # Lógica de negocio
└── ForohubApplication.java- Java 24 (JDK 24)
- Maven 3.6.3 o superior
- MySQL 8.0+
-
Clonar el repositorio:
git clone https://github.com/luiscm17/ForoHub-APIRest.git cd ForoHub-APIRest -
Configurar la base de datos:
-
Crea una base de datos MySQL llamada
forohub_db -
Configura las credenciales en
src/main/resources/application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/forohub_db spring.datasource.username=tu_usuario spring.datasource.password=tu_contraseña
-
-
Ejecutar migraciones:
- Las migraciones de Flyway se ejecutarán automáticamente al iniciar la aplicación
-
Iniciar la aplicación:
./mvnw spring-boot:run
-
Acceder a la API:
- La aplicación estará disponible en
http://localhost:8080
- La aplicación estará disponible en
Puedes encontrar ejemplos detallados de solicitudes y respuestas para cada endpoint en la carpeta docs/:
Para configuraciones sensibles, se recomienda usar variables de entorno:
export SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3306/forohub_db
export SPRING_DATASOURCE_USERNAME=tu_usuario
export SPRING_DATASOURCE_PASSWORD=tu_contraseña./mvnw testPara crear un archivo JAR ejecutable:
./mvnw clean package
java -jar target/forohub-0.0.1-SNAPSHOT.jar¡Las contribuciones son bienvenidas! Por favor, sigue estos pasos:
- Haz un Fork del proyecto
- Crea una rama para tu característica (
git checkout -b feature/AmazingFeature) - Haz commit de tus cambios (
git commit -m 'Add some AmazingFeature') - Haz push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
Luis CM - @luiscm17