Coder Social home page Coder Social logo

simbirsoft_test_quiz's Introduction

Приложение Quiz

Ссылка на общее описание тестовое задания

Почта для вопросов и результатов выполнения тестового

[email protected]

Общий функционал

Приложение, которое позволяет пользователю пройти тестирование по вопросам с заданными вариантами ответа, проверяет ответы и показывает пользователю результат. Ответ на вопрос считается правильным, если пользователь выбрал все правильные варианты ответа. Если пользователь выбрал не все правильные варианты, либо лишние варианты - вопрос считается неправильным.

Основные технологии

  • Python
  • Django
  • Docker Compose

ВАЖНО

Для облегчения тестирования необходимо использовать для расчета результата теста существующие наработки:

  • Классы DTO описанные в dto.py
  • Класс QuizResultService и его метод get_result описанные в services.py

Метод get_result сервиса QuizResultService должен возращать float с точностью до двух знаков после запятой, округление по стандартным правилам. Диапазон допустимых значений: от 0 до 1 включительно, где 0 - это 0% прохождения теста, а 1 - 100%.

Весь остальной фунционал сервиса (фронт, хранение данных, роутинг и т.д.) на усмотрение разработчика.

Пример расчета результатов

Допустим, тест имеет три вопроса. В каждом вопросе четыре варианта ответа.

  • Первый вопрос имеет один правильный результат A
  • Второй вопрос имеет два правильных результата B и C
  • Третий вопрос имеет один правильный результат D

Кейс 1

Ответы пользователя:

  1. A
  2. B, C
  3. D

Резутальт: 1

Кейс 2

Ответы пользователя:

  1. A
  2. B
  3. D

Резутальт: 0.67

Кейс 3

Ответы пользователя:

  1. A
  2. A
  3. A

Резутальт: 0.33

Кейс 4

Ответы пользователя:

  1. A
  2. A, B, C
  3. D

Резутальт: 0.67

Кейс 5

Ответы пользователя:

  1. A, D
  2. B, C
  3. D

Резутальт: 0.67

Ограничения

  • Запрещено вносить изменения в классы DTO описанные в dto.py
  • Запрещено менять конструктор класса QuizResultService и тип возращаемого значения метода get_result

Команды Docker'а

Чтобы поднять заготовку приложения

docker-compose up -d

Чтобы выполнить тесты

docker-compose exec web python manage.py test

Чтобы проверить стиль кода

docker-compose exec web pycodestyle .

Для проверки

После того как ТЗ будет выполненно рекомендуем развернуть проект с нуля в отдельной папке и поднять приложение, чтобы проверить все ли новые зависимости проекта правильно установились и развернулись, будь то СУБД или компоненты приложения.

Комментарии по выполнению ТЗ

Тут пишите всю информацию по выполнению ТЗ которую считаете необходимым упомянуть.

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.