Projeto backend para controle de estoque
O projeto tem o objetivo de solucionar as dificuldades no gerenciamento de estoque dos mais diversos tipos de produtos, de forma simples e eficaz
-
Typescript
npm i -D typescript
-
Iniciar ts.config
tsc --init
-
-
Ts Node Dev
npm i -D ts-node-dev
-
Express
npm i express
-
Tipagem para express
npm i -D @types/express
-
Prisma
npm install prisma --save-dev
-
Prisma Client
npm install @prisma/client
-
JWT
npm i --save jsonwebtoken
Usuários
-
POST /users
- Criação de usuário
- Obrigatório o envio dos dados
login
epassword
pelo body da aplicação- O campo
login
é único. Logo, não será possível realizar a criação de um usuário que já possui um login existente
- O campo
- Obrigatório o envio dos dados
- Criação de usuário
-
POST /users/login/
- Realiza o login, retornando o token
JWT
para uso nas autenticações- Obrigatório o envio dos dados
login
epassword
pelo body da aplicação
- Obrigatório o envio dos dados
- Realiza o login, retornando o token
-
PATCH /users/:idUser/
- Altera os dados do usuário
- Obrigatório o envio de ao menos um dos dados:
login
epassword
pelo body da aplicação- Caso não seja passado nenhum dos dados, retorna um erro
- Obrigatória a validação do token JWT nos headers da aplicação
- Obrigatório o envio de ao menos um dos dados:
- Altera os dados do usuário
-
DELETE /users/:idUser/
- Exclui o usuário informado nos parametros da rota
- Deve ser informado no parametro da rota o
id
do usuário que deve ser excluído - Obrigatória a validação do token JWT nos headers da aplicação
- Deve ser informado no parametro da rota o
- Exclui o usuário informado nos parametros da rota
Produtos
-
POST /products/
- Criação de produtos
- Obrigatório o envio dos dados
name_product
,purchase_price
,sale_price
pelo body da aplicação - Opcional o envio do dado
amount
pelo body da aplicação- Caso não seja enviado, o valor de
amount
será definido como 0
- Caso não seja enviado, o valor de
- Obrigatória a validação do token JWT nos headers da aplicação
- Obrigatório o envio dos dados
- Criação de produtos
-
GET /products/
- Retorna todos os produtos
- Obrigatória a validação do token JWT nos headers da aplicação
- Retorna todos os produtos
-
GET /products/search?name
- Retorna os itens nos quais o nome começa com o valor digitado no atributo name
- Deve ser enviado na rota como
query param
o atributoname
do produto - Obrigatória a validação do token JWT nos headers da aplicação
- Deve ser enviado na rota como
- Retorna os itens nos quais o nome começa com o valor digitado no atributo name
-
PATCH /products/stock/:idProduct/
- Altera a quantidade do estoque para a quantidade definida no atributo
amount
- Obrigatório o envio do dado
amount
pelo body da aplicação - Obrigatória a validação do token JWT nos headers da aplicação
- Obrigatório o envio do dado
- Altera a quantidade do estoque para a quantidade definida no atributo
-
PUT /products/:idProduct/
- Altera os dados do produto informado nos parametros da rota
- Deve ser informado no parametro da rota o
id
do produto que deve ser alterado - Obrigatório o envio dos dados
name_product
,purchase_price
,sale_price
pelo body da aplicação - Obrigatória a validação do token JWT nos headers da aplicação
- Deve ser informado no parametro da rota o
- Altera os dados do produto informado nos parametros da rota
-
DELETE /products/:idProduct/
- Exclui o produto informado nos parametros da rota
- Deve ser informado no parametro da rota o
id
do produto que deve ser excluído - Obrigatória a validação do token JWT nos headers da aplicação
- Deve ser informado no parametro da rota o
- Exclui o produto informado nos parametros da rota
Usuários
-
Deve ser possível criar um usuário
-
Deve ser possível realizar o Login do usuário e gerar o token JWT
-
Deve ser possível alterar os dados do usuário
-
Deve ser possível excluir um usuário
-
Implementação de Hash de senha
Produtos
-
Deve ser possível criar um produto
-
Deve ser possível editar todos os dados de um produto
-
Deve ser possível alterar a quantidade de um produto
-
Deve ser possível listar todos os produtos
-
Deve ser possível pesquisar produtos por nome
-
Deve ser possível excluir um produto
Produtos
-
Não deve ser possível criar um produto com o nome já existente
-
Não deve ser possível criar um produto sem que o usuário esteja autenticado
-
Não deve ser possível alterar todos os dados do produto sem que o usuário esteja autenticado
-
Não deve ser possível listar os produtos sem que o usuário esteja autenticado
-
Não deve ser possível pesquisar produtos pelo nome sem que o usuário esteja autenticado
-
Não deve ser possível alterar a quantidade de estoque do produto sem que o usuário esteja autenticado
-
Não deve ser possível excluir um produto sem que o usuário esteja autenticado
Usuários
-
Não deve ser possível criar um usuário com um login já existente
-
Não deve ser possível alterar os dados do usuário sem que o usuário esteja autenticado
-
Não deve ser possível alterar os dados do usuário se nenhuma das informações for enviadas
-
Não deve ser possível excluir um usuário sem que o usuário esteja autenticado