{"id":24394998,"url":"https://github.com/joche-dev/challenge-forohub","last_synced_at":"2026-04-29T03:32:14.695Z","repository":{"id":272802664,"uuid":"912615411","full_name":"joche-dev/challenge-forohub","owner":"joche-dev","description":"Este proyecto 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.","archived":false,"fork":false,"pushed_at":"2025-03-20T00:58:44.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-02T12:36:31.130Z","etag":null,"topics":["flyway-migrations","java","java-jwt","lombok","mysql","spring-boot","spring-data-jpa","spring-security","springdoc-openapi"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joche-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-06T03:21:16.000Z","updated_at":"2025-03-24T05:42:28.000Z","dependencies_parsed_at":"2025-01-16T18:54:20.304Z","dependency_job_id":null,"html_url":"https://github.com/joche-dev/challenge-forohub","commit_stats":null,"previous_names":["joche-dev/challenge-forohub"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joche-dev/challenge-forohub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joche-dev%2Fchallenge-forohub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joche-dev%2Fchallenge-forohub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joche-dev%2Fchallenge-forohub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joche-dev%2Fchallenge-forohub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joche-dev","download_url":"https://codeload.github.com/joche-dev/challenge-forohub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joche-dev%2Fchallenge-forohub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32409095,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T02:37:21.628Z","status":"ssl_error","status_checked_at":"2026-04-29T02:36:50.947Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flyway-migrations","java","java-jwt","lombok","mysql","spring-boot","spring-data-jpa","spring-security","springdoc-openapi"],"created_at":"2025-01-19T20:01:38.894Z","updated_at":"2026-04-29T03:32:14.678Z","avatar_url":"https://github.com/joche-dev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Challenge ONE Back End - ForoHub\n\n## Descripción\nForoHub 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.\n\n## Funcionalidades\n- **CRUD de Tópicos**: Crear, actualizar, eliminar, listar y filtrar tópicos.\n- **Autenticación y Autorización**: Implementación de JWT para proteger el acceso a los endpoints.\n- **Persistencia de Datos**: Almacenamiento de la información en MySQL mediante JPA e Hibernate.\n- **Documentación Automática**: Integración con Springdoc OpenAPI para generar documentación interactiva con Swagger.\n- **Migraciones de Base de Datos**: Uso de Flyway para la gestión de cambios en el esquema de la base de datos.\n\n## Documentación y Endpoints de la API\nLa API de ForoHub cuenta con documentación interactiva generada con Swagger. Para visualizarla, accede a:\n\n🔗 [Swagger UI](http://localhost:8080/swagger-ui/index.html)\n\n## Tecnologías Utilizadas\n- **Entorno de Desarrollo**: IntelliJ IDEA Community Edition\n- **Lenguaje**: Java 17\n- **Framework**: Spring Boot 3.4.0\n- **Gestor de Dependencias**: Maven\n- **Dependencias Principales**:\n   - Spring Web\n   - Spring Data JPA\n   - Spring Boot DevTools\n   - Lombok\n   - Flyway Migration\n   - MySQL Driver\n   - Spring Security\n   - Java JWT\n   - Springdoc OpenAPI\n   - Validation\n- **Base de Datos**: MySQL\n\n## Instrucciones para Ejecutar el Proyecto Localmente\nSigue estos pasos para ejecutar el proyecto en tu entorno local:\n\n1. **Clonar el Repositorio**:\n   ```bash\n    git clone https://github.com/joche-dev/challenge-forohub.git\n    ```\n2. **Configurar el archivo application.properties**:\n   - Abre el proyecto en IntelliJ IDEA.\n   - Edita src/main/resources/application.properties para establecer los parámetros de conexión a MySQL:\n   ```properties\n   spring.datasource.url=jdbc:mysql://localhost:3306/nombre_base_datos\n   spring.datasource.username=tu_usuario\n   spring.datasource.password=tu_contraseña\n   ```\n3. **Compilar y Ejecutar la Aplicación**: \n   - Abre el archivo ApiApplication.java y ejecútalo.\n   - Alternativamente, desde la terminal ejecuta:\n   ```bash\n    mvn spring-boot:run\n    ```\n4. **Acceder a la API**:\n   - La API se ejecutará en http://localhost:8080/\n   - Consulta los endpoints disponibles en [Swagger UI](http://localhost:8080/swagger-ui/index.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoche-dev%2Fchallenge-forohub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoche-dev%2Fchallenge-forohub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoche-dev%2Fchallenge-forohub/lists"}