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
  • 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
  • WimBelemDon
  • WikiWiki
  • Wiki
  • arquitetura

Last edited by Isabela Araujo Sep 06, 2025
Page history

arquitetura

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

1. Arquitetura do Sistema

Visão geral

O projeto utiliza NestJS como framework backend, responsável por gerenciar a comunicação com o frontend e organizar a aplicação em módulos bem estruturados. Toda a infraestrutura do backend, incluindo a aplicação e o banco de dados, é executada em contêineres Docker, o que garante portabilidade, facilidade de configuração e isolamento entre os serviços.

Como sistema gerenciador de banco de dados foi escolhido o PostgreSQL, por ser robusto, amplamente utilizado em aplicações de produção e não possuir custos de licenciamento ou taxas de uso associadas.

Arquitetura e Tecnologias do Backend

Esta seção detalha as principais tecnologias usadas para a arquitetura do servidor e a infraestrutura do projeto.

NestJS (Framework Backend)

O NestJS é o framework principal utilizado no backend. Suas responsabilidades-chave no projeto são:

  • Gerenciar a comunicação entre as requisições do frontend e o servidor.
  • Organizar a aplicação em módulos bem estruturados, facilitando a manutenção e a escalabilidade.

Docker (Infraestrutura e Contêineres)

Toda a infraestrutura de backend, incluindo a aplicação NestJS e o banco de dados, é executada utilizando Docker.

Fluxo de Dados


flowchart TD
    A(Frontend)
    B(API-Middleware)
    C{Verifica auth?}
    X(Controller)
    D(Camada de serviço)
    E(Camada de repository)
    F(Database)
    G(Return 403 Forbidden)
    
    A --> |HTTP request| B
    B --> C
    C -->|Sim| X
    C -->|Nao| G
    X --> D
    D --> E
    E --> F
    F --> E
    E --> D
    D --> X
    X --> |HTTP response| A

2. Banco de Dados

Estratégia de migrações (Prisma Migrate)

Usamos Prisma Migrate com os comandos:

  • Desenvolvimento:
    npm run prisma:migrate:dev -- <nome>

Cria e aplica migração usando .env.development.

  • Deploy:
    npm run prisma:migrate:deploy
    

Aplica migrações existentes com o schema de produção.

3. Integrações externas

A autenticação é realizada via Firebase Auth. O frontend utiliza login social (Google, etc.) e recebe um ID Token (JWT) do Firebase. Esse token é então enviado ao backend, que valida sua autenticidade com o Firebase antes de autorizar o acesso. fluxoAuth

4. Fluxo de Deploy / CI-CD

fluxo-deploy

Clone repository
  • Banco de Dados
  • Escopo
  • Home
  • arquitetura
  • frontend
  • processo