Требования к ИС «Synergy Customers»
=======================================

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

1. Система должна поддерживать работу на следующих серверных ОС: Linux - рекомендуется использовать ОС Debian GNU/Linux версий не ниже 9.0 (AMD64).
2. Система должна поддерживать работу на реляционных СУБД и на noSQL СУБД.
3. Система не должна требовать обязательного приобретения дополнительных компонентов (лицензии на ОС, на СУБД и т.п.).
4. Система должна поддерживать шифрование подключений с помощью протокола SSL (HTTPS).
5. Система должна поддерживать работу с распределённым хранилищем данных.
6. Система должна обеспечивать возможность распределенной работы и удаленного доступа к ресурсам и объектам.
7. Система должна поддерживать работу в архитектуре Internet/Intrаnet.
8. Система должна предоставлять Web-интерфейс, который не требует установки клиентской части. Система должна поддерживать интернет-браузеры Google Chrome, Mozilla Firefox актуальных версий.
9. Система должна предоставлять возможность реализовывать пользовательские интерфейсы, используя HTML и/или JavaScript.
10. Система должна предоставлять комплект средств разработки (Software Development Kit - SDK), включая:
  * REST API;
  * способы авторизации: сессионная, по логину и паролю, по ключам;
  * события, возникающие в различных точках исполняемого кода при выполнении определённых условий;
  * очереди сообщений;
  * поддержку плагинов;
  * JavaScript интерпретаторы.
11. Система должна предоставлять возможность регулирования доступа к объектам в соответствии с правами пользователя.
12. Система должна предоставлять возможность создания, редактирования форм в визуальном редакторе форм.
13. Система должна предоставлять инструмент управления бизнес-процессами, поддерживающий нотацию BPMN.
14. Система должна предоставлять дизайнер бизнес-процессов. Создание и редактирование бизнес-процессов должно выполняться в рабочем пространстве дизайнера бизнес-процессов.
15. Система должна поддерживать версионность документов.
16. Система должна позволять импорт структурированных данных по заданному шаблону из файла формата Excel (.xls) в модули «Контакты», «Организации», «Сделки», «Договоры».
17. Система должна позволять создание/редактирование/удаление тем сотрудничества.
18. Система должна позволять редактирование справочника стадий сделки.
19. Система должна позволять редактирование справочника стадий договора.
20. Система должна позволять выгружать данные в формате Excel (.xls) в модулях, где записи находятся в виде списка. 

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

1. Система должна предоставлять доступ пользователям к модулю «Контакты».
2. Система должна предоставлять доступ пользователям к модулю «Организации».
3. Система должна предоставлять доступ пользователям к модулю «Сделки».
4. Система должна предоставлять доступ пользователям к модулю «Договоры».
5. Система должна предоставлять доступ пользователям к модулю «Лиды».
6. Система должна предоставлять доступ пользователям к модулю «Активности».
7. Система должна предоставлять доступ пользователям к модулю «Справочники».
8. Система должна предоставлять доступ пользователям к модулю «Планы продаж».
9. Система должна предоставлять доступ пользователям к модулю «Транзакции».
10. Система должна предоставлять доступ пользователям к модулю «Календарь». 


Требования к модулю «Контакты»
----------------------------------

1. Модуль должен отображать все контакты в виде списка.
2. Модуль должен позволять по нажатию на строку списка просмотр полной карточки контакта.
3. Модуль должен позволять создание и редактирование карточки контакта.
4. Модуль должен позволять в описании контакта указывать: полное имя, ИИН, компанию (организацию) и роль в ней, контактные и адресные данные, а также дополнительную информацию.
5. Модуль должен отображать подсказки о наличии совпадения по введенному полному имени либо ИИН контакта.
6. Модуль должен отображать внутри карточки активности, связанные с контактом.
7. Модуль должен позволять добавление активностей внутри карточки с автоматической привязкой к контакту и связанной организации.
8. Модуль должен отображать внутри карточки сделки, связанные с контактом.
9. Модуль должен позволять добавление сделок внутри карточки с автоматической привязкой к контакту и связанной организации.
10. Модуль должен позволять просмотр связанных карточек организации, активности, сделки.
11. Модуль должен позволять поиск контактов по списку. Поиск должен производиться по всему содержимому карточки контакта, а результаты поиска должны фильтровать список контактов.
12. Модуль должен позволять фильтрацию списка контактов по заданным условиям. В условия фильтров должны попадать все текстовые и числовые поля, компоненты выбора пользователей, даты и справочники из карточки контакта.
13. Модуль должен позволять формирование произвольной выборки из списка контактов.
14. Модуль должен позволять назначение выборки из списка контактов на произвольного пользователя Системы.
15. Модуль должен позволять удаление выборки из списка контактов в соответствии с правами доступа.

Требования к модулю «Организации»
----------------------------------

1. Модуль должен отображать все организации в виде списка.
2. Модуль должен позволять по нажатию на строку списка просмотр полной карточки организации.
3. Модуль должен позволять создание и редактирование карточки организации.
4. Модуль должен позволять в описании организации указывать: наименование, БИН/ИИН, справочные данные о форме организации и секторе экономики, контактные и адресные данные, а также дополнительную информацию.
5. Модуль должен отображать подсказки о наличии совпадения по введенному наименованию либо БИН/ИИН организации.
6. Модуль должен отображать  внутри карточки все активности, связанные с организацией.
7. Модуль должен позволять добавление активностей внутри карточки с автоматической привязкой к организации.
8. Модуль должен отображать внутри карточки сделки, связанные с организацией.
9. Модуль должен позволять добавление сделок внутри карточки с автоматической привязкой к организации.
10. Модуль должен позволять просмотр связанных карточек активности, сделки.
11. Модуль должен позволять поиск организации по списку. Поиск должен производиться по всему содержимому карточки организации, а результаты поиска должны фильтровать список организаций.
12. Модуль должен позволять фильтрацию списка организаций по заданным условиям. В условия фильтров должны попадать все текстовые и числовые поля, компоненты выбора пользователей, даты и справочники из карточки организации.
13. Модуль должен позволять формирование произвольной выборки из списка организаций.
14. Модуль должен позволять назначение выборки из списка организаций на произвольного пользователя Системы.
15. Модуль должен позволять удаление выборки из списка организаций в соответствии с правами доступа.

Требования к модулю «Сделки»
--------------------------------

1. Модуль должен предоставлять витрину продаж (в виде канбан-доски) в разрезе стадий сделок в соответствии с правами доступа. Руководителю доступны сделки всех подчиненных, подчиненному - только собственные сделки.
2. Модуль должен отображать сделку на витрине продаж в виде плашки с детализацией следующих сведений: название, бюджет и менеджер сделки, контакт и организация.
3. Модуль должен позволять по нажатию на заголовок плашки либо строку списка просмотр полной карточки сделки.
4. Модуль должен позволять создание и редактирование карточки сделки.
5. Модуль должен позволять в описании сделки указывать: название, тему сотрудничества и бюджет сделки, связанные карточки контакта и организации, файлы документов, а также дополнительную информацию.
6. Модуль должен предоставлять возможность указания текущей стадии сделки в соответствии с предварительно настроенными значениями справочника.
7. Модуль должен предоставлять возможность автоматической смены стадии сделки при её перемещении между столбцами витрины продаж.
8. Модуль должен отображать внутри карточки все активности, связанные со сделкой.
9. Модуль должен позволять добавление активностей внутри карточки с автоматической привязкой к сделке и связанным контакту, организации.
10. Модуль должен позволять просмотр связанных карточек контакта, организации, активности, договора.
11. Модуль должен позволять поиск сделок. Поиск должен производиться по всему содержимому карточки сделки, а результаты поиска должны фильтровать витрину и список сделок.
12. Модуль должен позволять фильтрацию витрины по заданным условиям. В условия фильтров должны попадать все текстовые и числовые поля, компоненты выбора пользователей, даты и справочники из карточки сделки.
13. Модуль должен позволять формирование произвольной выборки из витрины продаж.
14. Модуль должен позволять назначение выборки из витрины на произвольного пользователя Системы.
15. Модуль должен позволять удаление выборки из витрины сделок в соответствии с правами доступа.
16. Модуль должен позволять добавление задач и напоминаний с автоматической привязкой к сделке и связанным контакту, организации.
17. Модуль должен позволять формирование шаблона Коммерческого предложения.


Требования к модулю «Договоры»
----------------------------------
   
1. Модуль должен отображать договоры в виде списка в соответствии с правами доступа.
2. Модуль должен позволять по нажатию на строку списка просмотр полной карточки договора.
3. Модуль должен позволять создание и редактирование карточки договора.
4. Модуль должен позволять в описании договора указывать: предмет, тему сотрудничества, срок и сумму договора, связанные карточки контакта и организации, файлы документов, а также дополнительную информацию.
5. Модуль должен предоставлять возможность указания текущей стадии договора в соответствии с предварительно настроенными значениями справочника.
6. Модуль должен отображать все активности внутри карточки, связанные с договором.
7. Модуль должен позволять добавление активностей внутри карточки с автоматической привязкой к договору и связанным контакту, организации.
8. Модуль должен позволять просмотр связанных карточек контакта, организации, активности, сделки.
9. Модуль должен позволять поиск договоров по списку. Поиск должен производиться по всему содержимому карточки договора, а результаты поиска должны фильтровать список договоров.
10. Модуль должен позволять фильтрацию списка договоров по заданным условиям. В условия фильтров должны попадать все текстовые и числовые поля, компоненты выбора пользователей, даты и справочники из карточки договора.
11. Модуль должен позволять формирование произвольной выборки из списка договоров.
12. Модуль должен позволять формирование шаблона Договора.

Требования к модулю «Лиды»
----------------------------------
1. Модуль должен предоставлять канбан-таблицу в разрезе стадий лидов в соответствии с правами доступа. Руководителю доступны лиды всех подчиненных, подчиненному - только собственные лиды.
2. Модуль должен отображать лида на витрине продаж в виде плашки с детализацией следующих сведений: название, контакт, бюджет и менеджер лида.
3. Модуль должен позволять по нажатию на заголовок плашки либо строку списка просмотр полной карточки лида.
4. Модуль должен позволять создание и редактирование карточки лида.
5. Модуль должен позволять в описании лида указывать: тему сотрудничества, бюджет и источник лида, связанные карточки контакта и организации, файлы документов, а также дополнительную информацию.
6. Модуль должен предоставлять возможность указания текущей стадии лида в соответствии с предварительно настроенными значениями справочника.
7. Модуль должен предоставлять возможность автоматической смены стадии лида при перемещении его между столбцами канбан.
8. Модуль должен отображать внутри карточки все активности, связанные с лидом.
9. Модуль должен позволять добавление активностей внутри карточки с автоматической привязкой к лиду и связанным контакту, организации.
10. Модуль должен позволять просмотр связанных карточек контакта, организации, активности.
11. Модуль должен позволять поиск лидов. Поиск должен производиться по всему содержимому карточки лида, а результаты поиска должны фильтровать канбан-доску лидов.
12. Модуль должен позволять фильтрацию витрины по заданным условиям. В условия фильтров должны попадать все текстовые и числовые поля, компоненты выбора пользователей, даты и справочники из карточки лида.
13. Модуль должен позволять формирование произвольной выборки из канбан-доски лидов.
14. Модуль должен позволять назначение выборки из канбан-доски на произвольного пользователя Системы.
15. Модуль должен позволять удаление выборки из канбан-доски в соответствии с правами доступа.
16. Модуль должен позволять добавление задач и напоминаний с автоматической привязкой к лиду и связанным контакту, организации.

Требования к модулю «Активности»
----------------------------------
1. Модуль должен отображать активности в виде списка в соответствии с правами доступа.
2. Модуль должен позволять по нажатию на строку списка просмотр карточки активности.
3. Модуль должен позволять создание и редактирование активности.
4. Модуль должен позволять просмотр связанных карточек контакта, организации, сделки, договора, лида.
5. Модуль должен позволять поиск активностей по списку. Поиск должен производиться по всему содержимому карточки автивности, а результаты поиска должны фильтровать список активностей.
6. Модуль должен позволять фильтрацию списка активностей по заданным условиям. В условия фильтров должны попадать все текстовые и числовые поля, компоненты выбора пользователей, даты и справочники из карточки активности.
7. Модуль должен позволять формирование произвольной выборки из списка активностей.

Требования к модулю «Справочники»
----------------------------------
1. Модуль должен отображать определенный список справочников (т.н. "Справочные реестры").
2. Модуль должен отображать список записей справочника при выборе справочника в боковом меню.
3. Модуль должен позволять по нажатию на строку списка просмотр записи справочника.
4. Модуль должен позволять создание, редактирование и удаление записи справочника при наличии соответствующих прав у пользователя.
5. Модуль должен позволять поиск по записям справочника. Поиск должен производиться по всему содержимому карточки справочника, а результаты поиска должны фильтровать список записей справочника.

Требования к модулю «Планы продаж»
----------------------------------
1. Модуль должен отображать планы продаж в виде списка в соответствии с правами доступа.
2. Модуль должен позволять по нажатию на строку списка просмотр карточки плана продаж.
3. Модуль должен позволять создание и редактирование плана продаж.
4. Модуль должен позволять просмотр связанных карточек планов продаж.
5. Модуль должен позволять поиск планов продаж по списку. Поиск должен производиться по всему содержимому карточки плана продаж, а результаты поиска должны фильтровать список планов продаж.
6. Модуль должен позволять фильтрацию списка планов продаж по заданным условиям. В условия фильтров должны попадать все текстовые и числовые поля, компоненты выбора пользователей, даты и справочники из карточки плана продаж.
7. Модуль должен позволять пользователям выгружать отчеты по планам продаж согласно правам доступа.

Требования к модулю «Транзакции»
----------------------------------
1. Модуль должен отображать транзакции в виде списка в соответствии с правами доступа.
2. Модуль должен позволять по нажатию на строку списка просмотр карточки транзакции.
3. Модуль должен позволять создание и редактирование транзакции.
4. Модуль должен позволять просмотр связанных карточек транзакций.
5. Модуль должен позволять поиск транзакций по списку. Поиск должен производиться по всему содержимому карточки транзакции, а результаты поиска должны фильтровать список транзакций.
6. Модуль должен позволять фильтрацию списка транзакций по заданным условиям. В условия фильтров должны попадать все текстовые и числовые поля, компоненты выбора пользователей, даты и справочники из карточки транзакций.


Требования к модулю «Календарь»
----------------------------------
1. Модуль должен отображать задачи текущего пользователя с возможностью переключения на отображение задач подчиненных.
2. Модуль должен позволять переключать режимы отображения задач: День, Неделя, Месяц.
3. Модуль должен позволять переходить в выбранном режиме назад и вперед по времени.
4. Модуль должен позволять выбирать дату в календаре для отображения данных по задачам.
5. Модуль должен позволять создание, редактирование и удаление задач себе/подчиненным.
6. Модуль должен отображать всплывающие уведомления по задачам, в которых отмечена необходимость уведомлений.