- 1 - Clone o projeto: git clone
- 2 - cd desafio-backend
- 3 - Criar virtual environment: python -m venv venv
- 4 - venv\scripts\activate
- 5 - pip install -r requirements.txt
- 6 - python manage.py migrate
- 7 - python manage.py createsuperuser
- 8 - python manage.py runserver
- Implementar modelo de user personalizado
- Criar models conforme modelagem
- Implementação da autenticação JWT
- CRUD Usuários
- CRUD Categoria
- CRUD Questões
- Implementação do QUIZ
- Implementação dos filtros do Rank
User:
Endpoint para registro de usuários.
Passando email e senha, assim você obterá seu token de acesso.
Listagem geral dos usuários.
Perfil simples do usuário que fez a requisição.
Alteração do perfil do usuário passando o ID, endpoint aguarda os fields: name, email e is_admin(Booleano)
Desativação do usuário, como boa prática acredito que nenhuma informação seja excluída apenas desativa.
Categorias:
Listagem das categorias cadastradas, se filtrado pelo admin busca todas, caso contrario busca apenas as ativas.
Criação de uma nova categoria, aguarda o field name.
Atualização de uma categoria existente, aguarda o parâmetro pk e field name.
Desativação de uma categoria existente, aguarda o parâmetro pk.
Perguntas:
Listagem das perguntas cadastradas.
Criação de uma nova pergunta, aguarda os fields: question, first_answer, second_answer, third_answer, correct_answer(1, 2 ou 3) e category(id).
Atualização de uma pergunta existente, aguarda o parâmetro pk e os fields: question, first_answer, second_answer, third_answer, correct_answer(1, 2 ou 3) e category(id).
Desativação de uma pergunta existente, aguarda o parâmetro pk.
Quiz:
Para jogar acesse o endpoint acima que listara as categorias.
Apos a categoria selecionada, passa para esse segundo endpoint com o parâmetro pk da categoria, esse endpoint lhe retornará as 10 questões aleatórias.
Por fim use esse endpoint para responder as questões, passando no form-data o id da pergunta e resposta.
Rank:
Listagem dos quizzes respondidos.
Pontuação do usuário que chamou o endpoint.
Pontuação do usuário por categoria, endpoint requer o pk da categoria.
Faltam alguns pontos como uma regra para só liberar as categorias que tiverem mais de 10 perguntas, e com o rank faltou a listagem por usuário e pontuação.