Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • 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
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Create a new issue
  • Jobs
  • Issue Boards
Collapse sidebar
  • Pagges
  • WikiWiki
  • Wiki
  • Arquitetura

Last edited by Guilherme de Moraes Machado Pereira Silva Apr 12, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Arquitetura

Home Escopo Processo Design/Mockups Configuração Arquitetura Gerência Código BD Qualidade Frontend Backend Analytics

Arquitetura

Descrição

Esta seção da documentação visa apresentar os padrões arquiteturais gerais do projeto, bem como a infraestrutura adotada.

Sumário

  • Arquitetura E2E
  • Arquitetura de Infraestrutura

Arquitetura E2E

O projeto Pagges adota uma arquitetura baseada no padrão Model-View-Controller (MVC), promovendo a separação clara entre a camada de apresentação, lógica de negócio e persistência de dados.

🔧 Backend

A estrutura do backend foi construída utilizando o framework NestJS, com foco em modularidade e escalabilidade. A organização de pastas está dividida da seguinte forma:

Essa estrutura permite manter a responsabilidade de cada parte bem delimitada, com fácil manutenção e escalabilidade do sistema.

🧰 Tecnologias Utilizadas


📱 Frontend

O frontend foi desenvolvido utilizando Expo com React Native e segue uma organização baseada em responsabilidades, focada em componentes reutilizáveis, separação de lógica, interface e dados:

Essa estrutura favorece a manutenção e escalabilidade do projeto conforme novas funcionalidades são incorporadas.

🧰 Tecnologias Utilizadas


Arquitetura de Infraestrutura

Diagrama em alto nível da arquitetura:

image

A infraestrutura do projeto foi construída utilizando Docker para conteinerização dos serviços, AWS EC2 para hospedagem do backend e AWS ECR para versionamento e distribuição das imagens Docker.

🖥️ Serviços Utilizados

  • AWS EC2: Instância configurada para rodar os containers Docker que executam o backend, banco de dados e testes automatizados.
  • AWS ECR: Repositório de imagens Docker utilizado para armazenar e versionar builds da aplicação.
  • Docker: Ferramenta de conteinerização utilizada para empacotar a aplicação backend e suas dependências.

🔁 Fluxo de Deploy

  • Alterações na branch main disparam o pipeline do GitLab CI/CD.
  • O backend é empacotado em uma imagem Docker e enviado ao AWS ECR.
  • A nova imagem é utilizada para atualizar o container rodando na instância AWS EC2.

📋 Boas práticas no desenvolvimento

O que são códigos de status HTTP?

Sempre que uma requisição é feita a um servidor web, ele retorna um cabeçalho HTTP com um código de status, que indica o resultado da operação. Esses códigos são agrupados em cinco classes:

  • 1xx – Informativo
  • 2xx – Sucesso
  • 3xx – Redirecionamento
  • 4xx – Erro do cliente
  • 5xx – Erro do servidor

Códigos mais utilizados

Código Significado Descrição
200 OK A requisição foi bem-sucedida.
201 Created Um novo recurso foi criado com sucesso.
204 No Content Requisição bem-sucedida, mas sem conteúdo a retornar.
400 Bad Request Requisição malformada pelo cliente.
401 Unauthorized Autenticação necessária para acessar o recurso.
403 Forbidden Acesso ao recurso negado, mesmo autenticado.
404 Not Found O recurso requisitado não foi encontrado.
405 Method Not Allowed Método HTTP não permitido para o recurso.
500 Internal Server Error Erro genérico no servidor.
502 Bad Gateway Gateway ou proxy recebeu resposta inválida do servidor de origem.

Principais métodos HTTP usados no backend

  • GET: Requisita dados do servidor (leitura).
  • POST: Envia dados para criação de um novo recurso.
  • PUT: Atualiza um recurso existente (ou cria, se não existir).
  • PATCH: Atualiza parcialmente um recurso.
  • DELETE: Remove um recurso do servidor.

Clone repository
  • Arquitetura Pagges
  • Arquitetura
  • Banco de Dados
  • design
    • mockups
  • escopo e cronograma
  • Home