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?
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;
- 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>
;
- 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;
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;
Para que possamos avaliar o seu teste pedimos que envie o link do repositório que você criou para o email contato@riderize.com.
Para qualquer dúvida, pode ser aberta uma ISSUE neste repositório.