Skip to content

gyselle-marques/ChallengeONE-ForumHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💬 Challenge ONE Praticando Spring Framework: Fórum Hub 💬

ForumHub é uma aplicação web desenvolvida em Java com Spring Boot, que simula um fórum de discussão online. O objetivo principal é permitir a criação, visualização e interação em tópicos de discussão, facilitando o aprendizado colaborativo e a troca de conhecimento entre usuários.

8f9126de-f8e2-4249-8584-a59b91ff928e

📍 Objetivo do Desafio

  • Gerenciamento de Usuários: Cadastro, autenticação e gerenciamento de usuários.
  • Tópicos de Discussão: Criação, listagem, detalhamento e atualização de tópicos.
  • Respostas: Permite que usuários respondam aos tópicos e interajam entre si.
  • Cursos: Organização dos tópicos por cursos e categorias.
  • Validações e Segurança: Utiliza autenticação JWT e validações para garantir a integridade dos dados.

💻 Tecnologias Utilizadas

  • Java 17+
  • Maven
  • Spring Boot
  • Spring Data JPA
  • Spring Security
  • Flyway (migração de banco de dados)
  • Banco de dados relacional (ex: PostgreSQL)
  • Lombok
  • Java JWT
  • Spring Documentation (Swagger)

▶️ Como Executar o Projeto

  1. Clone o repositório:

    git clone git@github.com:gyselle-marques/ChallengeONE-ForumHub.git
    cd forumhub
  2. Configure o banco de dados:

    • Edite o arquivo src/main/resources/application.properties com as credenciais e URL do seu banco de dados.
    • As migrations do banco serão executadas automaticamente via Flyway ao iniciar a aplicação.
  3. Compile o projeto:

    ./mvnw clean install

    Ou, no Windows:

    mvnw.cmd clean install
  4. Execute a aplicação:

    ./mvnw spring-boot:run

    Ou, no Windows:

    mvnw.cmd spring-boot:run
  5. Acesse a aplicação:

    • Por padrão, estará disponível em: http://localhost:8080

📌 Estrutura do Projeto

  • src/main/java/challenge/forumhub/ - Código-fonte principal
  • src/main/resources/ - Arquivos de configuração e recursos
  • db/migration/ - Scripts de migrations do banco de dados

⚠️ Observações

  • O projeto utiliza autenticação JWT para proteger as rotas.
  • Para testar endpoints protegidos, é necessário autenticar-se e utilizar o token JWT retornado.
  • Consulte a documentação dos controllers para detalhes dos endpoints disponíveis.

✏️ Documentação

A documentação da API pode ser acessada via Swagger em /swagger-ui.html (se configurado).

📄 Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE.txt para mais detalhes.