Product Web Jump é um crud challenge que permite cadastrar categorias e produtos. Com um relacionamento bidirecional, é possivel atribuir produtos a uma categoria, desenvolvida em um banco relacional postgres
em um container docker
RF
- Deve ser possível cadastrar uma categoria.
- Deve ser possível listar todas as categorias.
- Deve ser possível buscar uma única categoria por
id
. - Deve ser possível alterar o
name
de uma categoria. - Deve ser possível excluir uma categoria.
RN
- Não deve ser possível cadastrar uma categoria com
name
existente. - Não deve ser possível buscar uma categoria com
id
inválido. - Não deve ser possível alterar o
name
já cadastrado no sistema. - Não deve ser possível excluir uma categoria que não exista no sistema.
- Não deve ser possível excluir uma categoria que esteja sendo referenciada em um produto.
RF
- Deve ser possível cadastrar um produto
- Deve ser possível listar todos os produtos.
- Deve ser possível buscar produto por
id
,name
,category_id
. - Deve ser possível alterar o
name
de um produto. - Deve ser possível excluir um produto.
- Deve ser possível fazer upload de
image
do produto.
RN
- Não deve ser possível cadastrar um produto com
name
existente. - Não deve ser possível alterar o
name
de um produto já cadastrado no sistema. - Não deve ser possível excluir um produto que não exista no sistema.
- Não deve ser possível cadastrar um produto sem
category_id
. - Não deve ser possível fazer upload de
image
do produto com oid
inválido.
Esse projeto foi desenvolvido com as seguintes tecnologias:
Clean Architecture
⚠ É necessário possuir as seguintes ferramentas instaladas em seu computador:
- Node.js. (Preferencialmente a versão 12.17.0 ou supeiror 15.4.0)
- docker
- docker-compose
⚠ Você pode usar tanto o yarn quanto o npm para instalar as dependências.
Clone o projeto para sua maquina local:
# Clone o projeto para sua maquina local
$ git clone https://github.com/jhongomes/Product-Web-Jump.git
# Acesse a pasta do projeto
$ cd Product-Web-Jump
# Instale todas as dependências do projeto
$ yarn
ou
$ npm i
# Rode o comando para criar um database no docker
$ docker-compose up -d
# Rode o comando para subir as migrations no docker
$ yarn typeorm migration:run
ou
$ npm run typeorm migration:run
# Rode o projeto
$ yarn dev
ou
$ npm run dev
A documentação pode ser acessada através: http://localhost:3333/api-docs quando o servidor local estiver ativo.
Jest Foi utilizado para os testes, para rodá-los execute:
$ yarn test
Ou:
$ npm run test
Feito com 💜 by Jhonatan Gomes