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.
- 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.
- 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)
-
Clone o repositório:
git clone git@github.com:gyselle-marques/ChallengeONE-ForumHub.git cd forumhub -
Configure o banco de dados:
- Edite o arquivo
src/main/resources/application.propertiescom as credenciais e URL do seu banco de dados. - As migrations do banco serão executadas automaticamente via Flyway ao iniciar a aplicação.
- Edite o arquivo
-
Compile o projeto:
./mvnw clean install
Ou, no Windows:
mvnw.cmd clean install
-
Execute a aplicação:
./mvnw spring-boot:run
Ou, no Windows:
mvnw.cmd spring-boot:run
-
Acesse a aplicação:
- Por padrão, estará disponível em:
http://localhost:8080
- Por padrão, estará disponível em:
src/main/java/challenge/forumhub/- Código-fonte principalsrc/main/resources/- Arquivos de configuração e recursosdb/migration/- Scripts de migrations do banco de dados
- 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.
A documentação da API pode ser acessada via Swagger em /swagger-ui.html (se configurado).
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE.txt para mais detalhes.
