API для системы опросов пользователей
- авторизация в системе (без регистрации)
- добавление/изменение/удаление опросов. Атрибуты опроса: название, дата старта, дата окончания, описание. После создания поле "дата старта" у опроса менять нельзя
- добавление/изменение/удаление вопросов в опросе. Атрибуты вопросов: текст вопроса, тип вопроса (ответ текстом, ответ с выбором одного варианта, ответ с выбором нескольких вариантов)
- получение списка активных опросов
- прохождение опроса: опросы можно проходить анонимно, в качестве идентификатора пользователя в API передаётся числовой ID, по которому сохраняются ответы пользователя на вопросы; один пользователь может участвовать в любом количестве опросов
- получение пройденных пользователем опросов с детализацией по ответам (что выбрано) по ID уникальному пользователя
- Склонируйте репозиторий
- Создайте и войдите в вирутальное окружение
- Установите зависимости:
pip install -r requirements.txt
- Можно использовать демо данные или удалить миграции и базу данных(пользователь admin/admin)
- Проведите миграции
python manage.py makemigrations
python manage.py migrate
- Создайте суперпользователя
python manage.py createsuperuser
- Запустите тестовый сервер
python manage.py runserver
- Пользователь отправляет запрос с параметрами
username
иpassword
на/api/token/
, в ответе на запрос ему приходитtoken
(JWT-токен) в поле access. - При отправке запроса передавайте токен в заголовке Authorization: Bearer <токен> (Для включения авторизации по JWT токену раскомментируйте раздел REST_FRAMEWORK в settings.py)
- Права доступа:
Администратор
- URL:
/api/polls/
- QUERY PARAMETERS:
name
,end_date
,description
- Права доступа:
Администратор
- URL:
/api/polls/<poll_id>/
- Права доступа:
Администратор
- URL:
/api/polls/<poll_id>/questions/
- QUERY PARAMETERS:
text
,type_question
(text_field or radio or check_boxes),poll
- Права доступа:
Администратор
- URL:
/api/polls/<poll_id>/questions/<question_id>/
- Права доступа:
Администратор
- URL:
/api/polls/<poll_id>/questions/<question_id>/choices/
- QUERY PARAMETERS:
text
- Права доступа:
Любой пользователь
- URL:
/api/active_polls/
- Права доступа:
Авторизованный пользователь
- URL:
/api/polls/<poll_id>/questions/<question_id>/answers/
- Права доступа:
Авторизованный пользователь
- URL:
/api/my_polls/
djangorestframework