About | Features | Technologies | Requirements | Starting | License | Author
Projeto de criação de uma API feita com o NodeJs de Produtos e Categorias.
Desenvolver uma API RESTfull utilizando nodejs e banco de dados relaciona. Cada produto deve pertencer a uma categoria pré registrada no sistema.
- Usuários
- (store) Cadastrar Usuário
- (login) Login de usuário retornando um bearer token para utilizar nas chamadas abaixo
- Categorias
- (store) Cadastrar categoria
- (update) Atualizar categoria
- (delete) Remover categoria
- (show) Exibir Categoria
- (index) Listar categorias
- Produtos
- (store) Cadastrar produto
- (update) Atualizar produto
- (delete) Remover produto
- (show) Exibir produto
- (index) Listar produtos
- Filtrar por categorias
- A data de fabricação nunca deve ser maior que a data de validade;
- O Preço do produto deverá ser registrado com 2 casas decimais;
- A listagem deve ter a possibilidade de ordenação dos campos e com uma paginação de 10 produtos por página.
1 - http://localhost:4444/api/v1/users
Post Body(Json)
{
"name": "",
"email": "",
"password": ""
}
Post 2 - http://localhost:4444/api/v1/sessions
Body(Json)
{
"email": "",
"password": ""
}
3 - http://localhost:4444/api/v1/categories
Post Body(Json)
{
"name": "Açougue",
"description": "Descrição Generica para teste"
}
4 - http://localhost:4444/api/v1/categories
Get No Body
{
}
5 - http://localhost:4444/api/v1/categories/:id
Get Params No Body
{
}
5 - http://localhost:4444/api/v1/categories
Patch Body(Json)
{
"id": "",
"name": "",
"description": "",
"slug": ""
}
6 - http://localhost:4444/api/v1/categories/:id
Delete Params No Body
{
}
7 - http://localhost:4444/api/v1/products
Post
Body(Json)
{
"categoryId": ,
"name": "Lençol de Cama Embrulhadinho",
"manufacturingDate": "2021-08-15T18:52:12.927Z",
"perishableProduct": false,
"expirationDate": "2021-08-15T18:52:12.927Z",
"price": ,
}
8 - http://localhost:4444/api/v1/products/:id
Get Params No Body
{
}
9 - http://localhost:4444/api/v1/products/category/:id
Get Params No Body
{
}
10 - http://localhost:4444/api/v1/products
Get No Body
{
}
11 - http://localhost:4444/api/v1/products/:id
Delete Params No Body
{
}
12 - http://localhost:4444/api/v1/products/image/:id
Patch Params Body(Multipart)
{
productImage: file
}
13 - http://localhost:4444/api/v1/products/:id
Get Params No Body
{
}
- Utilizar testes unitários e de integração;
- Documentação dos endpoints da API - Por partes;
- Front-end é opcional: Tela Principal, Tela de Cadastro de Produto, Tela de Login, Tela de Upload de Imagem do Produto
The following tools were used in this project:
Before starting 🏁, you need to have Git and Node installed.
# Clone this project
$ git clone https://github.com/jnerydesigner/challenge-database-user gen_products_api
# Access
$ cd gen_products_api
# Install dependencies
$ yarn
# Run the docker to install the Postgres database
docker-compose up
or
docker-compose up -d #run in detach mode
# Run the typeorm to install as migrations
yarn typeorm migration:run
# Run the project
$ yarn dev
# The server will initialize in the <http://localhost:4444>
# or
#change teh port in file .env
-
Nota: Tentei fazer toda a documentação dos endpoints, mas não deu tempo, mas algumas foram criadas usando o Swagger
-
Só vai rodar se não mudar a porta Documentação
This project is under license from MIT. For more details, see the LICENSE file.
Made with ❤️ by Jander Nery
Fiquei muito interessado em trabalhar nessa Empresa.