Pular para conteúdo

Visão Geral da Arquitetura

A arquitetura do projeto que desenvolveremos durante o bootcamp é baseada em microserviços, permitindo que você tenha contato com diferentes tecnologias e padrões arquiteturais modernos.

Arquitetura em Microserviços

mmd

Nossa arquitetura é composta por:

  1. Frontend: Uma Single Page Application (SPA) desenvolvida com Next.js, que oferece uma experiência de usuário moderna e responsiva.

  2. API Gateway: Componente crítico que atua como ponto de entrada único para todos os microserviços, responsável por:

  3. Roteamento inteligente de requisições para os serviços apropriados
  4. Autenticação centralizada e validação de tokens JWT
  5. Logging e monitoramento de todas as requisições
  6. Transformação de dados entre cliente e serviços quando necessário
  7. Implementação de políticas de segurança e rate limiting

  8. Microserviços de Backend:

  9. User Management: Serviço em Java/Spring Boot para gerenciamento de usuários e autenticação
  10. Feedback Request: Serviço em Java/Spring Boot para solicitações de feedback
  11. Feedback Response: Serviço em Java/Spring Boot para respostas de feedback
  12. Feedback Response View: Serviço em Python/FastAPI para visualização de respostas

  13. Banco de Dados: PostgreSQL para persistência de dados, com bancos separados para diferentes contextos

Comunicação entre Serviços

Sistema de Feedbacks Externos[Microservices]«container»Serviço de Solicitaçãode Feedback[Java - Spring Boot] Gerencia a criação deperguntas, aprovação deperguntas pelo PDM egeração do link para osavaliadores externos«container»Serviço de Repostade Feedback[Java - Spring Boot] Permite aos clientesexternos responderem asperguntas do feedbacksolicitado. Valida o tempode validade da solicitação«container»Serviço deVisualização deFeedback[Python - FastApi] Permite a visualização defeedbacks recebidos. Exibede forma anonima para ousuario e não anonima parao PDM«container»Serviço de Usuários[Java - Spring Boot] Gestão e Login de usuárioscom token JWT«container»Banco de Usuários[Postgres] Armazena dados deusuários«container»Banco de Dados deFeedbacks[Postgres] Armazena dados defeedback e perguntas.«container»Frontend deFeedbacks Externos[React - NextJS] Telas de gestao desolicitação, aprovação eresposta de feedback declientes externos aosconsultores internos«container»API Gateway[NodeJS Express] Ponto de entrada único quegerencia autenticação,roteamento e cross-cuttingconcernsusesusesusesusesEnvia requisiçõesHTTP/HTTPSValida token JWT eencaminhaExibir SolicitaçãoSolicitaçõesSolicitações a aprovarPDM AprovarSolicitaçãoPDM RejeitarSolicitaçãoEditar SolicitaçãoValida token JWT eencaminhaResponderSolicitaçãoValida token JWT eencaminhaListar RespostasExibir Resposta UserExibir Resposta PDMValida token JWT eencaminhaCadastrar UsuarioEditar UsuárioLinkar PDM aousuárioLogin