{"id":18504180,"url":"https://github.com/otf31/foro_hub","last_synced_at":"2026-04-20T13:09:22.053Z","repository":{"id":261293619,"uuid":"883488109","full_name":"otf31/foro_hub","owner":"otf31","description":"Alura Challenge (Foro Hub)","archived":false,"fork":false,"pushed_at":"2024-11-21T20:26:56.000Z","size":30,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-24T01:21:17.076Z","etag":null,"topics":["flyway-migrations","jpa-hibernate","kotlin","postgresql","spring-boot","spring-starter-web"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/otf31.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}},"created_at":"2024-11-05T03:42:19.000Z","updated_at":"2024-11-21T20:27:00.000Z","dependencies_parsed_at":"2024-11-05T19:37:02.506Z","dependency_job_id":"fdf75ec6-a850-4d83-9ea0-8552da791f4e","html_url":"https://github.com/otf31/foro_hub","commit_stats":{"total_commits":6,"total_committers":1,"mean_commits":6.0,"dds":0.0,"last_synced_commit":"372e2ba2688c80e007cb52b02164b91457f6f1ed"},"previous_names":["otf31/foro_hub"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otf31%2Fforo_hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otf31%2Fforo_hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otf31%2Fforo_hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otf31%2Fforo_hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/otf31","download_url":"https://codeload.github.com/otf31/foro_hub/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101559,"owners_count":22014908,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","jpa-hibernate","kotlin","postgresql","spring-boot","spring-starter-web"],"created_at":"2024-11-06T14:03:24.532Z","updated_at":"2026-04-20T13:09:17.011Z","avatar_url":"https://github.com/otf31.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Foro Hub\nThis project is a REST API to manage topics in a forum.\n\nThis is a challenge project.\n\n## How to run\n1. Clone the repository.\n2. Create a PostgreSQL database.\n3. Set the database connection in the `application.properties` file.\n4. Install the project dependencies with the command `mvn install`.\n5. Run the project with the command `mvn spring-boot:run`.\n6. The API documentation will be available at `http://localhost:8080/swagger-ui.html`.\n\n## Available endpoints\n### Users\n- `POST /auth/login`: Login with a user.\n\nAt this moment, there is no endpoint to create a user. The users are created directly in the database.\n\n### Topics\n- `GET /topics`: Get all topics with pagination.\n- `GET /topics/{id}`: Get a topic by id.\n- `POST /topics`: Create a new topic.\n- `PUT /topics/{id}`: Update a topic by id.\n- `DELETE /topics/{id}`: Delete a topic by id.\n- `GET /ten-most-recent`: Get the ten most recent topics.\n\n## Authentication\nThe API uses JWT to authenticate the users. To access the endpoints, you need to pass the token in the header of the request.\n\n## Database\nThe database is created with Flyway. The migration files are in the `resources/db.migration` folder.\n\n## Tests\nThe tests are in the `src/test` folder. The project has unit tests for the services and controllers.\n\n## Improvements\n- Create an endpoint to create a user.\n- Add integration tests.\n- Add more validations.\n- Add more error handling.\n- Add more documentation.\n- Add more security configurations.\n\n## Technologies\n- Kotlin: Main programming language.\n- Spring Boot: Framework to create the REST API.\n- PostgreSQL: Database to store the data.\n- Maven: Dependency management.\n\n## Author\n- [LinkedIn](https://www.linkedin.com/in/denis-omar-cuyo-ttito-421a02334)\n- [GitHub](https://github.com/OTF31)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotf31%2Fforo_hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fotf31%2Fforo_hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotf31%2Fforo_hub/lists"}