Создание/редактирование опроса

Система проведения опросов на интернет-сайте

Краткое описание задачи

Создать систему проведения опросов на сайте (на PHP, JavaScript, MySQL ), позволяющую:

 

Администраторам:

  • Создавать опросы.
    Каждый опрос может состоять из любого количества вопросов, для каждого вопроса может быть введено любое количество ответов.
    Каждый вопрос может быть одного из двух типов:
    1. Пользователь может выбрать только 1 вариант ответа (с помощью радиокнопок)
    2. Пользователь может выбрать несколько вариантов ответов (с помощью чекбоксов)
  • Просматривать результаты опросов в разрезе различных категорий пользователей (подробно об этом – в главе «Просмотр результатов опросов»).

 

Пользователям:

  • Отвечать на вопросы того опроса, для которого администратор установил свойство «активный».
  • Просматривать результаты активного опроса (по всем пользователям).

 

 

Пример опроса:

 

Как часто Вы заходите на сайт?

¡ Это мой первый визит

¡ Раз в месяц и реже

¡ Несколько раз в месяц

 

Какие разделы представляют для Вас наибольший интерес?

o Новости

o О компании

o Производство

o Контакты

 

3. Ваш пол:

¡ Мужской

¡ Женский

 

4. Ваш возраст:

¡ Меньше 20 лет

¡ 20-30 лет

¡ 31-40 лет

¡ Старше 40

 

Список опросов

Страница «Список опросов» доступна администраторам.

Внимание! Авторизацию администраторов делать не нужно. Вход на страницу должен осуществляться по отдельному URLу.

 

На данной странице отображается список всех существующих опросов. Должны выводиться названия опросов и рядом ссылки для совершения доступных администратору действий.

 

Список должен быть разбит на 3 части:

1) Активный опрос (опрос, на вопросы которого могут отвечать пользователи в данный момент)

2) Черновики

3) Закрытые опросы

 

Для активного опроса должна быть возможность проделать следующие действия:

  • Просмотреть результаты (см. главу «Просмотр результатов опроса»)
  • Закрыть опрос (опрос перестаёт быть доступным внешним пользователям сайта и переходит в список «Закрытые опросы»)
  • Удалить опрос (опрос удаляется вместе со всеми ответами на его вопросы)

 

Для черновиков должны быть доступны следующие действия:

  • Редактировать опрос.
  • Активировать опрос (опрос становиться доступным внешним пользователям сайта и переходит в список «Активный опрос»; действие доступно, только если в данный момент нет активного опроса, т.о. активный опрос может быть только один)
  • Удалить опрос (опрос удаляется вместе со всеми ответами на его вопросы)

 

Для закрытых опросов должны быть доступны следующие действия:

  • Просмотреть результаты (см. главу «Просмотр результатов опроса»).
  • Активировать опрос (опрос становиться снова активным, все предыдущие ответы сохраняются; действие доступно, только если в данный момент нет активного опроса)
  • Удалить опрос (опрос удаляется вместе со всеми ответами на его вопросы)

 

Должна быть ссылка «Создать новый опрос» для перехода к странице создания нового опроса (см. главу «Создание/редактирование опроса»).

 

Создание/редактирование опроса

Переход на эту страницу может быть осуществлен со страницы «Список опросов» по ссылкам, расположенным рядом с названиями черновиков опросов, либо по ссылке «Создать новый опрос»

 

Должна иметься возможность ввести (или отредактировать) следующие поля:

 

  • Название опроса
  • Текст вопроса, его тип (типов два: 1) может быть выбран только один вариант ответа 2) может быть одновременно выбрано несколько вариантов ответов), обязателен ли ответ на данный вопрос.

 

Должна быть возможность добавить любое количество вопросов и любое количество ответов для каждого вопроса.

 

Проверки при сохранении опроса:

  • Должно быть введено название опроса
  • Должен быть введен хотя бы 1 вопрос.
  • Для каждого введенного вопроса должно быть введено не менее 2х ответов и выбран тип.
  • Хотя бы один из введенных вопросов должен быть обязательным для ответа.

 

Добавление полей для ввода очередного вопроса (ответа) должно производиться без перезагрузки страницы.

 

Прохождение опроса

Страница прохождения опроса должна быть доступна по отдельному URLу

Внимание! Как-либо учитывать, проходил ли ранее данный пользователь опрос, не надо. При каждом сохранении результатов опроса считается, что опрос прошёл новый пользователь.

 

Если активного опроса в данный момент не существует, на странице выводится следующий текст «Нет доступного опроса».

 

Если активный опрос в данный момент существует, должны отображаться вопросы этого

опроса и кнопка «Сохранить результаты», например:

 

Название опроса 1. Как часто Вы заходите на сайт? ¡ Это мой первый визит ¡ Раз в месяц и реже ¡ Несколько раз в месяц   2. Какие разделы представляют для Вас наибольший интерес?* o Новости o О компании o Производство o Контакты   3. Ваш пол:* ¡ Мужской ¡ Женский   4. Ваш возраст: ¡ Меньше 20 лет ¡ 20-30 лет ¡ 31-40 лет ¡ Старше 40   Сохранить результаты  

 

Обязательные вопросы должны быть отмечены *.

 

При нажатии на кнопку «Сохранить результаты» должна выполниться проверка на заполнение обязательных вопросов.

Если есть обязательные вопросы, на которые не дан ответ, пользователь должен быть возвращен на ту же страницу с сообщением об ошибке.

 

Если ответы на все обязательные вопросы даны, пользователю должны показаться результаты ответов всех пользователей, прошедших опрос, например:

 

  Результаты опроса «Название опроса» 1. Как часто Вы заходите на сайт? Это мой первый визит 7 из 10   Раз в месяц и реже 1 из 10   Несколько раз в месяц 2 из 10   2. Какие разделы представляют для Вас наибольший интерес?   Новости 7 из 10   О компании 6 из 10   Производство 3 из 10   Контакты 9 из 10   3. Ваш пол: Мужской 6 из 10   Женский 4 из 10   4. Ваш возраст:   Меньше 20 лет 2 из 10   20-30 лет 3 из 10   31-40 лет 4 из 10   Старше 40 1 из 10