Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Vítimas de Crime
  • WikiWiki
  • Wiki
  • Arquitetura do Projeto

Last edited by Leonardo Silveira Berlatto Nov 03, 2023
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Arquitetura do Projeto

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Código BD Qualidade Utilização

Backend

Linguagem enter image description here

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 enter image description here

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 enter image description here

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

image

Segurança 🔒

Para controle de acesso e autenticação foi decidido utilizar o OAuth 2

Cloud ☁

Os recursos da AWS utilizados foram:

  • S3 storage
  • EKS

Containers 🐳

Para facilitar a configuração em outros ambientes e a escalabilidade das aplicações, foi optado por usar containers Docker.

Containers encapsulam aplicações e as executam em um ambiente isolado.

Links Úteis

  • https://www.geeksforgeeks.org/spring-boot-architecture/
  • https://medium.com/@RogelioOrts/layered-architecture-spring-boot-af7dc071d2b5
  • https://auth0.com/pt/intro-to-iam/what-is-oauth-2
  • https://docs.spring.io/spring-security/reference/servlet/oauth2/index.html
  • https://medium.com/cwi-software/primeiros-passos-com-docker-conceitos-b%C3%A1sicos-%C3%A0-cria%C3%A7%C3%A3o-de-sua-primeira-imagem-f6ac2a3c9d25
  • https://www.freecodecamp.org/news/a-beginners-guide-to-docker-how-to-create-your-first-docker-application-cc03de9b639f/
Clone repository
  • Arquitetura do Projeto
  • Banco de Dados
  • Configuração de Ambiente
  • Código
  • Processo
  • design_mockups
  • escopo
  • Home
  • qualidade
  • utilizacao