Skip to content

API RESTful de vendas desenvolvida com Node.js, Express, Typescript, TypeORM, PostgreSQL, Redis, Docker...

Notifications You must be signed in to change notification settings

marcoreliodev/api-vendas

Repository files navigation

💻 API de Vendas

Endpoints

/users

  • POST - /users (Create New User)
  • GET - /users (Get All Users)

/profile

  • PUT - /profile (Update User Profile)

/sessions

  • POST - /sessions (Create a JWT Token for Authenticate)

/password

  • POST - /password/forgot (Send email for forgotten password)
  • POST - /password/reset (Reset Password)

/customers

  • POST - /customers (Register New Customer)
  • PUT - /customers/:id (Update Customer)
  • DELETE - /customers/:id (Delete Customer)
  • GET - /customers (Get All Customers)

/products

  • POST - /products (Register New Product)
  • PUT - /products/:id (Update Product)
  • DELETE - /products/:id (Delete Product)
  • GET - /products (Get All Products)

/orders

  • POST - /orders (Create New Order)
  • GET - /orders (Get All Orders)
  • GET - /orders/:id (Get Items Ordered)

🚀 Tecnologias

Diagrama

Diagrama

Cadastro de Usuário

RF

  • Deve ser possível cadastrar um novo usuário.

RN

  • Não deve ser possível cadastrar dois usuários com mesmo email.

RNF

  • O sistema deve utilizar o banco de dados relacional PostgreSQL para armazenar dados de forma eficiente, garantindo integridade e consistência.

Atualização de Usuário

RF

  • Deve ser possível atualizar dados de cadastro do usuário.

RN

  • Não deve ser possível atualizar dados de um usuário inexistente.
  • Não deve ser possível atualizar dados de um usuário usando um email cadastrado por outro usuário.
  • Não deve ser possível atualizar para uma nova senha sem informar a senha antiga.

Listagem de Usuário

RF

  • Deve ser possível listar todos usuários.

Autenticação de Usuário

RF

  • Deve ser possível autenticar um usuário.

RN

  • Não deve ser possível autenticar um usuário inexistente.
  • Não deve ser possível autenticar um usuário com senha incorreta.
  • Ao realizar a autenticação do usuário, um token de acesso JWT deve ser gerado.

RNF

  • O token de acesso utilizado pelo sistema deve ser JWT (JSON Web Token) para a geração e validação de tokens de autenticação, garantindo segurança e interoperabilidade.

Recuperar Senha

RF

  • Deve ser possível o usuário recuperar a senha informando o e-mail.
  • O usuário deve receber um e-mail com o passo a passo para a recuperação da senha.
  • O usuário deve conseguir inserir uma nova senha.

RN

  • Não deve ser possível restaurar senha de um usuário inexistente.
  • O usuário precisa informar uma nova senha.
  • O link enviado para a recuperação deve expirar em 3 horas.

Registrar Cliente

RF

  • Deve ser possível registrar um novo cliente.

RN

  • Não deve ser possível registrar dois clientes com mesmo email.

Atualização de Cliente

RF

  • Deve ser possível atualizar um cliente.

RN

  • Não deve ser possível atualizar um cliente inexistente.
  • Não deve ser possível atualizar dados de um cliente usando um email cadastrado por outro cliente.

Apagar Cliente

RF

  • Deve ser possível apagar um cliente.

RN

  • Não deve ser possível apagar um cliente inexistente.

Listagem de Clientes

RF

  • Deve ser possível listar todos os clientes.

Cadastrar Produto

RF

  • Deve ser possível cadastrar um novo produto.

RN

  • Não deve ser possível cadastrar um produto com nome já existente.

Atualização de Produto

RF

  • Deve ser possível atualizar um produto.

RN

  • Não deve ser possível atualizar um produto inexistente.
  • Não deve ser possível atualizar um produto com nome já existente.

Apagar Produto

RF

  • Deve ser possível apagar um produto.

RN

  • Não deve ser possível apagar um produto inexistente.

Listagem de Produtos

RF

  • Deve ser possível listar todos os produtos disponíveis.

Criar Pedido

RF

  • Deve ser possível criar um novo pedido.

RN

  • Não deve ser possível criar um pedido para um cliente inexistente.
  • Não deve ser possível criar um pedido para um produto inexistente.
  • Não deve ser possível criar um pedido para produtos com quantidades insuficientes.

Listagem de Pedidos

RF

  • Deve ser possível listar todos os pedidos realizados.

Ver Itens do Pedidos

RF

  • Deve ser possível ver todos os itens do pedido realizado.

RN

  • Não deve ser possível ver itens de um pedido inexistente.

About

API RESTful de vendas desenvolvida com Node.js, Express, Typescript, TypeORM, PostgreSQL, Redis, Docker...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages