LaTeX-documentation/tex/req.tex

148 lines
15 KiB
TeX
Raw Normal View History

2021-06-07 19:32:31 +03:00
\newlist{subreg}{enumerate}{10}
\setlist[subreg, 1]{label=\textbf{FR-\arabic*.}}
\setlist[subreg, 2]{label*=\textbf{\arabic*.}}
\setlist[subreg, 3]{label=\arabic*.}
\begin{subreg}
\item \label{FR-1} \textbf{Аутентификация\\}
Сотрудник фонда должен иметь возможность авторизоваться в системе с логином/паролем, предварительно полученным после регистрации по почте. Процесс регистрации и получения логина/пароля описан в пункте \ref{enum:reg}. Если пользователь не зарегистрирован в системе или авторизуется с неверными данными, то система должна отобразить соответствующее сообщение.
При первоначальном авторизации в системе на новом устройстве пользователь должен увидеть диалоговое окно с возможностью принять или отклонить получение пуш-уведомлений (подробнее о пуш-уведомлениях в разделе \ref{push}).
\item \textbf{Настройки\\}
У пользователя должна быть возможность управлять личными данными в настройках системы.
\begin{subreg} \label{settings}
\item Должна быть возможность просмотра информации о своем профиле в настройках системы:
\begin{subreg}
\item ФИО, почта;
\item Дата рождения;
\item Город, страна, телефон;
\item Фотография;
\item Роль в системе (см. Приложение \ref{stuff});
\item Назначенные категории (только для пользователей с ролью <<Член комиссии>>);
\end{subreg}
\item Должна быть возможность изменения основной информации:
\begin{subreg}
\item ФИО;
\item Город, страна, телефон;
\item Фотография;
\item Дата рождения;
\end{subreg}
\item Должна быть возможность выбрать язык системы: русский или английский;
\item \label{enum:push} Должна быть возможность включить/отключить получение пуш-уведомлений;
\end{subreg}
\item \textbf{Пуш-уведомления\\} \label{push}
Сотрудники фонда должны иметь возможность получать пуш-уведомления, если такая настройка включена (см. пункт \ref{enum:push}).
\begin{subreg}
\item Должна быть возможность получения пуш-уведомлений на входящие сообщения в чатах поддержки (для пользователя с ролью <<Оператор>>, подробнее о чатах в пункте \ref{req:chats});
\item Должна быть возможность получения пуш-уведомлений при изменений статусов заявок, которые назначены на конкретного менеджера (для роли <<Менеджер>> и <<Член комиссии>>, подробнее в пункте \ref{req:status});
\item Должна быть возможность получения пуш-уведомлений при изменении статуса операции в системе блокчейн (подробнее в пункте \ref{req:blockchain});
\item Должна быть возможность просмотра списка уведомлений и информации о них:
\begin{subreg}
\item Дата и время уведомления;
\item Тип уведомления;
\item Инициатор уведомления;
\end{subreg}
\end{subreg}
\item \textbf{Статусы операций в системе блокчейн\\} \label{req:blockchain}
Сотрудники фонда должны иметь возможность просматривать изменения статусов операций в системе блокчейн, а именно: дата, время совершенной операции, тип операции, статус операций, дату, время обновления статуса.
\item \textbf{Управление пользователями\\}
Этот функционал должен быть доступен только для пользователя с ролью <<Администратор>> (кроме пункта \ref{enum:managers}).
\begin{subreg}
\label{admin}
\item \label{enum:admin_1} Должна быть возможность просмотра информации о пользователе: его ФИО, роль в системе, город, страна, фотография, статус в системе (заблокирован или нет), назначенные категории (только для пользователей с ролью <<Член комиссии>>);
\item Должна быть возможность изменить все поля из пункта \ref{enum:admin_1}, кроме почты;
\item \label{enum:reg} Должна быть возможность зарегистрировать пользователя в системе, указав:
\begin{subreg}
\item ФИО;
\item Почту;
\item Роль пользователя в системе (см. Приложение \ref{stuff});
\item Назначенные категории (только для пользователей с выбранной ролью <<Член комиссии>>);
\end{subreg}
После совершения процесса регистрации на указанную почту пользователю приходит логин/пароль для дальнейшей аутентификации в системе;
\item \label{enum:managers} Должна быть возможность просмотра информации о сотрудниках фонда для пользователя с ролью <<Член комиссии>>: ФИО, роль, город, страна, день рождения, телефон, назначенные категории (если есть), заявки назначенные на пользователя (если есит);
\end{subreg}
\item \textbf{Логи системы\\}
У пользователя с ролью <<Администратор>> должна быть возможность просматривать логи системы в формате JSON с обязательными полями: дата регистрации события, тип события и также описание события.
\item \textbf{Транзакции\\}
Этот функционал должен быть доступен только для пользователя с ролью <<Член комиссии>>.
\begin{subreg}
\item Должна быть возможность просматривать транзакции, совершенные внутри системы, информацию о них:
\begin{subreg}
\item Дата, время совершения транзакции;
\item Кто совершил транзакцию (ФИО донора);
\item Сумма транзакции;
\item На какую заявку транзакция была совершена - основная информация о заявке: название, автор, тип заявки;
\end{subreg}
\item Должна быть возможность провести ручную транзакцию -- вести данные о платеже, поступившем напрямую в фонд. При вводе транзакции должна быть возможность указать цель платежа: на одну из заявок фонда или на нужды фонда, а также ФИО пользователя от которого поступило пожертвование, сумму пожертвования;
\end{subreg}
\item \textbf{Категории\\}
Этот функционал должен быть доступен только для пользователя с ролью <<Член комиссии>>.
\begin{subreg}
\item Должна быть возможность просматривать категории фонда, доступные для назначения на заявки, а именно:
\begin{subreg}
\item ID - уникальный идентификатор категории;
\item Название категории на английском;
\item Название категории на русском языке;
\item Название категории на арабском;
\item Видимость категории - некоторые категории должны быть скрыты от пользователей при назначении категории на заявку;
\end{subreg}
\item Должна быть возможность изменить все данные о категориях;
\item Должна быть возможность удалить категорию. Для удаления доступны только те категории, которые не используются в системе (т.е не назначены на пользователей или на заявку);
\end{subreg}
\item \textbf{Заявки\\}
Эта функциональность должна быть доступна для пользователей с ролью <<Член комисии>> и <<Менеджер>>;
\begin{subreg}
\item \label{req:status} Должна быть возможность изменять статусы заявок в зависимости от роли пользователя и предыдущего статуса заявки в соответствии с диаграммой жизненного цикла заявки (см. Приложение \ref{status});
\item Должна быть возможность отредактировать данные о заявке (одобренная сумма, срок сбора средств), когда она находится в статусе <<В обработке>>;
\item Должна быть возможность создать заявку в системе от лица незарегистрированного пользователя. При создании заявки нужно указать: название, описание, сумма сбора, категория заявки, документы и дата сбора. Заявка сразу создается в статусе <<Активная>> от имени фонда. Эта функциональность должна быть доступна только для пользователей с ролью <<Член комиссии>>;
\item Должна быть возможность оставлять комментирии к заявке;
\item Должна быть возможность просматривать комментарии к заявке: текст сообщения, дату и автора;
\item Должна быть возможность менять менеджера, который назначен на обработку заявки;
\item Должна быть возможность закрыть сбор средств на заявку;
\item Должна быть возможность просмотреть информацию о голосовании по заявке в статусе <<Ждет подтверждения члена комиссии>>, а именно: кто имеет право проголосовать и их решение, а также статус голосования (в процессе, принято, отклонено);
\item У пользователей с ролью <<Член комиссии>> должна быть возможность проголосовать по заявке (за принятие или против), если категория заявки совпадает с назначенной на члена комиссии категорией;
\end{subreg}
\item \textbf{Чаты\\} \label{req:chats}
Данная функциональность должна быть доступна только пользователям с ролью <<Оператор>>;
\begin{subreg}
\item Должна быть возможность просматривать список чатов: ФИО собеседника, текст сообщения, количество непрочитанных сообщений;
\item Должна быть возможность написать сообщение;
\end{subreg}
\item \textbf{Управление контентом фонда\\}
Данная функциональность должна быть доступна только для пользователей с ролью <<Контент-менеджер>>;
\begin{subreg}
\item Должна быть возможность просмотривать м редактировать часто задаваемые вопросы в формате \texttt{markdown} \cite{md};
\item Должна быть возможность просмотривать, редактировать, удалять и создавать новости фонда. Для создания нужно указать название, описание новости и фотографию;
\item Должна быть возможность просмотра и редактирования информации о фонде: описания и загруженных документов;
\end{subreg}
\end{subreg}
\renewcommand{\labelenumi}{\arabic{enumi}.}
\renewcommand{\labelenumii}{\arabic{enumii}.}
\renewcommand{\labelenumiii}{\arabic{enumiii}.}