Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • O Orientação Bucal no Envelhecimento Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 14
    • Issues 14
    • 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
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Orientação Bucal no Envelhecimento
  • Orientação Bucal no Envelhecimento Wiki
  • Wiki
  • arquitetura

Last edited by Lucas Souza da Silva Jun 18, 2022
Page history

arquitetura

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

Arquitetura do Sistema

Sumário

  • Arquitetura do Sistema
    • Descrição
    • Sumário
    • Deploy
      • Recipes API
      • Diagrama de Deploy
    • Backend
      • Definições de Tecnologias
      • Módulos do Sistema
      • Diagrama de Fluxo
    • Frontend
      • Definições de Tecnologias
      • Módulos do Sistema
      • Diagramas de Componentes
      • Diagrama do Sistema

Deploy

Recipes API

Link para a documentação da api no postman

Diagrama de Deploy

arquitetura-geral

Backend

Definições de Tecnologias

Escolhas:

  • Linguagem: Java;
  • Frameworks: SpringBoot
  • Ferramentas: Lombok, Junit e Cucumber.

Justificativa:

A escolha pelo Java no backend foi feita pelo grande numero de pessoas que já tem um conhecimento intermediário na linguagem desta forma tendo uma curva de aprendizado menor. Também existe muito material sobre linguagem disponível gratuitamente na internet.

Hoje o SpringBoot é bastante popular no desenvolvimento de REST API e existe uma vasta documentação e material para estudo gratuito na internet.

Lombok faz o uso de annotations para minimizar a repetição de código.

Junit ferramente para execução de testes.

Cucumber é uma ferramente para integrar as historia de usuário aos testes utilizando do conceito de Behavior-Driven Development (BDD)

Módulos do Sistema

Para o sistema foi utilizado a arquitetura de camadas onde existem as seguintes camadas

Entity são uma representação das tabelas do banco de dados e suas propriedades e conexões.

Repository são interfaces que herdam os metodos de crud(ações basica de SQL) do JPA.

Service classes com toda a logica de negocio e necessária para o funcionamento.

Controller endpoints da aplicação onde o rest api é implementado. E onde todo o fluxo dos dados é controlado

application.properties é o arquivo de configuração do springboot caso alguma variavel de ambiente precise ser alterada.

Diagrama de Sistema

diagrama_de_sistema

Frontend

Definições de Tecnologias

Escolhas:

  • Linguagem: JavaScript;
  • Frameworks: React e React Native;
  • Ferramentas: Prettier, ESLint, Expo e NGIX.

Justificativa:

React e React Native possuem sintaxe similiar, logo a curva de aprendizado não será grande. Deixar em repositórios separados faz com que cada responsabilidade esteja em um lugar específico sem causar impacto em ambos.

Expo é uma ferramenta utilizada no desenvolvimento, garantindo uma maneira simples de acessar API's nativas sem precisar instalar dependências. Muito utilizado no desenvolvimento mobile, apresentando mudanças em tempo real relizadas no código.

Prettier e ESLint são ferramentas voltadas para a padronização de código. A primeira aplica formatação e a segunda identifica padrões e garante o uso de boas práticas.

NGIX é um servidor leve de HTTP que será usado para disponibilizar nosso site estático.

Módulos do Sistema

  • Components: Onde estarão localizados os componentes visuais encontrados em diferentes páginas da aplicação. Os componentes em sua maioria são genéricos e podem ser utilizado em mais de uma parte do sistema.
  • Screen: Onde estarão localizadas as telas da aplicação. Cada tela é composta de diversos componentes que quando juntos apresentam funcionalidades da aplicação
  • Routes: A camada de rotas da aplicação, utilizando o padrão de arquitetura Coordinator, irá realizar a navegação entre as telas da aplicação, tendo conhecimento do fluxo e como devem se comportar. Possui a StackNavigator (navegação em telas empilhadas que seguem um determinado fluxo).
  • Constants: Classes que podem ser reaproveitadas na aplicação, com funcionalidades de formatação de texto, modelos de entrada, acesso a constantes, etc...
  • Assets: Pasta com as imagens que são utilizadas na aplicação uma ou mais vezes.

Diagramas de Componentes

TBD

Diagrama do Sistema

Maneira que as camadas do sistema se comunicam. Um conjunto de componentes (implementados de forma genérica) compõe uma tela, que é chamada pelas rotas para compor o fluxo de telas da aplicação.

diagrama-sistema-mobile

Clone repository
  • Gerência
  • Retro
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • estudos
  • gerencia
  • Home
  • instrucoes
View All Pages