Skip to content

marciobsilva/e-commerce

Repository files navigation

🛒 E-Commerce API

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.


🚀 Tecnologias Utilizadas

  • Node.js
  • TypeScript
  • Express
  • Prisma ORM
  • PostgreSQL
  • JWT (Autenticação)
  • Clean Architecture
  • DDD

📂 Estrutura do Projeto

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

🔐 Funcionalidades

  • ✅ 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

🧠 Regras de Negócio

  • 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

🗄 Banco de Dados

Modelagem relacional utilizando PostgreSQL com Prisma ORM.

Principais entidades:

  • User
  • Product
  • Order
  • OrderItem
  • OrderPayment
  • OrderDelivery

▶️ Como Rodar o Projeto

1️⃣ Clonar o repositório

git clone https://github.com/marciobsilva/e-commerce.git

2️⃣ Instalar dependências

npm install

3️⃣ Configurar variáveis de ambiente

Criar um arquivo .env:

DATABASE_URL="postgresql://usuario:senha@localhost:5432/ecommerce"
JWT_SECRET="sua_chave_secreta"

4️⃣ Rodar migrations

npx prisma migrate dev

5️⃣ Iniciar servidor

npm run dev

📌 Arquitetura

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

📈 Objetivo do Projeto

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

📄 Licença

Projeto para fins educacionais e demonstração de portfólio.

About

E-commerce API em Node.js com Clean Architecture, DDD, Prisma e JWT.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors