/team-up-test

Тестовое задание в компанию TeamUp (Django/DRF)

Primary LanguagePython

Описание

Используя Python 3.10 написать приложение на версии Django 3.2 и Django DRF (любой версии), в качестве пакетного менеджера использовать poetry.

Бизнес требования:

Для тестируемых существуют специальные секретные ключи по которым можно пройти 2 теста. Один из них это IQ второй EQ. В конце тестирования можно посмотреть свои результаты.

Нужно реализовать следующие ручки

  1. Создание теста. При вызове этой ручки создается тест с уникальным логином (набор букв в 10 знаков) который будет возвращен в ответе и его можно будет использовать для прохождения теста.
  2. Сохранить результаты теста IQ и время когда он был пройден. Передаются набранные баллы от 0 до 50 и логин теста к которому нужно это прикрепить.
  3. Сохранить результаты теста EQ и время когда был пройден. Передается упорядоченный список букв (размером в 5 элемента) из набора set(а, б, в, г, д).
  4. Можно посмотреть текущий результат прохождения по заданному тесту. Передается логин, в ответе получаю результаты 2 тестов (кол-во баллов, упорядоченный список букв которые ввел пользователь, время прохождения каждого теста и логин)

Установка и запуск

Необходимые инструменты и технологии

Клонируйте репозиторий

git clone https://github.com/joerude/team-up-test.git
cd team-up-test

Установите необходимые зависимости

poetry shell
poetry install

Настройка и миграции базы данных

python3 manage.py makemigrations
python3 manage.py migrate

Запуск приложения

python3 manage.py runserver

Документация API

Документацию API можно найти по адресу 127.0.0.1:8000/api/schema/redoc/

POST api/test/ - сгенерирует 10-значный логин
POST api/result/iq/ - Сохранит результаты теста (score) IQ и время когда он был пройден по login
POST api/result/eq/ - Сохранит результаты теста (answers) EQ и время когда он был пройден по login
GET  api/result/{login}/ - Получит результаты двух тестов IQ и EQ по login