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
  • DoBem
  • wiki
  • Wiki
  • Arquitetura

Last edited by Lucas Leifheit Nardon Mar 16, 2024
Page history

Arquitetura

Home Escopo Geral Processo Mockups Configuração Arquitetura Código Banco de Dados Utilização Requisitos

Arquitetura

  • Nesta seção é abordada:
    • arquitetura do projeto
    • funcionamento do Deploy/ produção

Framework Utilizado

  • O Framework Next.js é utilizado para o desenvolvimento unificado de frontend e backend. Foi optado utilizar ele devido a capacidade de criar um site que combina as duas áreas, eliminando a necessidade de repositórios separados para o frontend e o backend. Essa simplificação é possível graças ao uso de API Routes no Next.js para executar endpoints da API somente quando são chamados, evitando a necessidade de uma infraestrutura completa para o backend com endpoints semelhantes.

Plataforma de Hospedagem

  • Realizamos o deploy do projeto na plataforma Vercel, sendo um processo automatizado. As rotas da API são implementadas como funções lambda. Cada deploy gera uma nova versão de build, e ao acessar o site, os servidores da Vercel respondem apenas com o código da versão mais recente. A branch de produção se chama "main", e toda mesclagem (merge) para essa branch aciona automaticamente um novo processo de build e deploy. Nosso banco de dados é armazenado na Vercel, e todo o processo de configuração e deploy é gerenciado pela plataforma.

Frontend

  • Ele é construído com base no Next.js, que é construído sobre o React.js. A arquitetura do React é do tipo Model View Controller (MVC), na qual as funções da aplicação são divididas em três módulos:
    • Model
    • View
    • Controller
  • Essa divisão permite separar as responsabilidades de cada componente na aplicação. Além disso, para facilitar o desenvolvimento, as funções que são usadas em toda a aplicação são isoladas, e componentes de interface do usuário (UI) genéricos são criados em suas pastas específicas para possibilitar o reuso em todo o sistema.

Backend

  • Ele também é desenvolvido usando Next.js, que cria endpoints da API como funções lambda (funções anônimas, usadas para criar pequenos blocos de código reutilizável de forma concisa). Isso significa que o código é executado apenas quando um endpoint específico é chamado, o que contribui para uma maior eficiência e economia de recursos.

Cloud e Deploy

Hospedagem na Vercel

  • O deploy completo é automaticamente realizado na plataforma Vercel.
  • As rotas da API são implementadas como funções lambda.
  • A cada deploy, uma nova versão de build é gerada. Ao acessar o site, os servidores da Vercel retornam apenas esta versão de código.
  • A branch de produção se chama "main", e qualquer merge para esta branch gera um novo processo de build e deploy de forma automática.
  • O banco de dados é armazenado na Vercel, juntamente com o projeto frontend e backend. A Vercel cuida de todo o processo de configuração e deploy, eliminando preocupações adicionais.

Ambiente Local

  • Localmente, utilizamos Docker e Docker Compose para criar um banco de dados local que o projeto se conecta.
  • O projeto é executado localmente com o comando "npm run dev".

Gerenciamento de Código

  • Seguimos o padrão Gitflow para o desenvolvimento de features e correções (fixes).

Diagrama de Deploy

arq

  • No diagrama de deploy acima, é destacado a arquitetura do projeto e como ele é implantado e executado na nuvem e localmente. A plataforma Vercel é o ponto central do deploy na nuvem, enquanto o Docker e o Docker Compose são usados localmente para simular o ambiente de produção. A branch "main" aciona automaticamente o processo de deploy na Vercel quando mesclada. O banco de dados é hospedado na Vercel em conjunto com o projeto, proporcionando um ambiente de desenvolvimento simplificado e controlado.
Clone repository
  • Arquitetura
  • BD
  • Configuracao
  • Escopo
  • Mockups
  • Processo
  • Utilizacao
  • codigo
  • Home
  • requisitos