Este projeto foi criada para demonstrar um aplicativo fullstack completo construído com Spring Boot e ReactJS, incluindo operações CRUD, autenticação, roteamento, paginação e muito mais.
Aqui com todo meu esforço para demonstrar o que é que isso pode fazer, envolvendo as melhores praticas da comunidade do spring boot e ReactJS.
A aplicação utiliza Spring Boot 3 e Java 21 e ReactJS + Hooks em toda a sua arquitetura.
Aqui estão as funcionalidades da API:
- Autenticação de usuário via JWT: Permite que os usuários façam login com segurança usando JSON Web Tokens (JWT).
- Users: Fornece operações para criar, ler e atualizar perfis de usuário.
- Artigos: Permite que os usuários criem, leiam e excluam artigos.
- Comentários: Permite que os usuários criem, leiam e excluam comentários em artigos.
- Article Listings: Oferece listas paginadas de artigos com parâmetros
offset
elimit
. - Favorito de artigos: Permite que os usuários marquem artigos como favoritos.
- User Following: Permite que os usuários sigam e deixem de seguir perfis de outros usuários.
- Article Feed: Oferece um endpoint de feed para ver artigos de usuários seguidos.
Aqui estão as tecnologias usadas para a implementação:
- Spring Data JPA para gerenciamento eficiente de dados.
- Spring Security com tokens JWT para autenticação.
- JUnit5 e Mockito para teste.
- MySql para o banco de dados.
- Flyway para as migrações de banco de dados.
- modelmapper para os DTOs.
- spring-arg-resolver, para filtragem dinâmica de parâmetros.
#Como faço para executá-lo?
Aqui estão as etapas necessárias para fazer o projeto funcionar:
Você precisará do docker instalado.
- Clone este repositório.
- Execute
docker-compose up
.
É isso :)