Backend
Linguagem
Para o backend, foi escolhida a linguagem Kotlin devido a sua compatibilidade com a JVM, fácil configuração de ambiente, sintaxe simples e vários recursos disponíveis na sua biblioteca padrão.
Framework
Para o rápido desenvolvimento da aplicação, a escolha do framework recaiu sob um que tivesse extensa documentação e grandes exemplos na internet: o Spring Boot
Gerenciador de Dependências
Escolhemos o Gradle pois sua configuração, tanto instalação como a adição de dependências, se dá de forma muito mais simples do que com o Maven.
⚙ ️
Arquitetura Para o backend, foi decidido que seria utilizado um modelo de arquitetura em camadas para facilitar o desenvolvimento mas ainda assim manter uma consistência entre lógica de negócio e recursos do framework/aplicação
Além disso, outras práticas incluem:
- TDD
- DDD
- Documentação como código
- Tratamento/Apresentação adequada de erros
🔒
Segurança Para controle de acesso e autenticação foi decidido utilizar o OAuth 2
Links Úteis
- https://auth0.com/pt/intro-to-iam/what-is-oauth-2
- https://docs.spring.io/spring-security/reference/servlet/oauth2/index.html
☁
Cloud Os recursos da AWS utilizados foram:
- S3 storage
- EKS