Este projeto é uma API para e-commerce, desenvolvida com o objetivo de compor um portfólio pessoal. A API foi construída utilizando tecnologias modernas e robustas, como PostgreSQL, Express.js, Prisma ORM, routing-controllers, e integração com eSitef para pagamentos via PIX, cartão de crédito e débito.
A API dispõe de rotas públicas, privadas para clientes e privadas para gestores (lojistas). As principais funcionalidades incluem:
- Autenticação de Usuário e Cliente
- CRUD de Usuários (Protegido por autenticação de usuário)
- CRUD de Categorias de Produtos (Protegido por autenticação de usuário)
- CRUD de Produtos (Protegido por autenticação de usuário)
- Cadastro de Cliente
- Listagem de Produtos (Público)
- Listagem de Produto por ID (Público)
- Listagem de Produtos Filtrado por Código e/ou Descrição (Público)
- Listagem de Categorias de Produto (Público)
- Listagem de Produtos Agrupados por Categoria (Público)
- Listagem de Produtos Agrupados por Categoria Filtrado por Código e/ou Descrição (Público)
- Pagamento (Protegido por login de cliente)
.env
Renomeie o arquivo
.env.example
para
.env
e configure os seguintes campos:
ESITEF_MERCHANT_ID: ID do lojista fornecido pela Fiserv.ESITEF_MERCHANT_KEY: Chave do lojista fornecida pela Fiserv.ESITEF_URL: URL da API eSitef fornecida pela Fiserv.DATABASE_URL: String de conexão com o banco de dados PostgreSQL.PORT: Porta em que a aplicação será executada.JWT_SECRET: Segredo utilizado para geração de tokens JWT.
.env
ESITEF_MERCHANT_ID=your-merchant-id
ESITEF_MERCHANT_KEY=your-merchant-key
ESITEF_URL=https://your-esitef-url
DATABASE_URL=postgresql://user:password@localhost:5432/shopping-api
PORT=3000
JWT_SECRET=your-jwt-secretPara configurar o banco de dados, execute os seguintes comandos:
-
Instale as dependências do Node.js:
npm install
-
Execute as migrações do Prisma:
npx prisma migrate dev
-
Gere o Prisma Client:
npx prisma generate
-
Popule o banco de dados com dados iniciais:
npm run seed
Para iniciar a aplicação, execute o comando:
npm startA API possui um middleware para tratamento de erros (
HttpErrorHandler
). Este middleware garante que todas as respostas de erro sejam padronizadas e que erros desconhecidos sejam tratados adequadamente.
Este projeto foi desenvolvido com foco em boas práticas de desenvolvimento, utilizando tecnologias modernas e robustas para garantir uma aplicação escalável e de fácil manutenção.