/Product-Web-Jump

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

Primary LanguageTypeScript


📜 PROJETO

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

Categoria

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.

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 o id inválido.

🔧 Tecnologias

Esse projeto foi desenvolvido com as seguintes tecnologias:


👷‍♂️ Arquitetura

Clean Architecture

🗳 Como baixar o projeto

⚠ É necessário possuir as seguintes ferramentas instaladas em seu computador:

⚠ 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

Documentação

A documentação pode ser acessada através: http://localhost:3333/api-docs quando o servidor local estiver ativo.

swagger


Testes

Jest Foi utilizado para os testes, para rodá-los execute:

$ yarn test

Ou:

$ npm run test

Feito com 💜 by Jhonatan Gomes