Analisando propostas

Backend Python

Publicado em 17 de Novembro de 2021 dias na TI e Programação

Sobre este projeto

Aberto

Nesse desafio iremos avaliar suas habilidades em:

Python
Django
Django REST Framework
Pytest
Docker
Você irá desenvolver a API de uma aplicação para a criação de um quiz de perguntas e respostas!

A aplicação deverá prover o registro e autenticação de dois tipos de usuários:

Admin
Player
Cada quiz é composto por:

10 perguntas com 3 respostas onde apenas 1 é correta.
Cada resposta correta acumula a 1 ponto.
Cada resposta errada perde 1 ponto.
A menor pontuação possível é 0.
Possui uma categoria.
Ao iniciar o jogo:

O player deve escolher uma categoria válida e receber um quiz com perguntas aleatórias referentes a categoria escolhida.

Ao finalizar o jogo:

O player deve receber a contabilização dos seus pontos juntamente com a sua posição atual no ranking global. Não há limitação de quantos quizzes o player pode responder.
O ranking global:

É a contabilização dos pontos acumulados por cada player.

Ranking geral considera todas as categorias.
Ranking por categoria agrupa por categorias.
Permissões:

Todos os endpoints devem estar protegidos por autenticação.

Usuários do tipo Admin tem permissão para criar perguntas e respostas para os quizzes.
Usuários do tipo Player tem permissão para jogar e consultar o ranking.
Requisitos
O projeto precisa estar configurado para rodar em um ambiente macOS ou Ubuntu (preferencialmente como container Docker).

Deve anexar ao seu projeto uma coleção do postman com todos os endpoints criados e exemplos de utilização.
Para executar seu código devemos executar apenas os seguintes comandos:

git clone $seu-fork
cd $seu-fork
comando para instalar dependências
comando para executar a aplicação
Critério de avaliação
Organização do código: Separação de módulos, view e model
Clareza: O README explica de forma resumida qual é o problema e como pode rodar a aplicação?
Assertividade: A aplicação está fazendo o que é esperado? Se tem algo faltando, o README explica o porquê?
Legibilidade do código (incluindo comentários)
Segurança: Existe alguma vulnerabilidade clara?
Cobertura de testes (Não esperamos cobertura completa mas é importante garantir o fluxo principal)
Histórico de commits (estrutura e qualidade)
UX: A API é intuitiva?
Escolhas técnicas: A escolha das bibliotecas, banco de dados, arquitetura, etc, é a melhor escolha para a aplicação?

Categoria TI e Programação
Subcategoria Outros
Tamanho do projeto Pequeño
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário
Integrações de API Outros (Outras APIs)

Prazo de Entrega: Não estabelecido

Habilidades necessárias