API de E-commerce desenvolvida utilizando Node.js, seguindo princípios de Clean Architecture e DDD (Domain-Driven Design).
O projeto implementa funcionalidades essenciais de um sistema de vendas online, incluindo autenticação, pedidos, pagamentos e entregas.
- Node.js
- TypeScript
- Express
- Prisma ORM
- PostgreSQL
- JWT (Autenticação)
- Clean Architecture
- DDD
O projeto segue os princípios de separação de responsabilidades:
src/
├── domain/ # Entidades e regras de negócio
├── application/ # Casos de uso
├── infra/ # Banco de dados, Prisma, implementações externas
├── presentation/ # Controllers e rotas
└── main/ # Configuração e inicialização da aplicação
- ✅ Autenticação com JWT
- ✅ CRUD de produtos
- ✅ Criação de pedidos
- ✅ Associação de múltiplos produtos ao pedido
- ✅ Pagamento vinculado ao pedido
- ✅ Entrega vinculada ao pedido
- ✅ Relacionamentos consistentes no banco de dados
- Um cliente pode ter vários pedidos
- Um pedido pode ter vários produtos
- Um pedido pode ter um ou mais pagamentos
- Um pedido pode ter entrega associada
- Regras centralizadas nos Use Cases
- Controllers não possuem regra de negócio
Modelagem relacional utilizando PostgreSQL com Prisma ORM.
Principais entidades:
- User
- Product
- Order
- OrderItem
- OrderPayment
- OrderDelivery
git clone https://github.com/marciobsilva/e-commerce.git
npm install
Criar um arquivo .env:
DATABASE_URL="postgresql://usuario:senha@localhost:5432/ecommerce"
JWT_SECRET="sua_chave_secreta"
npx prisma migrate dev
npm run dev
O projeto utiliza:
- Clean Architecture
- Separação entre domínio, aplicação e infraestrutura
- Inversão de dependência
- Casos de uso isolados
- Repositórios como abstração
Este projeto foi desenvolvido com foco em:
- Demonstrar domínio de arquitetura escalável
- Aplicar boas práticas de backend
- Preparação para sistemas reais de produção
- Evolução futura para microsserviços
Projeto para fins educacionais e demonstração de portfólio.