Skip to content

Latest commit

 

History

History
73 lines (52 loc) · 2.65 KB

README.md

File metadata and controls

73 lines (52 loc) · 2.65 KB

Desafio Backend - Riderize

Olá Dev! Tudo bem?

Nesse desafio você construirá uma versão simples de combinar pedaladas em grupo, quem sabe talvez isso não desperte seu interesse em fazer alguns pedais?

Contexto do desafio

O objetivo desse desafio é criar uma API que irá possibilitar a criação de pedais pelos usuários, além disso outros usuários poderão visualizar esses pedais e se inscrever neles para que no dia marcado aqueles que se inscreveram possam pedalar em grupo.

Para tal será necessário:

  • Criar os pedais com os seguintes dados:
Atributo Tipo Nullable
id - false
name string false
start_date Date false
start_date_registration Date false
end_date_registration Date false
additional_information text true
start_place string false
participants_limit number true
  • Uma vez criado, os pedais deverão ser exibidos para que o usuários possam se inscrever, para isso será necessário passar os seguintes dados:
Atributo Tipo Nullable
ride_id - false
user_id - false
subscription_date Date false
  • Será preciso também listar os pedais que o usuário participou;
  • Listar também os pedais que o usuário criou;
  • Não permitir inscrição em pedais depois da última data de inscrição;
  • User_id vem de alguma tabela de usuário ao seu critério;

Requisitos

  • Deverá ser utilizado o NodeJS;
  • Utilizar o TypeScript;
  • A API deverá ser construída usando o GraphQL;
  • Os dados deverão persistir em algum DB, aqui no Riderize usamos o PostgreSQL para isso;
  • Todas as consultas deverão ser feitas usando o seguinte header de autenticação, para isso será necessário usar o JWT: Authentication: Bearer <THE.JWT.TOKEN>;

Bônus

  • Fazer cache das consultas de listagem dos pedais;
  • Usar o Docker para rodar o projeto;
  • Fazer a hospedagem da API (Heroku, AWS, GCP);
  • Construir Pipeline de CI/CD;
  • Construir testes automatizados da API;

Ferramentas recomendadas

Não é obrigatório utilizar essas ferramentas, elas são apenas uma recomendação pois são elas que usamos aqui no Riderize:

  • Express;
  • Apollo Server;
  • TypeGraphQL;
  • Prisma;
  • Docker;
  • Redis;

Avaliação

Para que possamos avaliar o seu teste pedimos que envie o link do repositório que você criou para o email contato@riderize.com.

Dúvidas

Para qualquer dúvida, pode ser aberta uma ISSUE neste repositório.