Ссылка на общее описание тестовое задания
Приложение, которое позволяет пользователю пройти тестирование по вопросам с заданными вариантами ответа, проверяет ответы и показывает пользователю результат. Ответ на вопрос считается правильным, если пользователь выбрал все правильные варианты ответа. Если пользователь выбрал не все правильные варианты, либо лишние варианты - вопрос считается неправильным.
- 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
Ответы пользователя:
- A
- B, C
- D
Резутальт: 1
Ответы пользователя:
- A
- B
- D
Резутальт: 0.67
Ответы пользователя:
- A
- A
- A
Резутальт: 0.33
Ответы пользователя:
- A
- A, B, C
- D
Резутальт: 0.67
Ответы пользователя:
- A, D
- B, C
- D
Резутальт: 0.67
- Запрещено вносить изменения в классы DTO описанные в
dto.py
- Запрещено менять конструктор класса
QuizResultService
и тип возращаемого значения методаget_result
Чтобы поднять заготовку приложения
docker-compose up -d
Чтобы выполнить тесты
docker-compose exec web python manage.py test
Чтобы проверить стиль кода
docker-compose exec web pycodestyle .
После того как ТЗ будет выполненно рекомендуем развернуть проект с нуля в отдельной папке и поднять приложение, чтобы проверить все ли новые зависимости проекта правильно установились и развернулись, будь то СУБД или компоненты приложения.
Тут пишите всю информацию по выполнению ТЗ которую считаете необходимым упомянуть.