Solução enterprise de e-commerce construída sobre arquitetura orientada a microserviços (MSA) com gerenciamento de monorepo via Turborepo. O sistema implementa separação de concerns através de aplicações Next.js 15 (App Router) servindo interfaces distintas para consumidores finais e administradores, enquanto o backend opera como um ecossistema distribuído de serviços independentes e autônomos.
A comunicação inter-serviços utiliza um modelo híbrido: requisições síncronas via RESTful APIs para operações de leitura e comandos de resposta imediata, combinadas com mensageria assíncrona através de Apache Kafka para event-driven architecture, garantindo desacoplamento temporal, tolerância a falhas e processamento eventual consistency.
A infraestrutura de build emprega Turborepo com pipelines incrementais e caching distribuído, permitindo compilações paralelas, hot module replacement cross-workspace e deployments independentes por serviço. O gerenciamento de dependências via PNPM Workspaces otimiza o consumo de disco através de content-addressable storage e hoisting seletivo de pacotes compartilhados.
Desenvolvida com TypeScript end-to-end, a aplicação garante type safety desde a camada de apresentação até os contratos de API, utilizando schemas compartilhados via packages internos do monorepo e validação em runtime com Zod.
- Visão Geral
- Arquitetura
- Estrutura do Projeto
- Tecnologias
- Pré-requisitos
- Instalação
- Desenvolvimento
- Build
- Aplicações
- Microserviços
- Comunicação
- Contribuição
BeWear é uma plataforma completa de e-commerce desenvolvida com foco em escalabilidade e manutenibilidade. O projeto utiliza uma arquitetura de microserviços organizada em monorepo, permitindo desenvolvimento independente de cada serviço enquanto mantém o código centralizado.
- Arquitetura de microserviços desacoplada
- Frontend responsivo para cliente e administração
- Comunicação assíncrona via Apache Kafka
- APIs REST para operações síncronas
- Sistema de cache distribuído
- Gerenciamento centralizado com Turborepo
- Pipelines de build otimizadas
O sistema é dividido em camadas bem definidas:
- Client Application: Interface do consumidor final
- Admin Application: Painel administrativo completo
- Microserviços independentes e especializados
- Event-driven architecture com Kafka
- APIs REST para comunicação síncrona
- Persistência de dados distribuída
- Turborepo para gerenciamento do monorepo
- PNPM para gerenciamento de dependências
- Sistema de build incremental com cache
bewear-ui/
├── apps/
│ ├── admin/ # Aplicação administrativa
│ ├── client/ # Aplicação do cliente
│ ├── docs/ # Documentação
│ └── web/ # Landing page
├── packages/
│ ├── ui/ # Componentes compartilhados
│ ├── config/ # Configurações compartilhadas
│ └── types/ # Tipos TypeScript compartilhados
├── services/ # Microserviços backend
│ ├── products/ # Serviço de produtos
│ ├── users/ # Serviço de usuários
│ ├── orders/ # Serviço de pedidos
│ └── payments/ # Serviço de pagamentos
└── turbo.json # Configuração do Turborepo
- Next.js 15 - Framework React
- TypeScript - Tipagem estática
- Tailwind CSS - Estilização
- shadcn/ui - Componentes UI
- Node.js - Runtime
- Express - Framework web
- Apache Kafka - Message broker
- PostgreSQL - Banco de dados
Certifique-se de ter instalado:
- Node.js 18+
- PNPM 8+
- Docker e Docker Compose
- Apache Kafka (via Docker)
# Clone o repositório
git clone https://github.com/seu-usuario/bewear-ui.git
# Entre no diretório
cd bewear-ui
# Instale as dependências
pnpm install
# Configure as variáveis de ambiente
cp .env.example .envturbo dev# Admin
turbo dev --filter=admin
# Client
turbo dev --filter=clientturbo dev --filter=@services/productsturbo buildturbo build --filter=adminO Turborepo automaticamente cacheia builds anteriores, acelerando builds subsequentes.
Painel administrativo completo para gerenciamento da plataforma.
- URL de desenvolvimento: http://localhost:3001
- Funcionalidades: Gestão de produtos, usuários, pedidos e pagamentos
Interface do usuário final para navegação e compra de produtos.
- URL de desenvolvimento: http://localhost:3000
- Funcionalidades: Catálogo, carrinho, checkout e acompanhamento de pedidos
Gerenciamento do catálogo de produtos, categorias e estoque.
Autenticação, autorização e gerenciamento de perfis de usuários.
Processamento e acompanhamento de pedidos.
Integração com gateways de pagamento e processamento de transações.
Comunicação síncrona entre frontend e backend para operações CRUD e consultas.
Eventos assíncronos para operações que não requerem resposta imediata:
- Criação de pedidos
- Processamento de pagamentos
- Atualizações de estoque
- Notificações
Contribuições são bem-vindas! Por favor, siga estas diretrizes:
- Faça fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -m 'feat: adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Seguimos o padrão Conventional Commits:
feat:Nova funcionalidadefix:Correção de bugdocs:Documentaçãochore:Manutençãorefactor:Refatoração de códigotest:Testes