MCPcopy Index your code
hub / github.com/devfullcycle/imersao22

github.com/devfullcycle/imersao22 @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
233 symbols 474 edges 75 files 44 documented · 19%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Gateway de Pagamento - Imersão Full Cycle

Sobre o Projeto

Este projeto foi desenvolvido durante a Imersão Full Stack & Full Cycle, onde construímos um Gateway de Pagamento completo utilizando arquitetura de microsserviços.

O objetivo é demonstrar a construção de um sistema distribuído moderno, com separação de responsabilidades, comunicação assíncrona e análise de fraudes em tempo real.

Arquitetura

Visualize a arquitetura completa aqui

Componentes do Sistema

  • Frontend (Next.js)
  • Interface do usuário para gerenciamento de contas e processamento de pagamentos
  • Desenvolvido com Next.js para garantir performance e boa experiência do usuário

  • Gateway (Go)

  • Sistema principal de processamento de pagamentos
  • Gerencia contas, transações e coordena o fluxo de pagamentos
  • Publica eventos de transação no Kafka para análise de fraude

  • Apache Kafka

  • Responsável pela comunicação assíncrona entre API Gateway e Antifraude
  • Garante confiabilidade na troca de mensagens entre os serviços
  • Tópicos específicos para transações e resultados de análise

  • Antifraude (Nest.js)

  • Consome eventos de transação do Kafka
  • Realiza análise em tempo real para identificar possíveis fraudes
  • Publica resultados da análise de volta no Kafka

Fluxo de Comunicação

  1. Frontend realiza requisições para a API Gateway via REST
  2. Gateway processa as requisições e publica eventos de transação no Kafka
  3. Serviço Antifraude consome os eventos e realiza análise em tempo real
  4. Resultados das análises são publicados de volta no Kafka
  5. Gateway consome os resultados e finaliza o processamento da transação

Ordem de Execução dos Serviços

Para executar o projeto completo, os serviços devem ser iniciados na seguinte ordem:

  1. API Gateway (Go) - Deve ser executado primeiro pois configura a rede Docker
  2. Serviço Antifraude (Nest.js) - Depende do Kafka configurado pelo Gateway
  3. Frontend (Next.js) - Interface de usuário que se comunica com a API Gateway

Instruções Detalhadas

Cada componente do sistema possui instruções específicas de instalação e configuração em suas respectivas pastas:

  • API Gateway: Consulte o README na pasta /go-gateway
  • Serviço Antifraude: Consulte o README na pasta /nestjs-antifraude
  • Frontend: Consulte o README na pasta /next-frontend

Importante: É fundamental seguir a ordem de execução mencionada acima, pois cada serviço depende dos anteriores para funcionar corretamente.

Pré-requisitos Gerais

Para executar todos os componentes do projeto, você precisará ter instalado:

Regras de Negócio Importantes

  • Transações acima de R$ 10.000 são automaticamente enviadas para análise e ficam com status "pendente"
  • Transações menores são processadas imediatamente
  • A interface mostra status diferenciados por cores: verde (aprovado), amarelo (pendente), vermelho (rejeitado)

Extension points exported contracts — how you extend this code

IFraudSpecification (Interface)
(no doc) [8 implementers]
nestjs-anti-fraud/src/invoices/fraud/specifications/fraud-specification.interface.ts
KafkaProducerInterface (Interface)
(no doc) [1 implementers]
go-gateway/internal/service/kafka.go
StatusBadgeProps (Interface)
(no doc)
next-frontend/src/components/StatusBadge.tsx
KafkaConsumerInterface (Interface)
(no doc) [1 implementers]
go-gateway/internal/service/kafka.go
AccountRepository (Interface)
(no doc) [1 implementers]
go-gateway/internal/domain/repository.go
InvoiceRepository (Interface)
(no doc) [1 implementers]
go-gateway/internal/domain/repository.go

Core symbols most depended-on inside this repo

cn
called by 22
next-frontend/src/lib/utils.ts
getEnv
called by 10
go-gateway/cmd/app/main.go
FindByAPIKey
called by 8
go-gateway/internal/domain/repository.go
Get
called by 7
go-gateway/internal/web/handlers/account_handler.go
Close
called by 5
go-gateway/internal/service/kafka.go
FindByID
called by 4
go-gateway/internal/domain/repository.go
UpdateBalance
called by 3
go-gateway/internal/domain/repository.go
WithTopic
called by 2
go-gateway/internal/service/kafka.go

Shape

Method 99
Function 67
Class 40
Struct 20
Interface 6
TypeAlias 1

Languages

TypeScript60%
Go40%

Modules by API surface

nestjs-anti-fraud/src/kafka/confluent-kafka-server.ts22 symbols
go-gateway/internal/service/kafka.go17 symbols
next-frontend/src/components/ui/select.tsx10 symbols
go-gateway/internal/domain/repository.go10 symbols
nestjs-anti-fraud/src/kafka/confluent-kafka-context.ts9 symbols
next-frontend/src/components/ui/card.tsx7 symbols
go-gateway/internal/service/invoice_service.go7 symbols
go-gateway/internal/service/account_service.go6 symbols
go-gateway/internal/repository/invoice_repository.go6 symbols
go-gateway/internal/repository/account_repository.go6 symbols
go-gateway/internal/domain/invoice.go6 symbols
nestjs-anti-fraud/src/invoices/invoices.service.ts5 symbols

Datastores touched

gatewayDatabase · 1 repos

For agents

$ claude mcp add imersao22 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact