Skip to content

Repository files navigation

Lux Lab

Plataforma de e-commerce multi-mercado (Brasil e União Europeia) com fornecedores internacionais, roteamento geográfico de pedidos, precificação por região e assistente de compras com IA.

Este repositório contém a versão europeia — base da adaptação para o mercado brasileiro, que roda em repositório privado.


Arquitetura

Next.js (Vercel)  →  API em Go / Gin (AWS Lambda)  →  MongoDB Atlas
                              │
                              ├─ Fornecedores BR / EU (interface Supplier)
                              ├─ Gateways de pagamento por região
                              └─ Assistente de IA (SSE)

Frontend em Next.js 15 na Vercel, com i18n e componentes Radix UI. Backend em Go com Gin, empacotado com AWS SAM e executado em Lambda. Persistência em MongoDB Atlas.


Decisões técnicas

Multi-fornecedor com roteamento geográfico

Uma interface Supplier única é implementada por cada fornecedor (BigBuy, Griffati, Printful, entre outros). Um método de preferência por país devolve a lista ordenada de fornecedores que atendem o destino da entrega.

O fluxo de pedidos trabalha sempre com a mesma abstração — adicionar um fornecedor ou um mercado não altera o código que processa venda. A sincronização de catálogo roda em paralelo via goroutines.

Pipeline de precificação por região

Três etapas isoladas e testáveis de forma independente:

  1. Normalização do preço do fornecedor para a moeda local (BRL ou EUR)
  2. Cálculo da margem bruta
  3. Aplicação da alíquota de imposto por país de destino (IVA / VAT)

Separadas assim, uma mudança tributária em um país não coloca em risco o cálculo dos demais.

Autenticação OAuth2 / OIDC multi-provider

Google, Facebook e Apple, com PKCE e state assinado. Middleware duplo — jose.jwtVerify no edge do Next.js e golang-jwt no backend Go — com os papéis user, admin e worker mapeados nas duas camadas.

Chat com IA em streaming sob restrição do Lambda

O API Gateway encerra conexões em 29 segundos, o que inviabiliza streams longos. As sessões de chat têm limite explícito de 28 segundos no handler, encerrando de forma controlada antes do corte. A migração para a WebSocket API está documentada como próximo passo.

Segurança de segredos

Após uma exposição acidental de credenciais em .env, o CI passou a rodar gitleaks bloqueando qualquer commit com segredo, as chaves foram rotacionadas e as variáveis sensíveis migraram para o AWS Secrets Manager.


Stack

Camada Tecnologias
Frontend Next.js 15, TypeScript, Tailwind CSS v4, Radix UI, React Hook Form + Zod, next-intl
Backend Go, Gin
Banco MongoDB Atlas
Infra AWS Lambda, AWS SAM, AWS Secrets Manager
Pagamentos Stripe, PayPal, MercadoPago
Serviços Cloudinary, Resend, Claude (Anthropic)
CI/CD GitHub Actions, gitleaks

Rodando localmente

git clone https://github.com/rayancmorais/luxeLab.git
cd luxeLab
cp .env.example .env    # preencher as variáveis
docker compose up

Consulte DEPLOY_CHECKLIST.md para o processo de deploy.


Estrutura

backend/            API em Go / Gin
web/                Aplicação Next.js
.github/workflows/  CI (build, testes, gitleaks)
docker-compose.yml  Ambiente local
seed-products.sh    Popula o catálogo para desenvolvimento

Autor

Rayan Morais — Desenvolvedor Full-Stack rayancmorais.com.br · LinkedIn


© 2025 Rayan C. Morais. Todos os direitos reservados.

About

luxeLab

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages