Skip to content

eseiji/home-broker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Home Broker

Simulação de uma plataforma de investimentos utilizando Docker, Golang, NestJS, Next.js, WebSockets e Kafka.


🧩 Tabela de Conteúdos

  1. Visão Geral
  2. Casos de Uso & Arquitetura
  3. Requisitos
  4. Instalação & Execução
    • Golang
    • NestJS
    • Next.js
    • Execução com Docker
  5. Tecnologias Utilizadas
  6. WebSockets (Tempo Real)
  7. Contribuições
  8. Licença

🌐 Visão Geral

Esse projeto consiste em três módulos principais:

  • API NestJS: backend REST + WebSockets para gerenciamento de ordens e ativos.
  • Broker em Golang: microserviço para processamento de ordens via Kafka.
  • Front-end Next.js: interface web para criação, consulta e negociação em tempo real.

O fluxo geral:

Front-end ⇄ API NestJS ⇄ Kafka ⇄ Broker Go ⇄ MongoDB
             ↕ (WebSocket)

📊 Casos de Uso & Arquitetura

Casos de uso identificados:

  1. Criar ordens de compra/venda
  2. Consultar ordens enviadas
  3. Consultar ativos disponíveis (preço, detalhes)
  4. Visualizar ativos na carteira
  5. Negociar entre ordens
  6. Funções administrativas (criar usuários, ativos etc.)

Diagrama ER: Representa entidades como usuário, ativo, ordem e transação, com seus relacionamentos.


⚙️ Requisitos

  • Git
  • Docker (Desktop ou Engine)
  • Opcional: WSL2 (Windows)

Se a máquina tiver ≤8 GB de RAM, utilize Docker Engine para economia de recursos.


⚡ Instalação & Execução

Docker

  1. Na raiz do projeto, execute:
docker-compose up -d

Golang (Broker)

  1. Acesse go/
  2. Execute:
    go run cmd/trade/main.go

Back-end (NestJS)

  1. Acesse api-nestjs/
  2. Instale dependências:
    npm install
  3. Rode em modo dev:
    npm run start:dev

Front-end (Next.js)

  1. Vá para next-frontend/
  2. Instale dependências:
    npm install
  3. Rode:
    npm run dev

Como o front-end (Next.js) e o back-end (NestJS) usam por padrão a porta 3000, se o back-end for iniciado primeiro, ele ocupará essa porta, e o front-end será iniciado automaticamente na porta 3001. Nesse caso, a interface pode ser acessada em http://localhost:3001.


🛠 Tecnologias Utilizadas

  • Golang – Broker de ordens
  • Node.js + NestJS – Backend e WebSockets
  • Next.js (React) – Front-end
  • Kafka – Mensageria
  • MongoDB – Banco de dados
  • WebSockets – Tempo real para ordens
  • Docker – Orquestração e containers
  • WSL2

🔄 WebSockets (Tempo Real)

A integração WebSocket permite atualização imediata de ordens, carteira e preços, eliminando necessidade de refresh.

Fluxo de mensageria:

  • Cliente → WebSocket → API NestJS
  • API → Kafka → Broker Go (processa e envia resposta)
  • Broker → Kafka → API NestJS → Cliente (via WebSocket)

Referências

Este projeto foi inspirado na Imersão FullCycle 21 e adaptado para fins de estudo e prática pessoal.


🧠 Observações finais

  • O objetivo deste projeto foi aprofundar os conhecimentos em Go e sua integração com o Kafka.

About

Investment platform simulation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy