Skip to content

Test case for "Solution Factory" (Python-разработчик (Django, DRF))

Notifications You must be signed in to change notification settings

Selagru/inquirer-api

Repository files navigation

сборка для postgresql (по умолчанию):
	docker-compose run web python /code/manage.py migrate --noinput
	docker-compose run web python /code/manage.py createsuperuser --username admin --email [email protected]
	docker-compose up -d --build

Если хотите БД SQLite3 с уже имеющимся опросом, в settings.py, параметру "POSTGRESQL_DB" присвойте значение False. Выполните "docker-compose up -d --build"

аутентификация пользователя происходит следующим образом:
	Если пользователь зарегистрирован в системе и отвечает на вопросы из-под своего аккаунта, для его распознования используются данные его аккаунта.
	Если пользователь не зарегистрирован, либо не авторизован, для его распознавания используется уникальный браузерный сессионный ключ. (request.session.session_key)

Функционал для администратора системы:
	1. вариант - http://localhost:8000/admin/ (админка Django)
		/polls/poll/ - Добавление, редактиврование, удаление опросов (при добавлении/редактировании есть возможность сразу добавить и вопросы)
		/polls/question/ - Добавление, редактиврование, удаление вопросов (при добавлении/редактировании есть возможность добавить/редактировать/удалить варианты ответов)
			Имеется возможность фильтрации по опросам и типам вопросов.
		/polls/answer/ - Просмотр, добавление, редактиврование, удаление ответов.
			Имеется возможность фильтрации по опросам, вопросам, пользователю и уникальному ключу браузерной сессии.
		/polls/singlechoice/ - Просмотр, добавление, редактиврование, удаление вариантов ответа с единственным выбором.
			Имеется возможность фильтрации по опросам, вопросам. Так же, каждому варианту можно назначить баллы, для отслеживания прогресса.
		/polls/multiplechoice/ - Просмотр, добавление, редактиврование, удаление вариантов ответа с множественным выбором.
			Имеется возможность фильтрации по опросам, вопросам. Так же, каждому варианту можно назначить баллы, для отслеживания прогресса.

	2. вариант - http://localhost:8000/ (GET, POST, PUT, PATCH, DELETE только для админа)
		/polls/ Добавление опросов. (инстанс опроса определен по маске /polls/<pk>, где pk - первичный ключ в таблице опросов. Во вкладке инстанса доступны редактиврование и удаление.)
			Доступен фильтр по ID\PK.

		Пример добавления готового опроса "На сколько вам нравится ваша работа?" на примере POST JSON: (http://localhost:8000/polls/)
=====================================================================================================================================
{
	"name": "На сколько вам нравится ваша работа?",
	"description": "Опрос направлен на сбор информации о том, на сколько вы довольны своей работой",
	"end_date": null,
	"questions": [
		{
			"text": "Сколько вам платят?",
			"question_type": "single",
			"singlechoice_set": [
				{
					"title": "Мало",
					"points": 0
				},
				{
					"title": "Нормально",
					"points": 10
				},
				{
					"title": "Много",
					"points": 0
				}
			]
		},
		{
			"text": "Выберите лучшее в своей работе",
			"question_type": "multiple",
			"multiplechoice_set": [
				{
					"title": "Зарплата",
					"points": 10
				},
				{
					"title": "Коллектив",
					"points": 20
				},
				{
					"title": "Отсутствие обязательств",
					"points": 0
				}
			]
		},
		{
			"text": "test single question",
			"question_type": "single",
			"singlechoice_set": [
				{
					"title": "single1",
					"points": 0
				},
				{
					"title": "single2",
					"points": 10
				},
				{
					"title": "single3",
					"points": 0
				}
			]
		},
		{
			"text": "test multiple question",
			"question_type": "multiple",
			"multiplechoice_set": [
				{
					"title": "multiple",
					"points": 0
				},
				{
					"title": "multiple",
					"points": 0
				},
				{
					"title": "multiple",
					"points": 0
				}
			]
		},
		{
			"text": "Опишите, что бы вы изменили, если бы стали начальником.",
			"question_type": "text"
		}
	]
}
=====================================================================================================================================

Функционал для пользователя:
	1. http://localhost:8000/ (просмотр опросов (/polls/) и вопросов (/questions/) с фильтрами по опросам)
	2. http://127.0.0.1:8000/answer/
		(GET: для подробного отображения ответов. (каждый пользователь видит только свои ответы.))
		(POST: для ответов на вопросы. Доступны Json и HTML форма. Присутствует проверка да принадлежность варианта ответа вопросу.)
	3. http://127.0.0.1:8000/user_answers/ (доступен только GET метод)
		Подробная сводка с ответами пользователя по всем пройденным опросам.

About

Test case for "Solution Factory" (Python-разработчик (Django, DRF))

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published