Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • D decola-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
    • Metrics
    • 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
  • Plataforma onboarding para novos colaboradores
  • decola-wiki
  • Wiki
  • Arquitetura

Arquitetura · Changes

Page history
Update Arquitetura authored Jun 18, 2024 by Lucas Buffet's avatar Lucas Buffet
Hide whitespace changes
Inline Side-by-side
Arquitetura.md
View page @ 7c5514be
...@@ -26,6 +26,51 @@ Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend. ...@@ -26,6 +26,51 @@ Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend.
<p> É uma API REST construída utilizando NestJS que é uma estrutura para criar aplicativos NodeJS eficientes e escaláveis do lado do servidor. Ele usa JavaScript progressivo, é construído e suporta totalmente TypeScript, uma linguagem de programação de código aberto desenvolvido pela Microsoft, e combina elementos de OOP (Programação Orientada a Objetos), FP (Programação Funcional) e FRP (Programação Reativa Funcional). </p> <p> É uma API REST construída utilizando NestJS que é uma estrutura para criar aplicativos NodeJS eficientes e escaláveis do lado do servidor. Ele usa JavaScript progressivo, é construído e suporta totalmente TypeScript, uma linguagem de programação de código aberto desenvolvido pela Microsoft, e combina elementos de OOP (Programação Orientada a Objetos), FP (Programação Funcional) e FRP (Programação Reativa Funcional). </p>
<p> Utilizamos TypeORM que é um ORM (Object Relational Mapper), é uma técnica de mapeamento objeto relacional que permite fazer uma relação dos objetos com os dados que os mesmo representam. </p> <p> Utilizamos TypeORM que é um ORM (Object Relational Mapper), é uma técnica de mapeamento objeto relacional que permite fazer uma relação dos objetos com os dados que os mesmo representam. </p>
### Modelo Model-View-Controller(MVC)
<br>
![mvc](https://tools.ages.pucrs.br/plataforma-onboarding-para-novos-colaboradores/decola-wiki/-/raw/main/arquitetura/mvc.png)
O MVC é um padrão de arquitetura de software. O MVC sugere uma maneira para você pensar na divisão de responsabilidades, principalmente dentro de um software web. O princípio básico do MVC é a divisão da aplicação em três camadas: a camada de interação do usuário (view), a camada de manipulação dos dados (model) e a camada de controle (controller). Com o MVC, é possível separar o código relativo à interface do usuário das regras de negócio, o que sem dúvida traz muitas vantagens que veremos mais à frente.
Quando falamos sobre o MVC, cada uma das camadas apresenta geralmente as seguintes responsabilidades:
● Model: A responsabilidade dos models é representar o negócio. Também é responsável pelo acesso e manipulação dos dados na sua aplicação.
● View: A view é responsável pela interface que será apresentada, mostrando as informações do model para o usuário.
● Controller: É a camada de controle, responsável por ligar o model e a view, fazendo com que os models possam ser repassados para as views e vice-versa.
<br>
### Autenticação(OAuth)
![oauth](https://tools.ages.pucrs.br/plataforma-onboarding-para-novos-colaboradores/decola-wiki/-/raw/main/arquitetura/autentica%C3%A7%C3%A3o.png)
JWT (JSON Web Token) é um padrão aberto (RFC 7519) para transmitir informações confiáveis e seguras entre partes. Ele consiste em uma cadeia compacta e auto-assinada de informações codificadas em formato JSON, que podem ser usadas para autenticação e autorização. JWT é comumente usado para autenticação de usuários em aplicativos web e mobile, e também pode ser usado para comunicação entre sistemas.
O JWT é um padrão aberto que pode ser usado em qualquer aplicativo que precisa transmitir informações confiáveis e seguras entre as partes, independentemente da plataforma ou linguagem de programação.
Como funciona?
O fluxo de trabalho do JWT é dividido em três etapas:
- **Geração do Token:**
A primeira etapa é a geração do token JWT. Nessa etapa, um servidor ou aplicativo gera um token JWT contendo as informações necessárias para autenticar o usuário. O token é geralmente gerado após o usuário fornecer suas credenciais (como nome de usuário e senha) e o servidor verificar essas credenciais. O token é assinado com uma chave secreta que só é conhecida pelo servidor ou aplicativo que gerou o token.
- **Envio do Token:**
A segunda etapa é o envio do token JWT. Nessa etapa, o servidor ou aplicativo envia o token JWT para o cliente, geralmente em um cabeçalho HTTP "Authorization". O cliente armazena o token para uso posterior, como em solicitações subsequentes para o servidor.
- **Verificação do Token:**
A terceira etapa é a verificação do token JWT. Nessa etapa, o servidor ou aplicativo verifica se o token JWT enviado pelo cliente é válido. O servidor verifica a assinatura do token usando a chave secreta que só é conhecida pelo servidor. Se a assinatura estiver correta, o servidor extrai as informações do token e verifica se o usuário tem permissão para acessar o recurso solicitado. Se o token for inválido ou expirado, o servidor nega o acesso ao recurso solicitado.
## Frontend ## Frontend
<h3 id="front-end-def-tec">Definições de Tecnologias</h3> <h3 id="front-end-def-tec">Definições de Tecnologias</h3>
......
Clone repository
  • Arquitetura
  • Configuração
  • DataBase
  • Escopo
  • Estudos
  • Gerência
  • Infraestrutura
  • Mockups
  • Processo
  • Retrospectivas
  • banco_dados
  • configuracao
  • Home