Skip to content

luiscm17/ForoHub-APIRest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ForoHub API REST

Java Spring Boot License

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).

📋 Descripción

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.

🚀 Características

  • 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

🛠️ Tecnologías

  • 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

🏗️ Estructura del Proyecto

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

🚀 Primeros Pasos

Requisitos Previos

  • Java 24 (JDK 24)
  • Maven 3.6.3 o superior
  • MySQL 8.0+

Configuración Inicial

  1. Clonar el repositorio:

    git clone https://github.com/luiscm17/ForoHub-APIRest.git
    cd ForoHub-APIRest
  2. 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
  3. Ejecutar migraciones:

    • Las migraciones de Flyway se ejecutarán automáticamente al iniciar la aplicación
  4. Iniciar la aplicación:

    ./mvnw spring-boot:run
  5. Acceder a la API:

    • La aplicación estará disponible en http://localhost:8080

📚 Documentación de la API

Puedes encontrar ejemplos detallados de solicitudes y respuestas para cada endpoint en la carpeta docs/:

🔧 Variables de Entorno

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

🧪 Ejecutando las Pruebas

./mvnw test

📦 Despliegue

Para crear un archivo JAR ejecutable:

./mvnw clean package
java -jar target/forohub-0.0.1-SNAPSHOT.jar

🤝 Contribución

¡Las contribuciones son bienvenidas! Por favor, sigue estos pasos:

  1. Haz un Fork del proyecto
  2. Crea una rama para tu característica (git checkout -b feature/AmazingFeature)
  3. Haz commit de tus cambios (git commit -m 'Add some AmazingFeature')
  4. Haz push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📄 Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.

📧 Contacto

Luis CM - @luiscm17


About

ForoHub APIRest Alura Challenge - Java Spring Boot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages