/pollsAPI

API для создания опросов

Primary LanguagePython

Тестовое задание - API для опросов

Задача: спроектировать и разработать API для системы опросов пользователей.

Функционал для администратора системы:

  • авторизация в системе (регистрация не нужна) /api-auth/login либо /admin
  • добавление/изменение/удаление опросов. Атрибуты опроса: название, дата старта, дата окончания, описание. После создания поле "дата старта" у опроса менять нельзя /api/v1/polls/poll
  • добавление/изменение/удаление вопросов в опросе. Атрибуты вопросов: текст вопроса, тип вопроса (ответ текстом, ответ с выбором одного варианта, ответ с выбором нескольких вариантов) /admin/polls/question

Функционал для пользователей системы:

  • получение списка активных опросов: GET /api/v1/polls/?active=True
  • прохождение опроса: POST /api/v1/completed_polls
  • получение пройденных пользователем опросов с детализацией по ответам (что выбрано) по ID уникальному пользователя GET /api/v1/users/<uuid>

Технологии: Django 2.2.10, Django REST framework.

Запуск

  • С помощью docker-compose:
    $ docker-compose up
  • Локально:
    • $ python3 -m venv venv
    • $ source venv/bin/activate
    • $(venv) pip install -r requirements.txt
    • $(venv) python manage.py migrate
    • $(venv) python manage.py load_trash
    • $(venv) python manage.py runserver <port>