{"id":15129801,"url":"https://github.com/wesleyp846/forumhub","last_synced_at":"2026-02-21T14:04:45.289Z","repository":{"id":247096475,"uuid":"823886470","full_name":"wesleyp846/ForumHub","owner":"wesleyp846","description":"Desafio Api BackEnd Java para fórum de dúvidas ","archived":false,"fork":false,"pushed_at":"2024-07-17T19:19:19.000Z","size":662,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T19:18:56.290Z","etag":null,"topics":["api-rest","authentication","crud-api","docker","docker-compose","docker-container","dockerfile","dockerhub","dockerhub-image","java","postgres","security","spring-boot"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/repository/docker/wesleyp846/forum_hub","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/wesleyp846.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-07-03T23:58:15.000Z","updated_at":"2024-07-17T19:19:22.000Z","dependencies_parsed_at":"2024-07-17T23:36:23.249Z","dependency_job_id":null,"html_url":"https://github.com/wesleyp846/ForumHub","commit_stats":null,"previous_names":["wesleyp846/forumhub"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/wesleyp846/ForumHub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleyp846%2FForumHub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleyp846%2FForumHub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleyp846%2FForumHub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleyp846%2FForumHub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wesleyp846","download_url":"https://codeload.github.com/wesleyp846/ForumHub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wesleyp846%2FForumHub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021378,"owners_count":26087023,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["api-rest","authentication","crud-api","docker","docker-compose","docker-container","dockerfile","dockerhub","dockerhub-image","java","postgres","security","spring-boot"],"created_at":"2024-09-26T02:20:31.967Z","updated_at":"2025-10-14T21:40:29.349Z","avatar_url":"https://github.com/wesleyp846.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Api BakcEnd Forum Hub\r\n\r\n\u003cp align=\"center\"\u003e\r\n   \u003cimg src=\"https://img.shields.io/badge/ STATUS-LANÇADO (desenvolvido)-brightgreen\"/\u003e\r\n\u003c/p\u003e\r\n\u003cp align=\"center\"\u003e\r\n   \u003cimg src=\"https://img.shields.io/badge/ STATUS-VERSÃO 2.5-brightgreen\"/\u003e\r\n\u003c/p\u003e\r\n\r\n\u003e Escrito em `JAVA 17`.\r\n\r\n\u0026nbsp;\r\n## Introdução\r\n\r\n\u003cp align=\"justify\"\u003e\r\n\r\nBem-vindo à documentação da aplicação `Forum Hub`.\r\n\r\nUma ferramenta para gerenciamento de `fóruns`, permitindo a `criação e gerenciamento` de `usuários, tópicos e respostas`, desenvolvida por [Wesley Pereira](https://github.com/wesleyp846).\r\n\r\nEsta aplicação foi criada no contexto da bolsa do curso da [Oracle](https://www.oracle.com/br/), [Alura](https://www.alura.com.br/) e [Ifood](https://www.ifood.com.br/), com foco em `BackEnders iniciantes`.\r\n\r\nA aplicação é escrita `exclusivamente` em [JAVA](https://docs.oracle.com/en/java/javase/17/docs/api/), utilizando o framework [Spring Boot](https://spring.io/projects/spring-boot) e em sua versão 2.5 traz suporte `implemantação` em [Docker](https://www.docker.com/).\r\n\r\n\r\nPara implementação direto do `DOCKER HUB`, cole em seu terminal:\r\n\r\n      sudo docker pull wesleyp846/forum_hub:V2.5\r\n      sudo docker run -d -p 8080:8080 wesleyp846/forum_hub:V2.5\r\n\r\n\u003c/p\u003e\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n## Versão Atual: 2.5\r\n\u0026nbsp;\r\nNa versão 2.5, a aplicacação foi `finalizada`, `Dockerizada` e `entregue`.\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\u003e ### Pré-requisitos\r\n\u0026nbsp;\r\n* Acesso à `WEB`.\r\n* `Doker`\r\n* `Java 17` instalado (opicional).\r\n* `Intellij IDEA` instalado (opicional).\r\n* `Maven` configurado (opicional).\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\u003e ### Tecnologias Utilizadas\r\n\u0026nbsp;\r\n\r\n[JAVA](https://www.oracle.com/java/technologies/downloads/#java22): Usado como linguagem de programação.\r\n\r\n[Spring Boot](https://spring.io/projects/spring-boot): Usado como framework para construção da aplicação.\r\n\r\n[Intellij](https://www.jetbrains.com/pt-br/idea/): Usado como IDE na codificação.\r\n\r\n[Postgresql](https://www.postgresql.org/download): Usado como banco de dados em memória para desenvolvimento.\r\n\r\n[Docker](https://www.docker.com/): Usado na conteinerização da aplicação como um todo.\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\u003e ### Funcionalidades\r\n\u0026nbsp;\r\n\r\n\r\n1. A aplicação permite a `criação e gerenciamento de usuários`.\r\n2. Os `tópicos` podem ser `criados, editados, listados e deletados`.\r\n3. As `respostas` aos tópicos podem ser `criadas, editadas, listadas e deletadas`.\r\n4. A `autenticação` dos usuários é gerenciada por meio de `tokens JWT`.\r\n5. Como o `Docker` instalado é possível clonar o [repositório](https://github.com/wesleyp846/ForumHub) e com comando simples via `terminal`, rodar a aplicação` \r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\u003e ### Endpoints da API\r\n\r\n#### Usuario Controller\r\n\r\n- **PUT /usuarios/{id}**\r\n  - Atualiza um usuário específico.\r\n\r\n- **DELETE /usuarios/{id}**\r\n  - Deleta um usuário específico.\r\n\r\n- **GET /usuarios**\r\n  - Lista todos os usuários.\r\n\r\n- **POST /usuarios**\r\n  - Cria um novo usuário.\r\n\r\n#### Topico Controller\r\n\r\n- **GET /topicos/{id}**\r\n  - Retorna detalhes de um tópico específico.\r\n\r\n- **PUT /topicos/{id}**\r\n  - Atualiza um tópico específico.\r\n\r\n- **DELETE /topicos/{id}**\r\n  - Deleta um tópico específico.\r\n\r\n- **GET /topicos**\r\n  - Lista todos os tópicos.\r\n\r\n- **POST /topicos**\r\n  - Cria um novo tópico.\r\n\r\n#### Resposta Controller\r\n\r\n- **PUT /respostas/{id}**\r\n  - Atualiza uma resposta específica.\r\n\r\n- **POST /respostas/{id}**\r\n  - Cria uma nova resposta.\r\n\r\n- **DELETE /respostas/{id}**\r\n  - Deleta uma resposta específica.\r\n\r\n- **GET /respostas**\r\n  - Lista todas as respostas.\r\n\r\n#### Auth Controller\r\n\r\n- **POST /login**\r\n  - Autentica um usuário.(`Usuario deve estar previamente cadastrado no banco de dados com e-mail e senha`)\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\u003e ### Modelos de Dados (Schemas)\r\n\r\n- **DadosEdicaoDeUsuarioDto**: Dados para edição de um usuário.\r\n- **EditarTopicoDto**: Dados para edição de um tópico.\r\n- **RespostaEditaTopicoDTO**: Dados para edição de uma resposta.\r\n- **EditarRespostaDto**: Dados para edição de uma resposta.\r\n- **DadosNovoUsuarioDto**: Dados para criação de um novo usuário.\r\n- **DadosNovoTopicoDto**: Dados para criação de um novo tópico.\r\n- **DtoDadosNovaResposta**: Dados para criação de uma nova resposta.\r\n- **EnvioAutenticacaoDTO**: Dados para autenticação de um usuário.\r\n- **Pageable**: Dados para paginação.\r\n- **ListagemDeDadosUsuariosDto**: Dados de listagem de usuários.\r\n- **PageListagemDeDadosUsuariosDto**: Dados de paginação de listagem de usuários.\r\n- **PageableObject**: Objeto de paginação.\r\n- **SortObject**: Objeto de ordenação.\r\n- **ListagemDeDadosTopicosDto**: Dados de listagem de tópicos.\r\n- **PageListagemDeDadosTopicosDto**: Dados de paginação de listagem de tópicos.\r\n- **UsuarioSimplesDTO**: Dados simplificados de um usuário.\r\n- **DetalhesRespostaDTO**: Detalhes de uma resposta.\r\n- **PageDetalhesRespostaDTO**: Dados de paginação de detalhes de respostas.\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\r\n\u003e ### Configuração via DOCKER\r\n\r\n\u003e\u003e Clone do repositório\r\n\r\n      git clone https://github.com/wesleyp846/ForumHub\r\n\r\n\u003e\u003e Navegue até a pasta do app\r\n\r\n      cd ForumHub\r\n\r\n\u003e\u003e Compile a aplicação\r\n\r\n      sudo docker-compose build\r\n\r\n\u003e\u003e Rode a aplicação\r\n\r\n      sudo docker-compose up\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\u003e ### Configuração\r\n\r\nPara rodar este projeto, siga os passos abaixo:\r\n\r\n1. **Clone o repositório:**\r\n   ```sh\r\n   git clone https://github.com/wesleyp846/ForumHub\r\n   cd ForumHub\r\n\r\nConfigure o banco de dados:\r\nAtualize as configurações do banco de dados no arquivo `application.properties`.\r\n\r\nExecute a aplicação:\r\n\r\n\r\n      ./mvnw spring-boot:run\r\n\r\nAcesse a documentação da API:\r\nA documentação da API gerada pelo Swagger pode ser acessada em \r\n\r\n      http://localhost:8080/swagger-ui/index.html#/\r\n\r\n\r\n#### Contribuição\r\nPara contribuir com o projeto, siga os passos abaixo:\r\n\r\nFork o repositório.\r\nCrie uma nova branch:\r\n\r\n      git checkout -b minha-feature\r\n      \r\nFaça suas alterações e commit:\r\n\r\n      git commit -m \"Minha nova feature\"\r\n\r\nEnvie para o repositório remoto:\r\n\r\n      git push origin minha-feature\r\n\r\nAbra um Pull Request.\r\n\r\n\u0026nbsp;\r\n\u0026nbsp; \r\n\r\n\u003eLicença\r\nMIT\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\r\n\u003e ### Créditos\r\nBaseado em orientação da [Alura](https://www.alura.com.br/) e seus `professores`, com `live` única de lançamento do exercício.\r\n\r\n\u0026nbsp;\r\n\r\nEsperamos que esta documentação ajude você a compreender a aplicação.\r\n\r\nFique à vontade para contribuir e adicionar melhorias ao código.\r\n\r\nPara mais informações, visite o LinkedIn de [Wesley Pereira](https://www.linkedin.com/in/wesleyp846).\r\n\r\nPrimeiro commit na data de 29/06/2024\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\r\n### Demonstrativos:\r\n\r\n\r\n\u003e Demonstração da API rodando em terminal no servidor\r\n\r\n![Demonstração da API rodando em terminal no servidor](https://github.com/wesleyp846/ForumHub/blob/main/img/imagemDoTerminal.png)\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\r\n\u003e Demonstração dos retornos da API via Insomnia\r\n\r\n![Demonstração da API rodando em requisições backend](https://github.com/wesleyp846/ForumHub/blob/main/img/ExemploDeRespostaDaAPI.png)\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\r\n\r\n\u003e Demonstração da documentação adicioal SWAGGER\r\n\r\n![Demonstração da documentação Swagger adicinal da API](https://github.com/wesleyp846/ForumHub/blob/main/img/TelaDocumentacaoSwagger.png)\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\r\n\r\n\u003e Demonstação das tabelas no Banco de Dados\r\n\r\n![Demonstração do banco de dados da API](https://github.com/wesleyp846/ForumHub/blob/main/img/TabelasNoDB.png)\r\n\r\n\u0026nbsp;\r\n\u0026nbsp;\r\n\r\n\r\n\u003e Demonstração da estrutura de arquivos do codigo fonte\r\n\r\n![Demonstração da estrutura de arquivos](https://github.com/wesleyp846/ForumHub/blob/main/img/EstruturaDeArquivos.png)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwesleyp846%2Fforumhub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwesleyp846%2Fforumhub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwesleyp846%2Fforumhub/lists"}