Este é um desafio proposto pela empresa Rebase. Nesse projeto iremos fazer uma api para criação de questionários, onde teremos uma rota para criar um usuário e este poderá criar os questionários.
O desafio é um projeto desenvolvido em ruby on rails e conta o auxílio de algumas gems. Para testes usaremos o rspec.
O sistema oferece uma api para inserir novos usuários e estes podem criar questionários.
Obs: Para esse projeto utilizei o sistema operacional MACOS Catalina. Usei o editor de texto Atom. Estamos usando a versão do Ruby 2.6.3 e usamos o rvm para fazer o controle de versões ruby, segue a documentação: https://rvm.io/rvm/install.
-
Clone o projeto.
$ git@github.com:kellypc/rebase-rebase-questionnaire-challenge.git
-
Installe as Gems.
$ bundle install
-
Essa api conta com testes com o rspec, para rodá-los rode no terminal.
$ rspec ou $ rspec ./spec/users_create_questionnaire_spec.rb
-
Para manter o padrão de código ruby, temos o rubocop, para executá-lo rode no terminal para ver se há alguma ofensa a ser corrigida.
$ rubocop
POST /usuario
Parameters:
{
"user": {
"name": "User Test",
"email": "user@test.com",
}
}
status: 201 created
Content-Type: "application/json"
Body:
{
"message": 'Usuário criado com sucesso'
}
GET /questionario
Parameters:
{
"questionnaire": {
"name": "Lógica",
"description": "É um teste",
"limit_time": 2
}
}
Body:
{
"id": 1
"name": "Lógica",
"description": "É um teste",
"limit_time": 2.0,
"user_id": 1,
"created_at": "2020-06-29T12:41:40.621Z",
"updated_at": "2020-06-29T12:41:40.621Z"
}
POST /questionario
Parameters:
{
"questionnaire": {
"name": "Lógica",
"description": "Teste o seu conhecimento",
"limit_time": 2
}
}
status: 201 created
Content-Type: "application/json"
Body:
{
"message": 'Questionário criado com sucesso'
}
POST /pergunta
Parameters:
{
"question": {
"description": "Qual são as cores do arco-íris?",
"points": 2
}
}
status: 201 created
Content-Type: "application/json"
Body:
{
"message": 'Pergunta criada com sucesso'
}
POST /resposta
Parameters:
{
"answer": {
"description": "As cores são: ciano, azul, vermelho, verde",
"correct": true
}
}
status: 201 created
Content-Type: "application/json"
Body: { "message": 'Resposta criada com sucesso' }