GithubHelp home page GithubHelp logo

developer_test's Introduction

Take5 - Contratação Desenvolvedor Back-end

Olá, este é o teste para contratação de um desenvolvedor Back-end

Para a realização deste teste você precisará ter conhecimentos dos seguintes items:

  1. Git
  2. Django
  3. Django Rest Framework
  4. PL-SQL (MySQL, MSSQL)

É importante que você sinalize no documento anexo a este projeto caso não tenha domínio em algum dos itens descritos acima. Caso tenha alguma dúvida fique a vontade para pesquisar na internet sobre.

Teste

Parte 1 (3 partes) - Git, Todo mundo junto

Esta etapa irá nos apresentar os seus conhecimentos de Git.

  • Dê um fork deste projeto
  • Crie uma branch dentro do seu fork com o seu email como nome.
  • Para os próximos passos, gostaríamos que você efetuasse os pushs conforme sua evolução.

Utilize commits que pontuem o está sendo carregado para o repositório, pois depois de você outras pessoas poderão utilizar o mesmo repositório/branch para dar continuidade ao seu trabalho.

Parte 2 (3 Partes) - Welcome to the Django

Esta etapa irá mostrar os seus conhecimentos de Django.

  • Dentro do diretório deste projeto, inicialize um projeto Django, com o nome de "take5"
  • Rode as migrações do seu projeto para inicializar as tabelas do django
  • Inicie o servidor e verifique se sua aplicação está funcionando
  • Dentro do projeto, inicialize uma aplicação chamada "survey"
  • Inclua survey no projeto take5
  • Crie modelos para sua aplicação:
    • Survey (Pesquisa)
    • SurveyQuestion (Perguntas da pesquisa)
    • SurveyQuestionAlternative (Alternativas para as perguntas da pesquisa)
    • SurveyUserAnswer (Respostas dos usuários para a Pesquisa)
  • Gere a migração do Banco de Dados para que suas tabela sejam criadas
  • Cadastre uma pesquisa utilizando uma das formas abaixo descritas

Opções para cadastrar a pesquisa:

  1. Criar uma pesquisa utilizando o Painel do Django
  2. Criar uma pesquisa utilizando o Shell (Caso opte por esta opção é necessário inserir os comandos utilizados no arquivo shell.py localizado neste projeto)

Parte 3 (3 Partes) - Show me the money

Esta etapa irá mostrar os seus conhecimentos de Django Rest Framework.

  • Instale o Django Rest Framework no projeto, utilizando o PIP e incluindo ele no seu settings.py
  • Crie uma view para apresentar suas pesquisas, associando ela a uma URL do seu projeto
  • Crie um serializer para pegar Survey, SurveyQuestion e SurveyQuestionAlternative. Tente utilizar o prefetch_related nas queries para diminuir a quantidade de queryes necessárias para a apresentação dos dados
  • Acesse a página da sua pesquisa e copie o JSON de resultado para o arquivo result.json situado no diretório raiz deste projeto

Boa Sorte

Qualquer dúvida entrar em contato com Alexandre Sanches ([email protected])

developer_test's People

Contributors

rolexsanches avatar

developer_test's Issues

Prefetch_related aumenta o número de queries ?????????????????

Comparativo entre as queries e tempos com prefetch_related e sem:

Sem prefetch related:

Survey.objects.get ou all

Buscar por ID

0.0sec for 3 queries

Busca geral:

0.001sec for 2 queries

Com prefetch_related:

Survey.objects.get ou all + prefetch_related('questions')

Buscar por ID

0.0sec for 4 queries

Busca geral:

0.001sec for 2 queries

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.