{"id":25869773,"url":"https://github.com/soupaulodev/forum-hub","last_synced_at":"2025-03-02T05:26:49.233Z","repository":{"id":264908663,"uuid":"893245803","full_name":"soupaulodev/forum-hub","owner":"soupaulodev","description":"ForumHub é um serviço de API Rest para uma rede social focada em criar um ambiente colaborativo para discussões e interação entre usuários.","archived":false,"fork":false,"pushed_at":"2025-02-28T00:47:15.000Z","size":4037,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T09:11:08.183Z","etag":null,"topics":["api","java","jpa","jwt","postgresql","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soupaulodev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-23T23:02:32.000Z","updated_at":"2025-02-28T00:47:12.000Z","dependencies_parsed_at":"2025-02-18T23:37:38.580Z","dependency_job_id":null,"html_url":"https://github.com/soupaulodev/forum-hub","commit_stats":null,"previous_names":["soupaulodev/one-forumhub","soupaulodev/forum-hub"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soupaulodev%2Fforum-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soupaulodev%2Fforum-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soupaulodev%2Fforum-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soupaulodev%2Fforum-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soupaulodev","download_url":"https://codeload.github.com/soupaulodev/forum-hub/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241464201,"owners_count":19967193,"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":["api","java","jpa","jwt","postgresql","spring-boot"],"created_at":"2025-03-02T05:26:48.517Z","updated_at":"2025-03-02T05:26:49.218Z","avatar_url":"https://github.com/soupaulodev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ForumHub\n\n![Cover](./.github/cover.png)\n![Java CI with Maven Status](https://github.com/soupaulodev/one-forumhub/actions/workflows/maven.yml/badge.svg)\n\nEste projeto é minha aplicação para o desafio da Trilha de Especialização em Spring do Oracle ONE em parceria com Alura.\n\nAcesse: [ONE - ForumHub](https://github.com/soupaulodev/one-forumhub)\n\n## Descrição\n\nO projeto vai além dos requisitos do desafio. Além de permitir a criação de tópicos e a autenticação de usuários,\nele possibilita a interação entre os usuários, permitindo que criem e acessem novos fóruns, participem de discussões\npor meio de tópicos e comentários, e distribuam highs em tudo o que gostarem.\n\n## Tecnologias\n\n### Core\n\n- Java 21\n- Spring Boot 3.4\n- Spring Data JPA\n- Spring Validation\n- PostgreSQL\n- Maven\n\n### Segurança\n\n- Spring Security 6\n- Json Web Token\n\n### Testes\n\n- JUnit 5\n- Mockito\n- H2 Database\n\n### Cache\n\n- Spring Data Redis\n- Spring Cache\n\n### Documentação\n\n- SpringDoc OpenAPI\n\n### DevOps\n\n- Spring Actuator\n\n### Ferramentas de Desenvolvimento\n\n- Spring DevTools\n\n## Endpoints\n\n### Documentação\n\n- GET /swagger-ui.html\n- GET /v3/api-docs\n\n### Autenticação\n\n- `POST /api/v1/auth/signup`  \n  **Descrição**: Cria e autentica um novo usuário no sistema.\n\n- `POST /api/v1/auth/login`  \n  **Descrição**: Realiza o login de um usuário no sistema.\n\n- `POST /api/v1/auth/logout`  \n  **Descrição**: Realiza o logout do usuário autenticado.\n\n### Usuários\n\n- `GET /api/v1/users/all?page={PageNumber}\u0026size={ItemsPerPage}`  \n  **Descrição**: Obtém uma lista de usuários paginada.  \n  **Parâmetros**:\n  - `page`: Número da página.\n  - `size`: Quantidade de itens por página.\n\n- `GET /api/v1/users/{id}`  \n  **Descrição**: Obtém os dados de um usuário específico pelo ID.\n\n- `PUT /api/v1/users/{id}`  \n  **Descrição**: Atualiza as informações de um usuário específico pelo ID.\n\n- `DELETE /api/v1/users/{id}`  \n  **Descrição**: Exclui um usuário específico pelo ID.\n\n- `POST /api/v1/users/high/{id}`  \n  **Descrição**: Adiciona um high a um usuário, identificando-o com o ID.\n\n- `DELETE /api/v1/users/unhigh/{id}`  \n  **Descrição**: Remove o high dado a um usuário, identificando-o com o ID.\n\n### Fóruns\n\n- `GET /api/v1/forums/all?page={PageNumber}\u0026size={ItemsPerPage}`  \n  **Descrição**: Obtém uma lista de fóruns paginada.  \n  **Parâmetros**:\n  - `page`: Número da página.\n  - `size`: Quantidade de itens por página.\n\n- `GET /api/v1/forums/{id}`  \n  **Descrição**: Obtém os dados de um fórum específico pelo ID.\n\n- `POST /api/v1/forums`  \n  **Descrição**: Cria um novo fórum.\n\n- `PUT /api/v1/forums/{id}`  \n  **Descrição**: Atualiza as informações de um fórum específico pelo ID.\n\n- `DELETE /api/v1/forums/{id}`  \n  **Descrição**: Exclui um fórum específico pelo ID.\n\n- `POST /api/v1/forums/high/{id}`  \n  **Descrição**: Adiciona um high a um tópico, identificando-o com o ID.\n\n- `DELETE /api/v1/forums/unhigh/{id}`  \n  **Descrição**: Remove o high dado a um fórum, identificando-o com o ID.\n\n### Tópicos\n\n- `GET /api/v1/topics/all?page={PageNumber}\u0026size={ItemsPerPage}`  \n  **Descrição**: Obtém uma lista de tópicos paginada.  \n  **Parâmetros**:\n  - `page`: Número da página.\n  - `size`: Quantidade de itens por página.\n\n- `GET /api/v1/topics/{id}`  \n  **Descrição**: Obtém os dados de um tópico específico pelo ID.\n\n- `POST /api/v1/topics`  \n  **Descrição**: Cria um novo tópico.\n\n- `PUT /api/v1/topics/{id}`  \n  **Descrição**: Atualiza as informações de um tópico específico pelo ID.\n\n- `DELETE /api/v1/topics/{id}`  \n  **Descrição**: Exclui um tópico específico pelo ID.\n\n- `POST /api/v1/topics/high/{id}`  \n  **Descrição**: Adiciona um high a um tópico, identificando-o com o ID.\n\n- `DELETE /api/v1/topics/unhigh/{id}`  \n  **Descrição**: Remove o high dado a um tópico, identificando-o com o ID.\n\n### Comentários\n\n- `GET /api/v1/comments/all?page={PageNumber}\u0026size={ItemsPerPage}`  \n  **Descrição**: Obtém uma lista de comentários paginada.  \n  **Parâmetros**:\n  - `page`: Número da página.\n  - `size`: Quantidade de itens por página.\n\n- `POST /api/v1/comments`  \n  **Descrição**: Cria um novo comentário.\n\n- `PUT /api/v1/comments/{id}`  \n  **Descrição**: Atualiza um comentário específico pelo ID.\n\n- `DELETE /api/v1/comments/{id}`  \n  **Descrição**: Exclui um comentário específico pelo ID.\n\n- `POST /api/v1/users/high/{id}`  \n  **Descrição**: Adiciona um high a um comentário, identificando-o com o ID.\n\n- `DELETE /api/v1/users/unhigh/{id}`  \n  **Descrição**: Remove o high dado a um comentário, identificando-o com o ID.\n\n## Licença\n\nEste projeto está licenciado sob a Licença MIT - veja o\narquivo [license](https://github.com/soupaulodev/one-forumhub/blob/main/LICENSE) para detalhes\n\n## Contribuindo\n\nPrimeiramente, obrigado por considerar contribuir para este projeto. Toda ajuda é bem-vinda. Se você deseja contribuir,\nsiga estas etapas:\n\n1. Fork o projeto\n2. Crie uma nova branch (`git checkout -b feature/feature-name`)\n3. Realize as alterações\n4. Commit suas alterações\n5. Push para a branch (`git push origin feature/feature-name`)\n6. Abra um Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoupaulodev%2Fforum-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoupaulodev%2Fforum-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoupaulodev%2Fforum-hub/lists"}