BackEnd da Aplicação
A Tecnologia
Para o BackEnd do Projeto, baseando-se em questionário de conhecimentos aplicado aos integrantes do time e análise dos requisitos e funcionalidades do projeto, escolheu-se criar uma API REST utilizando Java com SpringBoot, e gerenciador de dependências Maven.
Diagrama de Componentes do BackEnd
O Projeto
O Projeto foi estruturado na abordagem Package by Layer, onde a definição das camadas está tradicionalmente na forma horizontal, onde separamos nosso código com base no que ele faz em uma perspectiva técnica:
- Camada de interface (api): possui os arquivos que configuram as URLs das APIs REST, processa toda a comunicação com o FrontEnd da Aplicação.
- Camada lógica de negócio (service): processa todas as regras de negócio da aplicação.
- Camada de persistência (repository): arquivos de interface responsáveis por fazer as operações de CRUD com o banco de dados.
Frameworks utilizados
Spring Data JPA: Fornece suporte de repositório para a Java Persistence API (JPA). Facilita o desenvolvimento de aplicações que precisam acessar origens de dados JPA. A interface central na abstração do repositório Spring Data é Repository. É necessária a classe de domínio para gerenciar, bem como o tipo de ID da classe de domínio como argumentos. Essa interface atua principalmente como uma interface de marcação para capturar os tipos com os quais trabalhar. A interface extendida, CrudRepository fornece funcionalidades CRUD para a classe de entidade que está sendo gerenciada.
Spring Security: Framework que fornece Autenticação e Autorização de forma segura, altamente customizável e de fácil utilização para aplicações Java.
Criptografia MD5 para armazenamento das senhas de acesso dos usuários.
JUnit e banco em memória H2 para os testes unitários.
As Rotas
Todas as rotas do projeto estão documentadas usando Swagger, que pode ser acessado no contexto "/" da aplicação.