Требования к разработке ИС «Showcase»
=====================================

Общие требования к Системе
--------------------------

.. csv-table::
    :widths: 2, 30

    3.1.1, "Система должна поддерживать работу на следующих серверных ОС: Linux, BSD, Solaris (рекомендуется использовать ОС Debian GNU/Linux 6.0 (amd64)."
    3.1.2, "Система должна поддерживать работу на реляционных СУБД и на noSQL СУБД."
    3.1.3, "Система не требует обязательного приобретения дополнительных компонентов (лицензии на ОС, на СУБД и т.п.)."
    3.1.4, "Система должна поддерживать шифрование подключений с помощью протокола SSL (HTTPS)."
    3.1.5, "Система должна поддерживать работу с распределённым хранилищем данных."
    3.1.6, "Система должна обеспечивать возможность распределенной работы и удаленного доступа к ресурсам и объектам."
    3.1.7, "Система должна поддерживать работу в архитектуре Internet/Intrаnet."
    3.1.8, "Система должна предоставлять Web-интерфейс, который не требует установки клиентской части. Система должна поддерживать интернет-браузеры Google Chrome, Mozilla Firefox актуальных версий."
    3.1.9, "Система должна предоставлять возможность реализовывать пользовательские интерфейсы, используя HTML и/или JavaScript."
    3.1.10, "Система должна предоставлять комплект средств разработки (Software Development Kit - SDK), включая: REST API; способы авторизации: сессионная, по логину и паролю, по ключам; события, возникающие в различных точках исполняемого кода при выполнении определённых условий; очереди сообщений; поддержку плагинов; JavaScript интерпретаторы."
    3.1.11, "Система должна предоставлять возможность регулирования доступа к объектам в соответствии с правами пользователя."
    3.1.12, "Система должна предоставлять возможность создания, редактирования форм в визуальном редакторе форм."
    3.1.13, "Система должна предоставлять инструмент управления бизнес-процессами, поддерживающий нотацию BPMN."
    3.1.14, "Система должна предоставлять дизайнер бизнес-процессов. Создание и редактирование бизнес-процессов должно выполняться в рабочем пространстве дизайнера бизнес-процессов."
    3.1.15, "Система должна поддерживать версионность документов."
    3.1.16, "Система должна предоставлять конструктор веб-клиентов, позволяющий изменять структуру портала в визуальном редакторе без программирования."

Требования к модулям Системы
----------------------------

.. csv-table::
    :widths: 2, 30

    3.2.1, "Система должна предоставлять возможность формирования каталога услуг, их описания и свойства в визуальном редакторе без программирования."
    3.2.2, "Система должна предоставлять модуль «Главная страница» для отображения каталога услуг."
    3.2.3, "Система должна предоставлять модуль «Паспорт услуги», содержащий подробное описание услуги."
    3.2.4, "Система должна предоставлять модуль «Заявка на услугу»."
    3.2.5, "В Системе должна быть возможность настройки произвольной формы, реестра и маршрута заявки на каждую услугу."
    3.2.6, "Система должна предоставлять модуль регистрации пользователей."
    3.2.7, "Система должна предоставлять модуль авторизации пользователя."
    3.2.8, "Авторизация должна осуществляться только логинами и паролями существующих учетных записей Системы."
    3.2.9, "Система должна предоставлять модуль «Личный кабинет» для просмотра истории заказов авторизованных пользователей."
    3.2.10, "Система должна иметь адаптивную верстку: контент должен корректно отображаться на экранах мобильных устройств, а также адаптироваться под широкоформатные экраны компьютеров и ноутбуков."
    3.2.11, "Во время выполнения запросов к серверу Система должна отображать анимированное изображение."

Требования к навигации по Системе
---------------------------------

.. csv-table::
    :widths: 2, 30

    3.3.1, "Общая верхняя панель содержит кликабельный лейбл «Войти» для неавторизованного пользователя; «Мои заявки» и «Выход» для авторизованного пользователя; «На главную»  для личного кабинета."
    3.3.2, "По нажатию на кликабельный лейбл «Войти» происходит переход в модуль авторизации."
    3.3.3, "По нажатию на кликабельный лейбл «Мои заявки» происходит переход в модуль «Личный кабинет»."
    3.3.4, "По нажатию на кликабельный лейбл «На главную» происходит переход в модуль «Главная страница»."
    3.3.5, "Подвал отсутствует."

Требования к модулю авторизации
-------------------------------

.. csv-table::
    :widths: 2, 30
    
    3.4.1, "Модуль авторизации доступен только для неавторизованных пользователей."
    3.4.2, "На странице авторизации доступна следующая форма ввода: электронная почта (поле ввода с маской для e-mail, обяз.), пароль (поле ввода со скрытием вводимых символов, обяз.)." 
    3.4.3, "По нажатию на кнопку «Войти» Система должна авторизовать пользователя."
    3.4.4, "Авторизация должна произойти успешно только при условии, что в Системе существует введенная учетная запись пользователя."
    3.4.5, "Во всех остальных случаях авторизация считается неуспешной, пользователю выводится аргументированное сообщение, он остается на экране авторизации."
    3.4.6, "В результате успешной авторизации пользователь возвращается на ту же страницу, на которой находился до перехода к авторизации."
    3.4.7, "После формы ввода авторизационных данных должна отображаться кнопка перехода к модулю регистрации."

Требования к модулю регистрации
-------------------------------

.. csv-table::
    :widths: 2, 30

    3.5.1, "Модуль регистрации доступен только для неавторизованных пользователей."
    3.5.2, "На странице регистрации доступна следующая форма ввода: электронная почта (поле ввода, обяз.), фамилия (поле ввода, обяз.), имя (поле ввода, обяз.), отчество (поле ввода, не обяз.), пароль (поле ввода со скрытием вводимых символов, обяз.), подтверждение пароля (поле ввода со скрытием вводимых символов, обяз.)."
    3.5.3, "По нажатию на кнопку «Зарегистрироваться» Система должна выполнить валидацию введенных значений."
    3.5.4, "В случае, если валидация успешна, Система должна проверить наличие учетной записи по введенному e-mail."
    3.5.5, "В случае, если валидация не успешна, регистрация не выполняется, пользователю выводится аргументированное сообщение, он остается на экране регистрации."
    3.5.6, "Регистрация должна произойти успешно только при условии, что в Системе отсутствует учетная запись с введенным e-mail."
    3.5.7, "В случае, если в Системе существует учетная запись с введенным e-mail, регистрация считается неуспешной, пользователю выводится аргументированное сообщение, он остается на экране регистрации."
    3.5.8, "В результате успешной регистрации пользователю выводится сообщение об успехе, происходит переход к модулю «Главная страница»."

Требования к модулю "Главная страница"
--------------------------------------

.. csv-table::
    :widths: 2, 30

    3.6.1, "Модуль «Главная страница» доступен как для авторизованных, так и для неавторизованных пользователей."
    3.6.2, "Модуль «Главная страница» содержит виджет, который может содержать статические плашки."
    3.6.3, "В статические плашки попадают услуги, помеченные свойством для отображения. Соответственно услуги, помеченные свойством «скрытые», в виджет не попадают. Если нет ни одной такой услуги, статические плашки не отображаются вовсе."
    3.6.4, "Каждая плашка услуги содержит: фоновую картинку услуги, наименование, краткое описание (ценность) услуги, а также кнопку перехода к модулю «Паспорт услуги»."
    3.6.5, "По нажатию на кнопку перехода открывается модуль «Паспорт услуги» - страница с подробным описанием выбранной услуги."

Требования к модулю "Паспорт услуги"
------------------------------------

.. csv-table::
    :widths: 2, 30

    3.7.1, "Модуль «Паспорт услуги» доступен как для авторизованных, так и для неавторизованных пользователей."
    3.7.2, "Страница услуги разделена на 2 части: блок с документами, блок с подробным описанием услуги."
    3.7.3, "Блок с документами содержит ссылки на скачивание файлов."
    3.7.4, "Блок с документами отображается только в том случае, если соответствующая услуга содержит приложенные файлы."
    3.7.5, "Блок с подробным описанием услуги может содержать: наименование, краткое описание (ценность) и подробное описание услуги, а также кнопку для подачи заявки на услугу."

Требования к модулю "Заявка на услугу"
--------------------------------------

.. csv-table::
    :widths: 2, 30

    3.8.1, "Подача заявки на услугу доступна только для авторизованных пользователей. Для неавторизованных пользователей выводится аргументированное сообщение с просьбой предварительной авторизации."
    3.8.2, "Модуль «Заявка на услугу» должен предоставлять возможность отобразить преднастроенную форму заявки."
    3.8.3, "Модуль «Заявка на услугу» должен осуществлять форматно-логический контроль формы заявки при подаче."
    3.8.4, "Модуль «Заявка на услугу» должен осуществлять создание и маршрутизацию заявки до исполнителя."

Требования к модулю "Личный кабинет"
------------------------------------

.. csv-table::
    :widths: 2, 30

    3.9.1, "Модуль «Личный кабинет» доступен только для авторизованных пользователей."
    3.9.2, "Модуль «Личный кабинет» должен отображать все заявки, которые подавал авторизованный пользователь."
    3.9.3, "По каждой заявке должна быть предоставлена следующая информация: наименование услуги, зарегистрированный номер, дата и время подачи, статус исполнения заявки, результирующий комментарий исполнителя."
    3.9.4, "По нажатию  на кнопку для просмотра заявки открывается страница, содержащая форму выбранной заявки."
    3.9.5, "Прользователь может изменить содержимое выбранной заявки."

