Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • C Cora - Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Commits
Collapse sidebar
  • Cora
  • Cora - Wiki
  • Wiki
  • Arquitetura

Last edited by Maria Eduarda Wendel Maia Nov 16, 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 Gerência Processo Design Configuração Arquitetura Banco de Dados

Sumário

  • 1. Visão Geral da Arquitetura
  • 2. Diagrama de Deploy
  • 3. Fluxo Geral do Sistema
    • 3.1. Fluxo da Aplicação (Execução)
    • 3.2. Fluxo de Deploy
      • 🔁 Backend (EC2)
      • 🌐 Frontend (Vercel)
  • 4. Componentes da Arquitetura
    • 4.1 Backend – NestJS
      • Tecnologias:
      • Responsabilidades:
      • Principais Endpoints:
    • 4.2 Banco de Dados – PostgreSQL
    • 4.3 Frontend – React + Vite
      • Tecnologias:
    • 4.5 Instância EC2 (Resumo Geral)
      • Informações:
  • 5. Infraestrutura AWS (Visão Geral)
    • Componentes utilizados:
  • 6. Custos da Infraestrutura (orçamento)
  • 8. Decisões Arquiteturais
    • Escolhas principais:

1. Visão Geral da Arquitetura

Sistema web full-stack composto por:

  • Frontend: React + Vite (hospedado na Vercel)
  • Backend: NestJS rodando em uma instância EC2
  • Banco de Dados: PostgreSQL em Docker
  • CI/CD: Pipelines automáticos para deploy de frontend e backend

2. Diagrama de Deploy

Screenshot_From_2025-09-01_18-11-40


Esse diagrama representa:

  • Onde cada parte do sistema está hospedada
  • Como backend, frontend, banco e S3 se comunicam
  • Como funcionam os pipelines de deploy
  • Relação entre EC2, S3 e Vercel

3. Fluxo Geral do Sistema

3.1. Fluxo da Aplicação (Execução)

  1. Usuário acessa o Frontend (Vercel)
  2. O frontend envia requisições à API (EC2)
  3. O backend processa regras de negócio
  4. O backend consulta e atualiza o Banco PostgreSQL
  5. Para uploads:
    • Frontend → Backend → S3
    • S3 retorna a URL ao Backend
    • Backend retorna ao Frontend
  6. O Frontend exibe dados e imagens armazenadas

3.2. Fluxo de Deploy

🔁 Backend (EC2)

  1. Commit → pipeline é acionada
  2. Pipeline executa build
  3. Nova versão é enviada e atualizada no EC2 via Docker

🌐 Frontend (Vercel)

  1. Commit → build automático
  2. Deploy instantâneo
  3. Rollback fácil e protegido

4. Componentes da Arquitetura

4.1 Backend – NestJS

Tecnologias:

  • NestJS
  • TypeScript
  • Prisma ORM
  • Docker
  • JWT Authentication

Responsabilidades:

  • Regras de negócio
  • Autenticação
  • Integração com PostgreSQL
  • Uploads para o S3
  • Expor endpoints REST para o frontend

Principais Endpoints:

  • GET /users
  • POST /users
  • PATCH /users/:id
  • DELETE /users/:id

4.2 Banco de Dados – PostgreSQL

  • Rodando em container Docker
  • Porta interna não exposta publicamente
  • Gerenciado via Prisma
  • Migrations e seeds automatizados

4.3 Frontend – React + Vite

Tecnologias:

  • React
  • Vite
  • TypeScript
  • ESLint
  • Deploy pela Vercel

4.5 Instância EC2 (Resumo Geral)

Informações:

  • Papel: Hospedar Backend + Banco (via Docker)
  • Região: us-east-2
  • Comunicação segura com S3 via IAM Role

5. Infraestrutura AWS (Visão Geral)

Componentes utilizados:

  • EC2 – Executa backend e banco
  • S3 – Armazenamento de imagens
  • IAM Roles – Permissões seguras (sem chaves no código)

6. Custos da Infraestrutura (orçamento)

Screenshot_From_2025-09-01_18-26-19


8. Decisões Arquiteturais

Escolhas principais:

  • EC2 + Docker pela simplicidade de deploy
  • PostgreSQL em container para manter custo zero no BD
  • S3 pela durabilidade e integração nativa
  • Frontend na Vercel por facilidade, rapidez e custo zero
  • Pipelines para automação e consistência
Clone repository
  • Arquitetura
  • Artefatos
  • Banco de Dados
  • Design
  • Gerência
  • Home
  • Processo
  • configuração
  • escopo