Skip to content

DanielDDHM/api-pyquiz

Repository files navigation

Modelagem do banco

Download & Instruções para instalação.

  • 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

Tasklist

  • 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

Endpoints.

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.

About

An api crud for quiz in python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages