Git Product home page Git Product logo

code-challenge's Introduction

Code Challenge - Backend Engineer - IZA.com.vc

Parabéns por ter passado de fase e ter chegado até aqui. Estamos empenhados em encontrar pessoas incríveis para fazer parte do nosso time de tecnologia e acreditamos que você tem as características que buscamos.

Preparamos um desafio que consiste na criação de uma API Rest com Modelagem de dados, Autenticação, Relacionamento entre tabelas, Cadastro (Create), Listagem (Read), Atualização (PUT) e Deleção (Delete).

Modelagem de dados

Trabalhe na modelagem das tabelas do banco de dados antes de começar a codificar, ao finalizar, anexe uma imagem com a modelagem dos dados que você criou no README.md do seu projeto.

  • Atente-se aos relacionamentos que devem existir entre as tabelas.

Estrutura de Dados:

  • Cliente → Nome, Email, Endereço (cep, estado, cidade, número) e senha.
  • Produto → Nome, preço, descrição e foto (imagem)

Regras:

  • Um cliente pode cadastrar apenas um endereço. (1x1)
  • O endereço deve estar armazenado em uma tabela separada (não pode ficar na mesma tabela que os usuários).
  • Um cliente pode cadastrar vários produtos. (1xN)

Endpoints:

/Signup →

  • O cliente deve informar seus dados para realizar o cadastro, sendo que nome, email e senha são obrigatórios. Nome, Email, Endereço (cep, estado, cidade, número) e senha.

/Auth →

  • Email e senha são obrigatórios.
  • Deve ser retornado um token JWT para autenticação quando os dados informados são validos.

/Users → ****

  • Deve retornar todos os usuários cadastrados no endpoint de /Signup.
  • A senha não pode aparecer na listagem.

/User/{id} →

  • Deve ser possível recuperar um cliente pelo id.
  • Adicionar validação para id inexistente/inválido quando informado.
  • Deve ser possível editar os dados de um usuário.

/Product →

  • Deve ser possível cadastrar um produto. Todos os campos são obrigatórios: Nome, preço, descrição e foto (imagem).
  • O produto cadastrado deve ser associado ao usuário autenticado (JWT).
  • Deve ser possível editar os dados do produto.

/Products →

  • Apenas usuários autenticados podem consultar esse endpoint (JWT).
  • Listar todos os produtos cadastrados pelo usuário autenticado (JWT).

/Product/{id} →

  • Deve ser possível recuperar um produto pelo seu id.
  • Adicionar validação para id inexistente/inválido quando informado.

/User/products/{userId} →

  • Deve ser possível recuperar todos os produtos de um cliente, pelo id do cliente.

Requisitos:

Desejável, porém não obrigatório:

  • Docker
  • Arquitetura limpa

Ao finalizar

Envie o teste para um repositório do Github e nos envie o link. Ou adicione o usuário @lucasalbuquerque se for um repositório privado.

Boa sorte!

code-challenge's People

Contributors

lucasalbuquerque avatar

Stargazers

Vanessa Oliveira avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.