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.
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)
- Camada lógica de negócio (service)
- Camada de persistência (repository)
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.
Esta é a página onde irá ficar todas as informações da Arquitetura do seu projeto, Como:
- Segurança
- Rotas de Backend (Arquitetura funcional)
- Objects – Backend API
- Methods – Backend API
- Arquitetura Não Funcional)
- Diagrama de Pacotes / Componentes (Arquitetura de software)
- Diagrama de Deploy
- Documentação sobre aplicação de Design do Projeto
- Análise dos principios SOLID
- Code Review
Devem ser apresentados das seguintes formas:
- Imagens ou Gifs
- Diagramas ou Sistemas
- Descrições ou Textos explicativos