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

Arquitetura do Projeto

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

Group2.svg

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.

Diagrama de Deploy

Group_3.svg

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/

Materiais de Estudo

Frontend

[Gratuitos]

Documentação oficial [React Native]: https://reactnative.dev/

Documentação oficial [Expo]: https://docs.expo.dev/

Documentação oficial [React]: https://react.dev/

Introdução a React + Expo: https://dev.to/itminds/a-beginners-guide-to-mobile-development-in-react-native-with-expo-4f2o

Montando um app do zero: https://codegenitor.medium.com/setting-up-expo-react-native-app-with-typescript-and-testing-af4d899a5875

[Pagos]

Curso Expo Alura: https://www.alura.com.br/curso-online-react-native-expo-navegacao-menu-suporte-telas

Curso React Native Alura: https://www.alura.com.br/formacao-react-native

Curso React: https://www.alura.com.br/curso-online-react-desenvolvendo-javascript

Curso React Native + Expo Udemy: https://www.udemy.com/course/curso-react-native/

Curso React: https://www.udemy.com/course/react-do-zero-a-maestria-c-hooks-router-api-projetos/

Backend

[Gratuitos]

Documentação oficial: https://kotlinlang.org/docs/home.html

Introdução à Kotlin: https://medium.com/swlh/quick-guide-to-kotlin-8f340a0085ce

Curso Kotlin Iniciante: https://www.youtube.com/watch?v=hEbb9cckl9c&list=PLizN3WA8HR1z1HJy0uSjNe4zhmzJNplb3&pp=iAQB

Montando uma API Spring Boot com Kotlin: https://medium.com/nerd-for-tech/kotlin-spring-boot-tutorial-part-1-creating-rest-endpoints-for-a-task-app-148e4aaa7d0f

[Pagos]

Curso Completo Alura:https://www.alura.com.br/formacao-kotlin

Curso Kotlin Udemy: https://www.udemy.com/course/kotlin-for-java-developers/

Curso Kotlin com Spring Boot: https://www.udemy.com/course/build-restful-apis-using-kotlin-and-spring-boot/

Clone repository
  • Arquitetura do Projeto
  • Banco de Dados
  • Configuração de Ambiente
  • Código
  • Processo
  • design_mockups
  • escopo
  • Home
  • qualidade
  • utilizacao