Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • M Meu Mundo Azul 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
  • Meu Mundo Azul
  • Meu Mundo Azul Wiki
  • Wiki
  • arquitetura

Last edited by leonardo.pasqualotto Sep 29, 2022
Page history
This is an old version of this page. You can view the most recent version or browse the history.

arquitetura

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

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
      • Diagrama de Fluxo
    • Frontend
      • Definições de Tecnologias
      • Módulos do Sistema
      • Diagramas de Componentes
      • Diagrama do Sistema

Arquitetura Geral da Aplicação

A modelagem da arquitetura geral da aplicação foi pensada no C4 model.

Nível 1: Diagrama de contexto do sistema

c4model-level1

Nível 2: Diagrama de contêineres

c4model-level2

Deploy

Recipes API

TBD

Diagrama de Deploy

TBD

Backend

Definições de Tecnologias

  • Linguagem: Java
  • Framework: Spring Boot

Na sprint 0, foi feito um questionário com o time para quantificar o conhecimento dos alunos em linguagem, frameworks e bancos de dados para determinar quais as tecnologias que seriam utilizadas de acordo com o conhecimento geral do time. Com base no questionário e em discussões com o time, foi definido utilizar o spring boot para o desenvolvimento do backend da aplicação.

É uma API RESTful construída utilizando Spring Boot. Para a documentação e teste dos endpoints da aplicação, foi utilizado o Swagger. Para a estruturação da aplicação, utilizamos o Layers Pattern (padrão camadas). Contendo três camadas:

  • Presentation layer: fornece os endpoints da aplicação. Possui o controller, Data Transfer Objects (DTOs) e entidades.

  • Business logic layer: possui toda a lógica da aplicação, como cálculos, transformações de dados e processamento de dados. Está presente no pacote service.

  • Data access layer: fornece toda a comunicação com o banco de dados, criando, buscando, atualizando e deletando dados do banco. Na nossa aplicação esta camada está presente no pacote repository.

Módulos do Sistema

  • config: contém as configurações de cors e do Swagger.

  • controller: é o ponto de entrada do backend, onde ficam definidos os endpoints da aplicação, ou seja, os caminhos após o endereço do servidor como /user e qual o tipo de chamada o endereço irá receber GET, POST, PUT ou DELETE.

  • dto: possui os objetos utilizados para transportar dados entre as camadas.

  • entity: possui os mapeamentos para a tabela do banco de dados.

  • enums : possui as enumerações utilizadas nas DTOS ou entidades.

  • message: centraliza todas as mensagens que são enviadas ao frontend.

  • repository: centraliza toda a comunicação com o banco de dados, passando os parâmetros adequados para as funções desejadas.

  • security: define configurações de acesso aos endpoints e a autenticação de usuários cadastrados.

  • service: centraliza todas as nossas regras de negócio, utilizando o repository para fornecer os dados do banco e realizar as validações.

  • util: possui classes que tem métodos que são utilizados em diversos services, como por exemplo, o Validations.java, que contém validações de campos de um objeto. Nessa camada também ficam as exceptions personalizadas e os handlers dessas exceptions.

Diagrama de Fluxo

ArquiteturaBackend.drawio

Frontend

Definições de Tecnologias

TBD

Módulos do Sistema

TBD

Diagramas de Componentes

TBD

Diagrama do Sistema

TBD

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