Skip to content

Desafio para o processo seletivo 2024 do Time de Desenvolvimento. Qualquer duvida, favor contatar o Gerente de Desenvolvimento ou o Diretor de Tech.

Notifications You must be signed in to change notification settings

gobrasa/tech-challenges-back

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tech Challenge - Express CRUD

Olá! Bem vindo ao Tech Challenge da Brasa!

Neste desafio, você está encarregado de criar (ou continuar) essa API básica. Você tem total liberdade para pesquisar como funciona qualquer coisa, seja uma biblioteca utilizada, ou até particularidades da linguagem JavaScript. Porém, insistimos que você se esforçe ao máximo e tente não copiar o código inteiro — o que mais importa é a sua tentativa, não o produto final, então tente comentar bastante o código com seus pensamentos e ideias.

Para começar o desafio, faça um fork publico deste repositório e, enquanto progride, faça commmits para que o time possa analizar seu progresso e linha de raciocínio.

A funcionalidade desejada desta api é um CRUD (Create, Update, Delete) básico para controlar duas tabelas, Person e Roles. Para formar um relacionamento (many to many) entre as duas tabelas, é criado uma terceira tabela, persons_roles.

Person

Column Type
id int (auto-gerado)
first_name varchar (string)
last_name varchar (string)
email varchar (string)

Role

Column Type
id int (auto-gerado)
name varchar (string)

persons_roles

Column Type
person_id int
role_id int

Com estas três tabelas, você deve fazer endpoints para atingir as seguintes funcionalidades:

  • Método GET para listar todas entradas em Person.
  • Método GET com parâmetros de busca pelo last_name para pesquisar em Person
  • Método POST para inserir uma nova entrada em Person (first_name, last_name, email)
  • Método PATCH para atualizar first_name e last_name usando o email
  • Método DELETE para remover entradas em People utilizando email

  • Método GET para listar todas entradas em Role.
  • Método POST para inserir uma nova entrada em Role (name)
  • Método DELETE para remover entradas em Role utilizando Name

  • Método POST para vincular uma Person a uma Role
  • Método GET para buscar todas Person com uma Role
  • Método GET para buscar todos Roles de uma Person
  • Método DELETE para remover uma Role de uma Person

Fique tranquilo que parece um monte de código, mas a grande maioria ou é simples ou é repetido. Você só precisa se preocupar com a lógica de cada endpoint.

Dependências:

Primeiramente, você deve ter o Node e o npm instalados, assim como um cliente para testar API's como o Insomnia ou o Postman. Após a instalação destes, rode o comando abaixo no repositório clonado.

$ npm install

Para começar o servidor:

$ npm start

About

Desafio para o processo seletivo 2024 do Time de Desenvolvimento. Qualquer duvida, favor contatar o Gerente de Desenvolvimento ou o Diretor de Tech.

Resources

Stars

Watchers

Forks