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
This is an old version of this page. You can view the most recent version or browse the history.

arquitetura

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 Branches usadas (main, develop, etc).

Pipeline de build/test/deploy (ex.: GitHub Actions).

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