Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 13
    • Issues 13
    • 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
  • Projeto Focus
  • Wiki
  • Wiki
  • arquitetura

Last edited by Leonardo José Machado Canto Jun 14, 2023
Page history
This is an old version of this page. You can view the most recent version or browse the history.

arquitetura

Home

Sprints

Processos

Requisitos

Arquitetura

Configuração

Mockups

Banco de Dados

Instalação

Gerência de Projeto

User Stories

Horários Disponiveis

# Arquitetura do Sistema

Descrição

Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend, além dos dados relativos ao deploy.

Sumário

  • Arquitetura do Sistema
    • Descrição
    • Sumário
    • Arquitetura Geral da Aplicação
    • Deploy
      • Recipes API
      • Diagrama de Deploy
    • Backend
      • Definições de Tecnologias
      • Módulos do Sistema Back-end
      • Diagrama de Fluxo
    • Front-end
      • Definições de Tecnologias
      • Módulos do Sistema Front-end
      • Diagramas de Componentes
      • Diagrama do Sistema

Arquitetura Geral da Aplicação

Abaixo está representado graficamente como funciona a comunicação do Front-end(Flutter) com o Back-end(Spring).

Diagrama_Sistema.drawio__1_

Backend

Módulos do sistema Back-end

O backend de um sistema é o código que conecta a internet com o banco de dados, gerencia as conexões dos usuários e alimenta a aplicação web, ele é responsável por receber, processar, armazenar e enviar dados. Desta forma, existem diferentes tipos de arquitetura para gerenciar tudo isso, cada uma com seus prós e contras dependendo do contexto da aplicação que será desenvolvida. No projeto Focus foi decidido que a arquitetura será no padrão camadas, onde cada uma tem uma responsabilidade em relação aos dados, como segue:

Controllers É a camada de cima, a que recebe e envia os dados através de requisições HTTP, diante disto, sua responsabilidade é prover os endpoints, que são métodos onde são especificados os tipos de requisições aceitas, e o tipo de retorno das respostas através dos verbos HTTP (GET, PUT, POST, DELETE), para acessar essas requisições o client especifica o verbo e se for o caso o dado que quer buscar, atualizar ou deletar.

Services Camada de processamento de dados, onde se aplica a lógica de negócio da aplicação, além de mediar a comunicação entre as camadas de controller e repository.

Repositories É a camada de acesso a dados, normalmente uma interface, ela persiste os dados no banco de dados e os busca, normalmente a camada mais “embaixo” no sistema.

DTOs Data Transfer Objects, de acordo com regras de negócio os dados podem ser mostrados para os clientes e recebidos deles de forma diferente dos models salvos no banco de dados, assim os atributos dos models que serão mostrados nas requisições são implementados nesses objetos. Normalmente usado entre as camadas de controllers e services.

MappersFazem o mapeamento, a “transformação” de um model em um DTO e vice-versa, normalmente usada na camada de serviço.

Diagrama de fluxo

diagramaBack

Front-end

Módulos do sistema Front-end

Para o projeto, foi definida para o Front-end uma arquitetura chamada de MVC, que será utilizada no desenvolvimento com o Flutter. Todavia, a sua estrutura é definida em três partes:

Model é a camada de manipulação de dados. Ele é responsável pela leitura e escrita de dados, e também de suas validações. Sendo assim, ela acaba sendo completamente independente das outras duas camadas.

View é a camada de interação com o usuário. Ela representa a parte visual da aplicação, e só é alimentada pela camada Controller quando necessário.

Controller é a camada responsável por receber todas as requisições do usuário. Seus métodos são responsáveis por uma página, controlando qual model usar e qual view será mostrado pelo usuário.

Diagrama do Sistema

Aqui podemos ver visualmente através de um diagrama como ficou a implementação do padrão arquitetural do Flutter: Diagrama_MVC.drawio__6_

Clone repository
  • 1º Encontro com Stakeholder
  • Gerenciamento do Projeto
  • Mocks
  • Planing Poker
  • User Stories
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design
  • escopo e cronograma
  • Home
  • horarios
  • instalacao
  • processos
View All Pages