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 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
  • Comunidade Universitaria
  • wiki
  • Wiki
  • arquitetura

Last edited by Filipe Oliveira Nov 26, 2023
Page history

arquitetura

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Código BD Dívidas Técnicas

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

Arquitetura Geral da Aplicação

TBD

Diagramas

Diagrama de Deploy

Diagrama de Deploy

Diagrama de Componentes

Diagrama de Implantação

Orçamento AWS

Orçamento

Backend

Definições de Tecnologias

  • Linguagem de Programação: TypeScript
  • Runtime: Node v19
  • Framework: Nest.js V10

Neste projeto, utilizamos 'Clean Architecture', pois tem como objetivo fornecer um sistema modular, escalável, independente de frameworks e tecnologias e fácil de testar e manter. Ao separar as responsabilidades em camadas com propósitos específicos, é possível garantir que cada camada possa ser alterada sem afetar as outras camadas do sistema, facilitando a evolução e manutenção do software ao longo do tempo.

Diagrama de Fluxo

Diagrama de Fluxo

A estrutura do projeto é modularizada, onde há um injetor de dependência específico para cada rota, assim como a criação de toda estrutura, como criação de um novo repositório, novos usecases, domínios(entity), dtos, services, etc.

Responsabilidade das camadas:

Application: Aqui é o local onde é realizado a injeção de dependências, imports e declaração do Controller. É o entrypoint da nossa aplicação.

Core: É onde é realizado a regra de negócio(Como por exemplo: estudante pode participar de um evento se for de faculdade fulana) é nesta camada que vai está regra, transformação de dados, etc.

Infrastructure: É a camada responsável pela persistência de dados, ou seja de fazer a conexão com o banco de dados.

Resources: Local onde é salvo recursos que utilizaremos no projeto, podendo ser imagem, documentos, etc.

Diagrama de Fluxo

Para mais informações

Frontend

Definições de Tecnologias

  • Linguagem de programação: TypeScript
  • Frameworks: React Native
  • Ferramentas: Expo, ESLint, Prettier

Módulos do Sistema

  • assets: Diretório contendo imagens de acesso livre na aplicação
  • components: Contém os componentes visuais utilizados em diferentes partes da aplicação. Os componentes são em sua maioria genéricos e podem ser reutilizados.
  • contexts: Contém os contextos da aplicação, que permitem o acesso a estados de diferentes componentes que estejam "envelopados" nos contextos.
  • hooks: Contém "hooks" customizados da aplicação.
  • routes: Contém a lógica de roteamento para as diferentes telas do aplicativo.
  • screens: Contém as telas desenvolvidas.
  • services: Contém os serviços que consomem os recursos da API.
  • shared: Contém as definições de interfaces de acesso comum do sistema.

Diagrama de Sistema

diagrama_sistema

Clone repository
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • dividas_tecnicas
  • escopo
  • Home
  • processo