API для системы опросов пользователей
- авторизация в системе (без регистрации)
- добавление/изменение/удаление опросов. Атрибуты опроса: название, дата старта, дата окончания, описание. После создания поле "дата старта" у опроса менять нельзя
- добавление/изменение/удаление вопросов в опросе. Атрибуты вопросов: текст вопроса, тип вопроса (ответ текстом, ответ с выбором одного варианта, ответ с выбором нескольких вариантов)
- получение списка активных опросов
- прохождение опроса: опросы можно проходить анонимно, в качестве идентификатора пользователя в API передаётся числовой ID, по которому сохраняются ответы пользователя на вопросы; один пользователь может участвовать в любом количестве опросов
- получение пройденных пользователем опросов с детализацией по ответам (что выбрано) по ID уникальному пользователя
- Склонируйте репозиторий
- Создайте и войдите в вирутальное окружение
- Установите зависимости:
pip install -r requirements.txt
- Можно использовать демо данные или удалить миграции и базу данных(пользователь admin/admin)
- Проведите миграции
python manage.py makemigrationspython 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