Skip to content

saitamaworker/forohub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

🚀Bienvenido a Forohub API Challenge🚀





📋DESCRIPCION DEL PROYECTO


👷‍♂️ 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.




CARACTERISTICAS PRINCIPALES


🔐 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




🔧 TECNOLOGIAS UTILIZADAS


👉 BACKEND:

🔸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




🔧 REQUISITOS PREVIOS


🔸JDK 17 o superior

🔸Maven

🔸MySQL 8.0

🔸IDE (IntelliJ IDEA, Eclipse, VS Code)




🚀 CONFIGURACION DEL PROYECTO


  1. Clonar el Repositorio

    git clone https://github.com/tu-usuario/forohub.git
    cd forohub
    
  2. Configurar Base de Datos

    CREATE DATABASE forohub;
    
  3. Configurar credenciales en application.properties

    spring.datasource.url=jdbc:mysql://localhost/forohub
    spring.datasource.username=tu_usuario
    spring.datasource.password=tu_contraseña
    
  4. Compilar y ejecutar

    click en run.



🌐 ENDPOINTS PRINCIPALES


↕️Autenticación

🔸POST /login: Iniciar sesión y obtener token JWT

↕️Tópicos

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



📖 DOCUMENTACION DE API


🏗️ Accede a la documentación de Swagger:

URL http://localhost:8080/swagger-ui.html



🔒 SEGURIDAD


🔸Autenticación basada en JWT

🔸Roles de usuario (USER/ADMIN)

🔸Endpoints protegidos



🗄️ MIGRACIONES DE BASE DE DATOS


👉 Las migraciones se manejan con Flyway.

🔸src/main/resources/db/migration/



🤝 CONTRIBUCIONES


🔸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



🤝 RECURSOS ADICIONALES


🔸Documentación Spring Boot

🔸Guía JWT

🔸Swagger OpenAPI




Sobre mí🏆






Conecta Conmigo 🤝

Me encantaría conectar con diferentes personas alrededor del mundo por lo que si quieres puedes saludarme. 🫣

Releases

No releases published

Packages

No packages published

Languages