Вы находитесь на странице: 1из 84

Техническое задание на разработку Системы

Оглавление
1. Введение.......................................................................................................................................... 3
1.1. Назначение системы ........................................................................................................................ 3
1.2. Цели технического задания ......................................................................................................... 3
1.3. Глоссарий .............................................................................................................................................. 3
2. Требования к системе ............................................................................................................... 4
2.1. Нефункциональные требования................................................................................................ 4
2.1.1. Требования к Системе в целом ................................................................................................................ 4
2.1.2. Требования к производительности ...................................................................................................... 5
2.1.3. Технологические требования к системе ............................................................................................ 5
2.1.4. Целевые устройства....................................................................................................................................... 5
2.1.5. Требования к резервному копированию данных Системы ..................................................... 6
2.1.6. Требования к защите информации от несанкционированного доступа ......................... 6
2.1.7. Требования к патентной чистоте........................................................................................................... 6
2.2. Функциональные требования ..................................................................................................... 6
2.2.1 Блок моделей данных ................................................................................................................................. 14
2.2.2 Блок Интеграций ........................................................................................................................................... 23
2.2.3 Блок бизнес логики ...................................................................................................................................... 25
2.2.4 Блок интерфейсов ......................................................................................................................................... 54
2.2.5 Блок транзакции ............................................................................................................................................ 83
2.2.6 Блок оповещения........................................................................................................................................... 83
2.2.7 Блок выбора исполнителей ..................................................................................................................... 83
3. Прочие требования ..................................................................................................................84
3.1. Порядок контроля и приемки Системы ................................................................................84
3.2. Гарантийные обязательства ......................................................................................................84
3.3. Техническая поддержка Системы ...........................................................................................84

2
1. Введение
Проект «Project-С» представляет собой IT платформу для реализации благотворительных
проектов, где этапы подготовки, финансирования и реализации являются полностью про-
зрачными для всех участников. IT платформа состоит из мобильного приложения и web-
интерфейса (административная панель).

1.1. Назначение системы


Система предназначена для обеспечения прозрачности процесса реализации проектов пред-
ставленных в системе, а также возможности пользователей участвовать в проектах в разных
ролях. Система дает возможность эффективного контроля, конструктивной передачи инфор-
мации от организаторов проекта к участникам финансирующим данный проект.
Целью проекта «Project-С» является создание системы поддержки благотворительных проек-
тов, путем создания платформы с возможностью доступа к информации о проекте, посред-
ством веб-сервиса (админ-панели) и мобильного приложения. Обеспечение удобного интер-
фейса для создания, контроля, финансирования и участия в реализации благотворительных
проектов с разграничениям по регионам присутствия. Все процессы учитывают жесткое раз-
граничение ролей пользователей. Финансовые операции выполняются на уровне платежных
систем посредством регистрации транзакций. Система не содержит дополнительных финан-
совых данных относительно пользователей, участвующих в финансировании, кроме той, ко-
торая возвращается при проведении транзакции оплаты (номера счетов, имя владельца счета
и номер транзакции).

1.2. Цели технического задания


Целью данного документа является техническое и функциональное описание проекта с це-
лью получения полной картины проекта для предоставления на разработку. В документе
описаны функциональные и нефункциональные требования к системе.

1.3. Глоссарий
Термин/сокращение Определение
П Пользователи
М Модераторы
И Исполнители
А Администраторы
БД База Данных

3
2. Требования к системе
2.1. Нефункциональные требования /Non-functional requirements/
2.1.1. Требования к Системе в целом
Разрабатываемая Система должна учитывать следующие основные принципы:
- Открытость
Система должна использовать общедоступные и специфицированные решения, протоколы и
интерфейсы, что будет обеспечивать интеграцию создаваемых решений, как между собой,
так и с внешними информационными системами.
- Модульность
Система должна быть построена с использованием модульной архитектуры, подразумеваю-
щей реализацию основных функций в качестве отдельных модулей, обеспечивающих воз-
можность их независимой модификации. Сбой в работе одного из модулей не должен приво-
дить к полному прекращению функционирования Системы в целом.
- Масштабируемость
Архитектура Системы должна позволять увеличивать производительность подсистем, объ-
емы хранимой и обрабатываемой информации без длительной остановки работы и значи-
тельной модификации программного кода Системы.
- Управляемость и конфигурирование
Механизмы управления должны обеспечивать управление создаваемой Системой на всех
уровнях ее архитектуры: на уровне инфраструктуры, на функциональном уровне, на уровне
представления данных.
- Системность
Все взаимосвязанные подсистемы создаваемой Системы должны использовать единую мето-
дологию и отвечать единым принципам взаимодействия, надежности и управления.
- Персонализация
Предоставление информации пользователям должно осуществляться с учетом персональных
настроек пользователей.
- Единство графического представления
При проектировании и разработке пользовательских интерфейсов должны использоваться
общие принципы графического представления информации и организации доступа пользо-
вателей к функциональным возможностям и сервисам создаваемой Системы.
Разрабатываемая Система структурно должна состоять из следующих блоков:
- веб-интерфейс Администрирование;
- мобильное приложение (для операционных систем iOs и Android).
Доступ к инструментам и функциям Системы должен осуществляться из обоих блоков, набор
доступных операций и данных для каждого блока свой: веб-интерфейс должен позволять осу-
ществлять работу со всеми функциями и данными Системы через веб-браузер; мобильное
приложение должно осуществлять доступ к функциям и данным Системе, адаптированным
для использования на мобильных устройствах.

4
2.1.2. Требования к производительности
В рамках работ должна быть обеспечена производительность Системы для следующих пара-
метров:
- количество регионов (областей) функционирования системы - 15;
- количество пользователей мобильным приложением на регион (область) – 100 000;
- количество пользователей веб-интерфейсом на регион (область) – 100;
- количество пользователей с правами администратора – 15;
- режим эксплуатации Системы – 24 часа х 7 семь дней в неделю;
- коэффициент готовности – 98% в год. Суммарное время нахождения Системы в сер-
висном режиме не более 8 часов в месяц;
- Система должен обеспечивать одновременную бесперебойную работу с временем от-
клика не более 3 секунд для одновременно работающих 20 000 пользователей на область (ре-
гион)

2.1.3. Технологические требования к системе


(уточнить при необходимости)
Технологические требования системы описаны ниже.

Service Minimal Recommended


App Service Basic B1 – 57.75 Standard S1 - 73
Azure SQL 20 DTU – 29.43 50 DTU – 73.61
Blob Storage 100GB – 2.5 USD 100GB – 2.5 USD
Push Notifications 10 USD per Million 10 USD per Million
notifications notifications
TOTAL ~ 100 USD ~160 USD

На данном этапе, у нас нет методики расчета необходимых ресурсов для практически пока не
существующей системы, поэтому мы исходим от нашего предыдущего опыта. Мы считаем,
что данная конфигурация будет достаточна для поддержки нескольких сот тысяч клиентов
при одновременном подключении нескольких десятков тысяч. Самая узкая часть — это база
данных. Его ресурсы сильно зависят от того, насколько интенсивными будут запросы от
пользователей. Например, пользователь откроет статью и будет читать его (в этом случае
нагрузка на базу данных минимальна) или будет проводить частые поисковые запросы
(большая нагрузка). На данном этапе не имеем возможности проводить более детальный ана-
лиз. Будем проводить тесты и корректировать эти данные в течении разработки системы

2.1.4. Целевые устройства


Система будет работать на разных платформах:
1. Администрирование платформы – Веб приложение совместимое с
a. Microsoft IE 11 и выше
b. Microsoft Edge
c. Google Chrome
d. Mozilla Firefox
e. Safari

5
2. Пользовательский интерфейс – Мобильное приложение совместимое с
a. Android 5.0 и выше
b. iOS 10 и выше
3. Веб приложение совместимо с экранами для десктопа компьютеров, ноутбуков (раз-
меры экрана от 15 дюймов и выше).
4. Мобильное приложение должно быть совместимо с различными размерами экранов
мобильных телефонов

2.1.5. Требования к резервному копированию данных Системы


Azure имеет автоматическое Резервное копирование, частота резервного копирование 5-10
минут, срок хранения резервного копирования 5 недель.

2.1.6. Требования к защите информации от несанкционированного доступа


(Описать, какие меры должны обеспечиваться для защиты информации)
Защита будет обеспечиваться использованием SSL технологий. Так как используется SSL, по-
ток данных автоматически будет шифроваться при передаче к серверу. Данные, сохраненные
в базе, защищаются на уровне самого сервера и СУБД в облаке.

2.1.7. Требования к патентной чистоте


Патентная чистота Системы и ее частей должна быть обеспечена в отношении патентов, дей-
ствующих на территории Российской Федерации.
Реализация технических, программных, организационных и иных решений, предусмотрен-
ных проектом Системы, не должна приводить к нарушению авторских и смежных прав тре-
тьих лиц.
При использовании в Системе программ (программных комплексов или компонентов), раз-
работанных третьими лицами, условия, на которых передается право на использование (ис-
полнение) этих программ, не должны накладывать ограничений, препятствующих использо-
ванию Системы по ее прямому назначению.

2.2. Функциональные требования


Архитектурная схема Системы
Компонентами системами являются:
1. Админ Web приложение
2. Мобильные клиенты (apps)
3. Сервис работы с банком (включая возврат средств)
3.1. Пользователь нажимает кнопку «Пожертвовать», выбрав один из опубликованных в мо-
бильном приложении проектов.
3.2. Система использует суму взноса, указанную в настройках админ панели (по умолчанию
задана как 300 руб) и рассчитывает разницу между “Требуемая сумма сбора” и суму уже
сделанных взносов на проект. Если разница суммы превышает суму взноса, то для по-
жертвования берётся сума взноса (300 руб.) умноженный на коэффициент (1 + Б%, где Б
– это процентная ставка банка, заданная в настройках администратора (по умолчанию
2%)), а если нет, то берётся разница умноженная на коэффициент (1 + Б%, где Б – это
процентная ставка банка, заданная в настройках администратора) и в сущности транзак-
ции появляется запись о пожертвовании со статусом “новый”,
3.3. Пользователь вводит данные своей банковской карты:
1. Если для данного Пользователя не существует привязанных карт, то Пользова-
телю предлагается заполнить в мобильном приложении в полученной от банка

6
форме реквизитами своей карты и ставит галочку "Запомнить данные этой
карты"
2. Если для данного Пользователя существуют одна или несколько привязанных
карт, то они отображаются в выпадающем списке в поле для ввода PAN. Пользо-
ватель выбирает нужную карту (также есть возможность внести реквизиты но-
вой карты). Затем Пользователь выбирает нужную карту
3.4. Затем Сервис отправляет данные на сервер платежного шлюза
3.5. Далее происходит проверка на мошенничество со стороны банка при помощи набора ав-
томатических правил. Результатом применения правила является добавление к заказу
коэффициента вероятности мошенничества (фрод-веса). Каждое правило имеет свой
фрод-вес, который представляет собой число в (диапазоне от 0 до 100):
1. Если суммарный фрод-вес заказа по всем применённым к заказу правилам пре-
вышает 100, то такой заказ считается фродовым и оплата по нему будет откло-
нена
2. Если суммарный фрод-вес заказа по всем примененным к заказу правилам не
превышает 100, оплата по такому заказу будет принята
3.6. Каждый раз, после осуществления пожертвования Пользователем на проект, Система
проверяет разницу между «Требуемой суммой сбора» и суммой, уже сделанных взносов
по этому проекту. Если разница равна нулю, тогда считается, что такой проект собрал все
средства и проект меняет статус на «Идет исполнение» (см. таблицу статусов проекта)
3.7. После того как проект собрал требуемые средства, Система инициирует списание денеж-
ных средств с карточек Пользователей, которые осуществили пожертвование на данный
проект (Платёжный шлюз производит оплату)
3.8. Каждое воскресенье в 22:00ч, Сервис инициирует возврат средств Пользователям по про-
ектам, которые не собрали требуемую сумму (для проектов в статусе «Идет сбор
средств»):
1. Для проектов, у которых «Требуемая сумма сбора» равна сумме уже сделанных
взносов, Сервис проверяет транзакции с блокировкой и снимает деньги со счета
Пользователя;
2. Для проектов, у которых «Требуемая сумма сбора» превышает сумму уже сделан-
ных взносов, Сервис отправляет запрос на шлюз оплаты о возврате перевода от-
правляя сумму и orderid транзакции, если перевод был сделан, а если сумма была
заблокирована на счете Пользователя, то отменяет блокировку.
3.9. Когда по итогам проекта остался излишек средств (излишек рассчитывается по формуле:
[собранная сумма с пожертвований] - [сумма фактически потраченная на проект]), адми-
нистратор вручную инициирует возврат излишка собранных средств. Администратор
нажимает кнопку в карточке проекта – «Вернуть средства пользователям». Пожертвован-
ные средства автоматически возвращаются Пользователям по алгоритму LIFO (Послед-
ний пожертвовавший первым получает возврат).
3.10. Пользователь не может получить возврат больше чем он фактически пожертвовал.
3.11. Программа проверяет успешность возврата. Если сумма возвращенных средств рав-
няется сумме избытка средств, то кнопка «Возврат средств» блокируется для админи-
стратора.

4. Сервис Оповещения (См. решение по Push уведомлениям)


4.1. Началось голосование за проекты:
Каждую неделю сервис берёт из настроек день начала голосования и в этот день от-
правляет Модераторам оповещение о начале голосования.
4.2. Проект выбран для сбора денег: Сервис берет из Настроек день начала голосования, дли-
тельности и количества проектов которые должны быть выбраны в каждом регионе, и

7
когда голосование заканчивается, прочитывает голоса проектов в каждом регионе и вы-
бирает соответствующее количество проектов по следующей логике Проекты собравшие
наибольшее количество голосов, если два проекта имеют: одинаковое количество голо-
сов, то предпочтение даётся проекту с критичностью, если в этом плане они тоже равны,
то даётся предпочтение проекту добавленную первым. После выбора проектов, модера-
торам отправляется оповещение о том, что их проекты выбраны для сбора средств и ста-
тус этих проектов меняется на идет сбор средств.
4.3. Проект собрал деньги Сервис рассчитывает текущую сумму сбора суммируя сумму тран-
закций со статусом «Удачный» (эта сума показывается в карточке проекта) во время
сбора средств и, если проект собрал необходимую сумму(текущая сумма сбора равняется
требуемой сумме сбора), статус проекта меняется на «Идёт исполнение» /execution /и
Модератору проекта, а также пользователям, которые сделали взнос на этот проект от-
правляет оповещение о том, что Проект собрал необходимую сумму (в соответствии с
условиями, прописанными в решении по Push-уведомлениям). Возможность внести по-
жертвования на проекты, для которых текущая сумма сбора равняется требуемой сумме
сбора отсутствует.
4.4. Проект не собрал денег: После окончания сбора средств, сервис рассчитывает сумму
сбора суммируя сумму транзакций со статусом «Удачный» для проектов со статусом идет
сбор средств, и, если сумма собрана см. 4.3, если не собрана Модератору проекта, пользо-
вателям, которые сделали взнос на этот проект запускается механизм возврата средств
и отправляет оповещение о том, что Проект не собрал необходимую сумму (если они не
отключили это уведомление), и меняет статус проекта на «Новый» и увеличивает значе-
ние в поле «Не собрано средств раз» в карточке проекта на 1.
4.5. Каждый день Сервис сканирует проекты и для проектов, для которых до «Актуальный
срок проекта по» осталось меньше 2 недель, происходит перевод в статус «Требует уточ-
нения актуальности». Модератору этого проекта отправляется оповещение о том, что
проект становится не актуальным, модератор может зайти, и поменять «Актуальный
срок проекта по», чтобы проект стал актуальным, после чего статус проекта меняется на
«Новый» и может участвовать в голосовании.
Проекты в статусе «Требует уточнения актуальности» не участвуют в голосовании.
4.6. Критичность
4.7. В течение периода пожертвований, сервис проверяет наличие проектов с признаком
«Критичности» в определенное время, которое берется из настроек, и всем пользовате-
лям, которые ещё не осуществили пожертвования на текущей неделе, отправляется опо-
вещение, в случае если: [Остаток требуемой суммы] < [Количество пожертвований за про-
шлую неделю]/[Количество пользователей за прошлую неделю]*[Шаг пожертвова-
ния]*[Текущее количество пользователей] – [Собранное количество денег за неделю]
4.8. Волонтёрам в начале недели сервис отправляет Push уведомление о том, что если они
хотят, чтобы система по возможности добавляла их в роли исполнителей в проект в со-
ответствии с их пожеланиями, то необходимо установить признак «Стать волонтёром» в
карточке проекта. Признак может быть установлен во всех проектах в рамках одного ре-
гиона, но не может быть установлен на проекты в двух разных регионах.
4.9. Ежегодно 25 декабря направляются email всем Пользователям приложения с таблицами
проектов, которые были выполнены с участием Пользователя за год (если таковые суще-
ствуют) с указанием разбивки по ролям (в формате грамоты-поощрения): with an
indication of the breakdown by roles (in the format of letters of encouragement)
4.9.1.Спасибо вам за пожертвования: (далее таблица проектов, на которые Пользова-
тель осуществлял пожертвования и одновременно которые были выполнены);
4.9.2.Спасибо вам, нашей команде волонтеров удалось помочь нуждающимся: (далее
таблица проектов, зарегистрированных данным Модератором и которые были
выполнены, если таковые существуют);

8
4.9.3.Спасибо, благодаря вам мы помогли этим людям и животным: (далее таблица
проектов, в которых Куратор или Волонтер был вовлечен, если таковые суще-
ствуют).

5. Сервис Выбор исполнителей


После окончания сбора средств для проектов со статусом идет исполнение (См. Сервис
оповещения, раздел 4.3), сервис прикрепляет каждому проекту 1 куратора и 3 волонтеров
по логике описанной в «Решении по волонтерам» и в «Решении по городам».
Назначение исполнителей на проект осуществляется по следующему алгоритму:
1. Куратор назначается автоматически с учётом технического региона, города, указан-
ного в карточке пользователя и занятости, в первую очередь назначаются кураторы, ко-
торые не заняты ни на одном другом активном проекте, если Кураторы, соответствующие
всем требованиям, отсутствуют, то система назначает уже занятого на другом проекте Ку-
ратора, с наименьшим количеством текущих выполняемых проектов.
2. Волонтёры назначаются автоматически с учётом технического региона и с учётом го-
рода, указанного в карточке Пользователя, а также занятости на других проектах (По ана-
логии с кураторами). Приоритет подбора Волонтеров для системы: (1) в первую очередь
Волонтёрами назначаются Пользователи, которые вызвались участвовать в конкретном
проекте; (2) во вторую очередь система подбирает Волонтеров фонда, вызвавшихся
участвовать на конкретный проект; (3) В случае, если нет таких волонтёров, то назнача-
ются Волонтёры фонда, которые не заявлялись Волонтерами на проект.

6. Сервис Голосование
Обеспечивает процесс голосования модераторов за проекты по расписанию.

По расписанию, заданному в параметрах системы (день недели старта голосования моде-


раторов и длительность голосования модераторов) начинается процесс голосования мо-
дераторов.

• Определяется перечень модераторов, допущенных к голосованию как пользова-


тели с ролью «Модератор» на текущий момент
• Определяется перечень проектов, допущенных до голосования как все проекты со-
статусом «Новы»
В случае если в системе было больше двух голосований, определяется список
«оштрафованных модераторов» «Оштрафованным» считается модератор, кото-
рый был допущен и не голосовал в двух прошлых голосованиях. Проекты, в кото-
рых «Автор проекта» находиться в списке «Оштрафованных» не допускаются к го-
лосованию.
Проекты, допущенные к открытому (идущему в текущий момент) голосованию,
блокируются для изменений пользователями.
• В случае если голосование начать невозможно: нет допущенных модераторов или
нет проектов, отправляется уведомление Администратору системы
• По каждой категории из допущенных проектов допущенным модераторам предо-
ставляется один голос, который может быть израсходован, только на проекты ка-
тегории; Если в категории нет проектов, голос по категории не предоставляется.
• Допущенным к голосованию модераторам, предоставляется один дополнитель-
ный голос, который может быть потрачен на проект любой категории;

9
• Общие принципы голосования: Модератор не может голосовать за проекты где он
является автором. «Один проект – один голос модератора» - модератор может от-
дать только один голос за один проект, Все голоса равнозначны при определении
победителя
• Через указанную в параметрах системы длительность дней («длительность голо-
сования») сервис» прекращает голосование, производит определение итогов голо-
сования
По каждой из четырех категорий

Итоги голосования определяются по следующим правилам:


1. Выбирается 4 проекта по одному в разрезе категории по абсолютному большинству
голосов отданных за проект;
2. Пятый проект выбирается как проект, набравший наибольшее количество голосов
среди оставшихся проектов;
3. Если за проекты не было отдано ни одного голоса, система автоматически выбирает
5 проектов исходя из логики:
i. Выбирается самый дешевый проект в рамках категории (только в тех катего-
риях, где нет выбранных проектов);
ii. Если существует два наиболее дешевых проекта с одинаковой стоимостью из
них выбирается проект с более ранней датой регистрации в БД;
iii. Для определения 5 проекта выбирается наиболее дешевый проект из остав-
шихся (из любой категории).
7. Сервис Добора проектов
Если настройка “автоматический добор проектов” включена, то во время сбора средств
сервис проверяет если количество проектов со статусом идет сбор средств меньше, чем
количество, которое дано в настройках то меняет статус проекта, который не собрал до-
статочно голосов для сбора средств на идет сбор по логике:
Формула необходимости увеличения количества проектов в неделю:
[Сумма проектов, выбранных голосованием] <
([Количество пожертвовавших на прошлой неделе]/[Общее количество пользователей])*
[Шаг пожертвования] * [Текущее количество пользователей]

8. Сервис Настройки системы (настройки применяются для всех технических регионов)


Технический администратор с административной панели может настраивать следующие
параметры:
-сумма пожертвования (шаг пожертвования на будущей неделе, по умолчанию 300 руб-
лей);
- количество доступных проектов в неделю – количество проектов на которых можно по-
жертвовать средства за одну неделю (1 по умолчанию); /default/
-количества проектов доступных для пожертвования в неделю – количество проектов вы-
носимых на сбор средств (5 по умолчанию);
-количество исполнителей в карточке проекта – количество исполнителей, подбираемых
алгоритмически (3 по умолчанию);
-срок проекта в статусе сбор средств – продолжительность сбора средств.
- день и время проверки критичность проекта.
- день недели начала голосования и длительность голосования
- переключатель “автоматический добора проектов”
- Автоматический добор проектов

10
9. Сервис Изменение статусов (тех, что изменяются автоматически)
см. Сервис Оповещения 4.2-4.4

10. Сервис Назначение ачивок

11. Сервис Публикация в соц. сетях


Пользователь может настроить свой профиль так, что если он делает пожертвование, то
проект, на который он сделал пожертвование публикуется в социальных сетях и инфор-
мация проекта появляется на странице пользователя в соц. сети через API соц. сети.

12. Сервис подсчета собранных средств


см. Сервис Оповещения 4.3 или 4.4

13. Сервис Авторизация (для приложения и для веб)


13.1. Мобильное приложение
13.1.1. Регистрация:
13.1.1.1. По электронной почте
Пользователь вводит все необходимые данные в соответствии с описа-
нием в модели пользователь. Нажимает на кнопку регистрации, после
этого, если нет пользователя, зарегистрированного с такой электронной
почты, на его электронный адрес идет письмо с ссылкой подтверждения
регистрацию. После подтверждения, аккаунт пользователя активизиру-
ется;
13.1.1.2. Через соц. Сети
после нажатия регистрация по данной соц. сети, если у Пользователя от-
крыто приложение данной соц. сети, и он авторизован там, то открыва-
ется экран с просьбой потвердеть авторизацию, если нет, то открыва-
ется экран с просьбой авторизации в данной соц. сети. После соглашения
или авторизации открывается страница описанная в 13.1.1.1 с заполнен-
ными полями (выгруженными из соц. сети Пользователя).

13.1.2. Авторизация
Вносит эл. адрес и пароль, если зарегистрирован, то входит в приложение. Если
Пользователь неправильно подбирает Логин, тогда выводится информация:
«Пользователь отсутствует». Если Пользователь вводит неправильный пароль,
тогда выводится информация: «Неправильный пароль» и появляется кнопка
«Вспомнить пароль»

13.1.3. Восстановление Пароля


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

13.2. Веб:
13.2.1. Регистрация:
Регистрация в веб запрещена. Доступ в админ-панель предоставляется Тех. ад-
министратору, Администратору, Модератору, Куратору. Логин и пароль для
входа в админ панель соответствуют логину и паролю для входа в мобильное
приложение, указанное Пользователем при регистрации

11
13.2.2. Авторизация:
Если Пользователь зарегистрирован в мобильном приложении и с админ. па-
нели ему присвоили роль Администратора, Модератора или Куратора, то он мо-
жет войти в Админ панель по той же логике, как и в мобильном приложении:
набрав почту и пароль заходит в админ панель.
14. Сервис назначения ролей
По умолчанию все зарегистрированные в приложении пользователи работают под ролью
«Пользователь»;
Доступ на назначение роли «Администратор» есть только у пользователя с правами
«Тех.администратор»);
Назначение ролей «Модератор» и «Куратор» доступно только Пользователю с правами
«Администратор»;
Назначение роли «Волонтёр» возможно двумя способами:
1. Пользователь с правами «Администратор» назначил роль «Волонтёр»;
2. Пользователь с правами «Куратор» при проверке анкеты Пользователя на волон-
тёрство установил статус «Волонтёр». В таком случае система автоматически
назначает пользователю роль «Волонтёр».
«Администратор» любой момент может менять статус пользователя из «Волонтёр» на «не мо-
жет быть волонтером» (автоматически снимается роль «Волонтёр») и обратно из «не может
быть волонтером» на «Волонтёр» (автоматически назначает роль «Волонтёр»).

15. Сервис проверки актуальности проекта


см. Сервис Оповещения 4.6

Роли Пользователей
Описание всех ролей, осуществляющих активности в админ панели и приложении приведено
в таблице 2.

Таблица 2. Описание ролей, действующий в системе


# Роли Функционал
1 Пользователи (П) ● Внесение пожертвований на проекты
● Подача заявки на волонтерство
● Восстановление пароля
● Публикация информации о проекте в соц. Сетях
● Получение ачивок
2 Модераторы (М) ● Внесение проектов в БД
● Голосование за проекты
● Уточнение актуальности проекта (сроков актуальности)
● Подтверждение закрытия проекта
3 Куратор (К) ● Внесение информации по проекту: новостей, фотографий, тек-
стового описания; фактической суммы, затраченной на проект
● Отправка запроса Модератору на закрытие проекта
● Определение команды для исполнения проекта (частичное)
● Получение уведомление на почту с контактными данными всей
команды, включая Авторов, Модераторов и Волонтеров про-
екта
Волонтер (В) ● Назначаются в команду исполнителей для проекта

12
# Роли Функционал
● Получение уведомление на почту с контактными данными всей
команды, включая Авторов, Модераторов и Куратора проекта
4 Администраторы ● Назначение новых модераторов
(А) ● Назначение новых Кураторов, Волонтеров для проектов
● Отслеживание распределения средств
● Инициация возврата средств
● Ручное изменение ролей
5 Тех.Админ (ТА) ● Может изменять настройки в админ панели
● Устанавливает/изменяет роль Администратор
● Ведение справочников
● Может изменять любые данные в системе (как Суперпользова-
тель) без каких-либо ограничений, распространяющихся на
других Пользователей / объекты

На рисунке 1 изображена схема данных по работе мобильного приложения и админ панели.

Рисунок 1. Схема данных приложения и админ панели


На схеме не отражено, но участвует в логике:
1. Сервис назначения ролей (Для случаев, когда проверяется анкета на волонтерство)
2. API соц. сетей

13
2.2.1 Блок моделей данных
Пользователь
Пользователем является лицо, зарегистрированное в приложении. Реквизиты формы «Поль-
зователь» представлены в таблице 3.
Таблица 3. Реквизиты формы «Пользователь»

Поле Значение Описание


ID Целое число. Уникальный номер для каждого пользо-
вателя генерируемой системой
Фамилия* Текстовое поле.
Ограничения по
символам = 400
символов
Имя* Текстовое поле.
Ограничения по
символам = 400
символов
Пол 1-Женский, 2-
мужской
Отчество Текстовое поле.
Ограничения по
символам = 400
символов
Дата рождения ДД.ММ.ГГГГ
Возраст Целое число от 16 Автоматически рассчитывается исходя из
до 150 текущей даты и значения поля Дата рож-
дения
E-mail* Текстовое поле.
Ограничения по
символам = 400.
символов в фор-
мате электронного
почтового адреса.
Аватар картина

Город* Целое число, ID го- Место проживания пользователя в фор-


рода из списка го- мате:
родов Страна – регион - город (полученного от
сервиса после проверки на корректность
введенных пользователем данных или
определенных по геолокации устройства.
Автоматически добавляется в таблицу Го-
родов и подставляется сюда)
Номер телефона** Текстовое поле.
Ограничения по
символам = 20
Только цифры и
символы +, (, ), -
Опыт работы** Текстовое поле
Дополнительный Текстовое поле.
телефон** Ограничения по
символам = 20
Только цифры и
символы +, (, ), -

14
Поле Значение Описание
Страница ВК** Текстовое поле Линк веб страницы профиля пользова-
теля в соцсетях
Таланты** Текстовое поле
Файлы Файлы прикрепляемые к анкете заявки
на волонтёрство
Статус* 1- не Поле доступное для изменения Куратору,
проверен, Администратору
2- волонтер
3- не может
быть
волонтером,
Предпочтительные Целые числа, IDs
категории категорий из
проектов** списка категорий
Роль 1. Куратор Если никакая роль не назначена, тогда
2. Волонтер считается роль «Пользователь»
3. Модератор Допускается множественное назначение
4. Администратор ролей
5. Тех.администра-
тор
Тех. регион* Целое число, ID Ре- Регион, проекты которого Пользователь
гион из списка Ре- видит в мобильном приложении.
гион Заполняется автоматически, после запол-
нения пользователя города. Для выбора в
приложении Пользователям доступны
только технические регионы, для кото-
рых установлен признак «Активный» (см.
решение по городам)
* обязательное поле, ** обязательное поле только для исполнителей

Проект
В системе регистрируются благотворительные проекты. Реквизиты формы «Проект» пред-
ставлены в таблице 4. Проекты могут создавать только Модераторы и проекты могут редак-
тировать только модераторы / автор указанные в карточке проекта. Проект нельзя редакти-
ровать во время голосования, во время сбора средства (Статус проекта «Идёт сбор средств»).
В момент исполнения проекта доступны для изменения только те поля, которые относятся к
части реализации.
Таблица 4. Реквизиты формы «Проект»

Поле Значение Описание


При публикации проекта
ID*** Целое число. Уникальный номер для каждого пользо-
вателя генерируемой системой
Наименование Текстовое поле.
проекта * Ограничения по
символам = 400 сим-
волов
Категория** Целое число, ID ка- Категория проекта (Дети, Пожилые
тегории из списка люди, Инвалиды, Животные …)
категорий

15
Поле Значение Описание
Наименование ка- Текстовое поле из
тегории*** списка категорий

Краткое Текстовое поле, 400


описание** знаков
Описание** Текстовое поле
Адрес проекта ** Текстовое поле При вводе адреса (текста) система про-
веряет наличие адреса в системе Яндекс
Навигатора. Позволяет выбрать адрес
только тот, что может быть идентифи-
цирован в Яндекс Навигаторе.
Не позволяет сохранить поле, пока не бу-
дет указан адрес до конкретного номера
дома
Местоположе- Целое число, ID го- Заполняется автоматически. Не до-
ние**(Город) рода из списка горо- ступно для редактирования.
дов Система заполняет поле, указав: страну,
регион, город (из Яндекс навигатора)
Тех. Регион*** Целое число, ID из Заполняется автоматически. Не до-
списка Тех. регион ступно для редактирования.
Система заполняет поле, указав: Страну,
Город, Регион (ранее указанные, при
вводе адреса)
Дата Текстовое поле, Время добавления проекта в систему. За-
регистрации*** формат дата и вре- полняется системой автоматически.
мени Недоступно для редактирования в лю-
бой момент времени.
Начало Текстовое поле, Заполняется автоматически при смене
реализации*** формат дата и вре- статуса проекта с «Идёт сбор средств» на
мени «Идёт исполнение».
Недоступно для редактирования в лю-
бой момент времени.
Дата заверше- Текстовое поле, Заполняется автоматически при под-
ния*** формат дата и вре- тверждении модератором выполнения
мени проекта (Путём изменения статуса на
«Не выполнен» или «Выполнен».
Актуальный срок Текстовое поле, Обязательное поле, начиная с “Даты ре-
проекта по** формат дата и вре- гистрации” проект считается актуаль-
мени: не может быт ным до “Актуальный срок проекта по”
меньше “Актуаль- и участвует в голосовании;
ный срок проекта
с” и больше “Акту- Нельзя указывать дату раньше, чем те-
альный срок про- кущая дата (момент изменения про-
екта с” плюс два ме- екта);
сяца
Нельзя указывать дату позже, чем 2 ме-
сяца от текущей даты (момент измене-
ния проекта).

16
Поле Значение Описание
Автор проекта *** Целое число, ID Заполняется автоматически – указыва-
пользователя из ется Пользователь, создавший проект.
списка пользовате- Не доступно для редактирования.
лей в роле Модера-
тора
Модератор** Целое число, ID Пользователь, назначается автором. по
пользователя из умолчанию сам автор.
списка пользовате-
лей в роле Модера- Есть возможность указать несколько мо-
тора дераторов.
Требуемая сумма Десятичное число Сумма, необходимая для исполнения
сбора** проекта
Прикреплённые Файлы форматов:
файлы “pdf”,”jpeg”,”jpg”,”pn
g”
Смета ** Целые числа, IDs Строки из списка сметы, каждая строка
сметы из списка соответствует одной записи в списке
сметы смет
Критичность ** 1 - не критично См. Сервис Оповещения 4.6
2 – критичен
Не собрано средств Целое число Сколько раз проект был выбран на сбор
раз *** средств, но не собрал необходимую
сумму.
Заполняется автоматически.
Недоступно для редактирования в лю-
бой момент времени.
Статус* (см. Таблицу 1-Черновик “Идёт сбор средств”- когда статус =2, и
статусов проекта) 2-Новый проект выбран для сбора средств и идет
3-Деактивирован сбор средств.
4-Выполнен “Идёт исполнения”- когда статус =2, и
5-Ожидает под- проект был выбран для сбора средств и
тверждения моде- собрал необходимую суму.
ратора
7-Не выполнен.
Ожидает подтвер-
ждения модератора
8 - Не выполнен
Выполнен

Динамические ста-
тусы
1 - Идёт сбор
средств
2 - Идёт исполнение
При деактивации проекта
Причина Текстовое поле Принимает значение во время деактива-
деактивации ции: когда Модератор обязательно за-
полняет причину деактивации.
При переводе проекта в статус «Идёт исполнение»

17
Поле Значение Описание
Волонтёры*** Целые числа, ID Пользователи, которые будут исполнять
пользователей из проект: выбирается системой автомати-
списка пользовате- чески ( ) и может быть дополнен Курато-
лей в роле Исполни- ром проекта в соответствии с настрой-
теля ками системы.

Куратор*** Целое число, ID Пользователь, который будет куриро-


пользователя из вать исполнение проекта: выбирается
списка пользовате- системой автоматически (См. Сервис Вы-
лей в роле Исполни- бор исполнителей).
теля
Пользователь с правами «Администра-
тор» может добавить /изменить допол-
нительного куратора, но не может уда-
лить / изменить куратора, выбранного
автоматически системой
При закрытии проекта Куратором
Текст о Текстовое поле, 800 Обязательно заполняется при заверше-
завершении знаков нии проекта
проекта**
Фактическая сумма Десятичное число Сумма, потраченная во время исполне-
потраченных де- ния проекта, обязательно заполняется
нежных средств** при завершении проекта
Сумма средств Десятичное число Автоматическое поле, если “Фактиче-
затраченная ская сумма потраченных денежных
фондом *** средств” превышает сумму сбора, то
равно разнице этих сумм, в обратном
случае не заполняется.
Не доступно для редактирования.
Текущая сумма Десятичное число Автоматическое поле, рассчитывается
сбора *** от транзакций в статусе «Удачный»,
сумма переводов для этого проекта в те-
кущий момент (см. Сервис Оповещения
4.3 или 4.4)
Сумма возвращенных Десятичное число Автоматическое поле, рассчитывается
средств*** исходя из успешно проведённых тран-
закций «Возврат средств»

Отражается только если по проекту


была запущена процедура возврата де-
нежных средств
Отчётные доку- Файлы форматов:
менты** “pdf”,”jpeg”,”jpg”,”pn
g”
*Обязательные поля, ** поля обязательные если статус проекта не новый или деактивирован,
*** Автоматические поля нельзя редактировать в ручную

Категория
Все благотворительные проекты могут быть четырех категорий. Список реквизитов катего-
рий проектов представлены в таблице 5.
У пользователя с правами Технический Администратор должна быть возможность изменять
название категорий, добавлять новые категории, деактивировать категории.

18
Таблица 5. Реквизиты категорий проекта

Поле Значение Описание


ID Целое число. Уникальный номер для каждой катего-
рии генерируемой системой
Название* Текстовое поле. По умолчанияю четыре категории:
Ограничения по сим- 1- Дети
волам = 400 символов 2- Люди с ограниченными физиче-
скими возможностями
3- Пожилые люди
4- Животные
Категории фиксированы и не добавля-
ются новые

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

Поле Значение Описание


ID Целое число. Уникальный номер для каж-
дого технического региона
генерируемый системой
Название* Текстовое поле. Вводится в ручную Пользо-
Ограничения по символам = вателем при добавлении но-
400 символов вой записи.

Города Целые числа, IDs городов из Города, относящиеся к этому


списка городов техническому региону (см.
описание присвоение горо-
дов для тех. регионов и ре-
шение по городам)
Тех. Администратор может
корректировать справочник
городов – тех. регионов в ад-
мин. панели

Активен 0-не активен Модератор может выбрать


1- Активен для проекта только актив-
ные Регионы, и Пользова-
тель может выбрать только
активные Регионы для про-
смотра проектов

Город
Регионы состоят из уникального (не дублирующего) перечня городов. Перечень реквизитов
формы «Город» представлены в таблице 7.

19
Города в системе появляются по мере регистрации Пользователей, когда они выбирают свое
местоположение: если город уже есть в системе, то Пользователь прикрепляется к этому го-
роду если нет, то добавляется новый город и Пользователь прикрепляется к этому городу. Та
же самая логика работает при добавлении адреса проекта.
Таблица 7. Реквизиты формы «Город»

Поле Значение Описание


ID Целое число. Уникальный номер для каж-
дого Города генерируемой
системой
Название* Текстовое поле. Заполняется автоматически
Ограничения по символам = на основании введенного ад-
400 символов реса Пользователем при ре-
гистрации в системе

Тех. Регион Целое число, ID Тех. Региона Заполняется автоматически


из списка Регионов – присваивается уникаль-
ный номер тех. региона

Регион, страна Текстовое поле. Регион, и страна города из


Яндекс навигатора для обес-
печения уникальности го-
рода

Смета
На каждый благотворительный проект, зарегистрированный в системе, требуется собрать
определенную денежную сумму. Составляющие этой суммы указываются в Смете к данному
проекту. Реквизиты формы «Смета» представлены в таблице 8.
Таблица 8. Реквизиты формы «Смета»

Поле Значение Описание


ID Целое число. Уникальный номер для каж-
дой сметы генерируемой си-
стемой
Статья затрат Текстовое поле

Стоимость Десятичное число

Порядок Целое число.

Проект Целое число, ID проекта из


списка проектов

Голос Проекта
Для публикации конкретного проекта в приложении, проект должен собрать наибольшее ко-
личество голосов Модераторов по своей категории. Реквизиты формы «Голос проекта» пред-
ставлены в таблице 9.
Таблица 9. Реквизиты формы «Голос проекта»

Поле Значение Описание


ID Целое число. Уникальный номер для каждого Голос
Проекта генерируемой системой

20
Поле Значение Описание
Пользователь Целое число, ID Пользователь с ролю Модератор отдав-
пользователя из ший голос за конкретный проект
списка пользовате-
лей
Проект Целое число, ID
проектов из списка
проектов
Время Текстовое поле, Дата и время, когда Модератор проголо-
формат дата совал за проект
Голосование Целое число, ID го-
лосования из
списка Голосова-
ний

Транзакция
При пожертвовании пользователей в системе возникает уникальная транзакция. Реквизиты
формы «Транзакция» представлены в таблице 10.
Таблица 10. Реквизиты формы «Транзакция»

Поле Значение Описание


ID Целое число. Уникальный номер для каждой транзак-
ции генерируемой системой
Пользователь Целое число, ID
пользователя из
списка пользовате-
лей
Сумма Десятичное число Сумма перевода
Проект Целое число, ID
проектов из списка
проектов
Время Текстовое поле, Когда сделан перевод
формат дата
orderid Текстовое поле orderid возвращаемой системой оплат
(значение возвращает API банка и уника-
лен для каждой транзакции)
Статус Целое число Статус транзакции;
1 – Новый
2 - Ошибка
3 - Удачный
errorCode Целое число 0,1,3,4,5,7,13,14
errorCodeОписание 0- Обработка запроса прошла без си-
стемных ошибок
1- Заказ с таким номером уже обрабо-
тан
1- Заказ с таким номером был зареги-
стрирован, но не был оплачен
1- Неверный номер заказ
3- Неизвестная валюта
4- Номер заказа не может быть пуст
4- Имя мерчанта не может быть пу-
стым
4- Отсутствует сумма
4- URL возврата не может быть пуст

21
Поле Значение Описание
4- Пароль не может быть пуст
5- Неверная сумма
5- Неправильный параметр 'Язык
5- Логин продавца неверен
5- Доступ запрещён
5- Пользователь должен сменить
свой пароль
5- Доступ запрещён
5- [jsonParams] неверен
7- Системная ошибка
13- Использование обоих значений
Features FORCE_TDS/FORCE_SSL и
AUTO_PAYMENT недопустимо
13- Мерчант не имеет привилегии вы-
полнять AUTO платежи
13- Мерчант не имеет привилегии вы-
полнять проверочные платежи
14- Features указаны некорректно

Настройки
Для налаживания работы системы предусмотрены настройки основных параметров. Рекви-
зиты формы «Настройки системы» представлены в таблице 11.
Таблица 11. Форма «Настройки Системы»

Поле Значение Описание


ID Целое число. Уникальный номер для каждой настройки
генерируемой системой
Название* Текстовое поле Название настройки, например, день недели
начала голосование, длительность голосо-
вания, сума взноса и т.д.

Значение* Текстовое поле Значение настроек например для начала го-


лосование “четверг” длительность голосова-
ния “7”, сума взноса “300” и т.д.

Голосование
Таблица для ведения голосования. Реквизиты формы «Голосование» представлены в таблице
12.
Таблица 12. Реквизиты формы «Голосование»

Поле Значение Описание


ID Целое число. Уникальный номер для каждого Голосо-
вания генерируемой системой
Начала Текстовое поле, Начала голосования
формат дата
Окончание Текстовое поле, Окончание Голосования
формат дата

Модераторы голосования
Модераторы имеющие права участвовать в голосование. Реквизиты формы «Модераторы го-
лосования» представлены в таблице 13.

22
Таблица 13. Реквизиты формы «Модераторы голосования»

Поле Значение Описание


ID Целое число. Уникальный номер для каждого Голос
Проекта генерируемой системой
Пользователь Целое число, ID Пользователь с ролю Модератор.
пользователя из
списка пользовате-
лей
Время Текстовое поле, Дата и время, когда Модератор проголо-
формат дата совал за проект
Голосование Целое число, ID го-
лосования из
списка Голосова-
ний

2.2.2 Блок Интеграций


Взаимодействие мобильного приложения с Веб сервером будет производиться по следую-
щим ключевым API:
Пользователи:
Put: регистрация пользователя.
Patch: обновления данных пользователя.
Get: получения профиля пользователя.
Проект:
Get: Получения списка проектов выбранных для сбора средств после голосования со статусом
идет сбор средств.
Get: Получения списка Выполненные/Невыполненные проектов на которых пользователе
сделал пожертвование.
Get: Получение проектов с учетом обновленной команды Кураторов / Волонтеров
Patch: Изменение статуса проекта на “Выполнен. Ожидает подтверждения модератора” или
“Не выполнен. Ожидает подтверждения модератора” (отражается только куратору)
Patch: Изменение данных по ходу реализации проекта Куратором (загружать файл)
Статистика по проекту:
Get: Получение статистики пожертвований Пользователей на проект
Голосование (для модераторов):
Get: Список проектов данного региона, созданных перед началом голосования со статусом но-
вый, с сроком актуальности с меньше, чем начала голосования и с сроком актуальности по
больше, чем две неделю от начала голосования и модераторы которых не пропустили два по-
следних голосования подряд.
Put: Голосовать за проект
Patch: Измененные голоса
Регионы:
Get: Список активных технических регионов

23
Платеж:
Put: Осуществить пожертвование (запись в Транзакции и платеж через API alfa bank )
Put: Отправляется запрос на платёжный шлюзу для регистрации заказа ID пользователя, ID
Транзакции и сума взноса с помощью api банка
Get: Приходит ответ на запрос регистрации - платежный шлюз возвращает уникальный иден-
тификатор заказа в платежной системе или errorCode(0,1,3,4,5,7, 13,14), и URL, на который
необходимо перенаправить пользователя для получения платежной формы
Get: Пользователь получает платёжную форму
Put: Пользователь отправляет данные на сервер платежного шлюза. Детали заказа переда-
ются в систему фрод-конроля (на стороне банка) для определения вероятности мошенниче-
ства.
Get: В платёжный шлюз возвращаются результаты проверки заказа на мошенничество
Get: Веб Сервер запрашивает у платежного шлюза статус оплаты заказа (по уникальному
идентификатору заказа в платежной системе, который был получен при регистрации заказа)
Get: Платежный шлюз получает статус оплат от банка. Сервер отправляет пользователю ин-
формацию про оплаты – успешный платеж или неуспешно
Get: Получить список платежей пользователя

24
2.2.3 Блок бизнес логики
Сценарии использования приложения
Все возможные сценарии использования приложения в разрезе ролей представлены в таб-
лице 12.
Таблица 12. Сценарии использования приложения

# Сценарий Описание Пользователи

1. Заставка gif Пользователь при входе в приложение П


видит заставку gif

2. Инструкции для Поль- При первом входе в приложение Поль- П


зователей зователь видит инструкцию, относя-
щуюся к его роли

3. Инструкции для Моде- При первом входе в приложение Моде- М


раторов ратор видит инструкцию, относящу-
юся к его роли

4. Инструкции для Кура- При первом входе в приложение Кура- К


торов тор видит инструкцию, относящуюся к
его роли

5. Вход в приложение без Пользовать может пропустить автори- П


авторизации зацию и попасть на экран выбора про-
ектов. При этом Пользователь может
просмотреть проекты, но не может осу-
ществить пожертвование (при нажа-
тии на «подарить» приложение предла-
гает пройти авторизацию). При нажа-
тии на кнопку в меню «Личный каби-
нет» или «Ваши проекты» приложение
предлагает пройти регистрацию

6. Вход в приложение Пользователь вводит свои логин и па- П


вводом логина и па- роль. Приложение запоминает и вто-
роля рой раз не спрашивает пользователя
вводить логин и пароль

7. Регистрация Пользова- Пользователь на экране «Регистрация» П


теля в приложение че- нажимает «зарегистрироваться через
рез соц. Сеть (напри- соц. Сети», выбирает одну из сетей:
мер, Google, Vk, FB) Google, FB, VK и входит в экран «Реги-
страция» с предзаполненными полями

8. Регистрация Пользователь открывает вкладку «за- П


регистрироваться», заполняет необхо-
димые поля (См. модель пользователи)

25
# Сценарий Описание Пользователи

9. Подтверждение реги- Пользователь получает письмо на ука- П


страции занный Email с просьбой подтвердить
регистрацию. До тех пор, пока Пользо-
ватель не проходит по ссылке подтвер-
ждения регистрации, аккаунт не созда-
ется

10. Выход из аккаунта Пользователь может выйти из прило- П


пользователя жения, нажав кнопку в Меню – Выход
из аккаунта

11. Просмотр и настройка Пользователь просматривает и изме- П


профиля пользователя няет параметры своего профиля: (1) ос-
новные, (2) уведомления, (3) контакт-
ные данные.
При регистрации все уведомления
включены по умолчанию

12. Сброс пароля (восста- Пользователь на экране ввода логина и П


новить пароль, если за- пароля забыл пароль и хочет сбросить
был) его. Пользователь указывает Email, на
который приходит ссылка для восста-
новления пароля. Установка нового па-
роля происходит через экран приложе-
ния

13. Смена пароля Пользователь может изменить пароль, П


зайдя в настройки профиля

14. Настройка Push-уве- Приложение предлагает настроить от- П


домлений (включая правку push-уведомлений, уведомле-
Email) ний по Email, которые будут возникать
в соответствии с разделом ТЗ
«Настройка PUSH-Уведомлений»

15. Иконка с количеством При обновлении проектов над иконкой П


проектов на экране те- приложения в экране телефона Поль-
лефона зователя возникает число в красном
кружке равно количеству обновленных
проектов за неделю. При входе в прило-
жение пропадает

16. Смена региона Пользователь изменяет регион (из вы- П


падающего списка с доступными реги-
онами) в настройках и на экране теле-

26
# Сценарий Описание Пользователи

фона обновляются проекты в соответ-


ствии с проектами для выбранного ре-
гиона
При смене региона для Модератора –
при голосовании отражаются проекты,
связанные с этим регионом
При смене региона для Куратора и Во-
лонтера – при подборе исполнителей
для проекта, система будет учитывать
их регион (см. Сервис Выбор исполни-
телей)

17. Просмотр проектов Пользователь заходит на главную стра- П


ницу приложения, видит текущие 5
проектов. Он может прочитать более
подробно про каждый из них, нажав на
них (как в приложении «Афиша»)

18. Просмотр карточки Пользователь, после нажатия на про- П


проекта ект в общем списке проектов может
просмотреть всю представленную ин-
формацию по проекту (См. модель про-
ект)

19. Публикация информа- Пользователь из карточки проекта мо- П


ции о проекте в соц. Се- жет опубликовать в соц. Сети информа-
тях цию о проекте

20. Просмотр статистики На экране «Статистика по проекту» П


по проекту Пользователь видит информацию по
всем пожертвованиям на данный про-
ект в течение текущей недели и список
пользователей, осуществивших по-
жертвования

21. Просмотр автора про- Пользователь может увидеть на кар- П


екта точке проекта на вкладке «Автор» ин-
формацию по количеству активных
проектов Автора и завершенных про-
ектов Автора

22. Участие в роли Волон- П


тера

27
# Сценарий Описание Пользователи

23. Платеж Пользователь может совершить по- П


жертвование в размере стандартной
суммы (установленной в настройках
Админ панели). Пользователь не может
перевести сумму больше или меньше
на конкретный проект. Пользователь
совершает платеж с привязанной
карты проектов.
Если остаток требуемой на проект
суммы меньше чем установленное зна-
чение пожертвования в Админ панели,
тогда Пользователю отображается к
пожертвованию равная остатку.
Например, Администратор установил
в Админ панели значение пожертвова-
ния на проект как 300 руб.
На конкретный проект – «Помощь ба-
бушке» требуется 1000 тыс. руб
Первый, второй и третий пользова-
тель увидят сумму пожертвования по
300 руб. Четвертый Пользователь уви-
дит сумму пожертвования 100 руб.

24. Подтверждение Пользователю после нажатия кнопки П


оплаты пользователем «Подарить» отражается экран, содер-
жащий данные оплаты: Точная сумма к
оплате, Название проекта, Почта (ука-
занная в профиле).

При этом доступны для выбора следу-


ющие способы оплаты:
• Банковская карта;
• Apple pay;
• Pay Pal;
• Samsung Pay;
• Google Pay.
Ознакомившись с информацией, поль-
зователь подтверждает проведение по-
жертвования. Пользователю на почту
приходит чек о проведении пожертво-
вания.

28
# Сценарий Описание Пользователи

25. Просмотр личного ка- В собственном профиле Пользователь П


бинета пользователя может посмотреть информацию о
своих активностях:
1. Пожертвовал на проект
2. Вернули пожертвование по про-
екту
3. Выбран волонтером проекта
4. Выбран куратором проекта
5. Проект, на который жертвовал за-
вершен (не выполнен)
6. Проект, в котором участвовал за-
вершен (не выполнен)
7. Проект, на который жертвовал
ушел на реализацию
8. Проект, в котором участвовал
ушел на реализацию
9. Проект, на который жертвовал вы-
полнен
10. Проект, в котором участвовал вы-
полнен

При переходе в личный кабинет других


пользователей, отражается информа-
ция об активности другого пользова-
теля. При нажатии на проекты пользо-
вателя – см. сценарий «Просмотр ак-
тивности пользователя»

Доступен просмотр личных кабинетов


других пользователей (например, при
переходе из экрана статистика), где бу-
дет отражаться аналогичная информа-
ция

26. Просмотр активности Пользователь может выбрать в меню П


пользователя пункт «Ваши проекты» и получить спи-
сок всех проектов, где он осуществлял
пожертвования / был исполнителем.
Приложение позволяет настроить
фильтры:
Статус пользователя: Даритель /
Участник
Статус проекта: Активный / Завершён

29
# Сценарий Описание Пользователи

При этом если пользователь просмат-


ривает активность другого пользова-
теля (При переходе из личного каби-
нета пользователя), то открывается
экран «Ваши проекты» с отражением
проектов просматриваемого пользова-
теля

27. Просмотр ачивок В личном кабинете пользователь мо- П


Пользователя жет просмотреть «ачивки» и увидеть
всю информацию по его текущим ачив-
кам.
При входе в личный кабинет другого
пользователя также доступен про-
смотр полученных ачивок просматри-
ваемого пользователя

28. Распространение ин- После осуществления пожертвования П


формации о проектах в на проект, пользователь может отпра-
социальных сетях вить сообщение в социальные сети:
· Vkontakte;
· Odnoklassniki;
· Facebook;
· Twitter.

29. Использование формы Пользователь может отправить сооб- П


обратной связи щение об ошибке или проблеме через
форму обратной связи, с указанием
темы на выбор из следующего списка:
· Некорректная работа приложения
· Предложение благотворительного
проекта
·Новые идеи по работе приложения
Форма присылает сообщение на
настроенный e-mail

30. Голосование Модераторам приходит оповещение о М


необходимости выбрать проекты на
следующую неделю (система устраи-
вает голосование).
Модераторы голосуют по следующим
правилам:

• Доступны всего 5 голосов в не-


делю по всем Регионам;

30
# Сценарий Описание Пользователи

• Один голос на один проект;


• За каждую категорию должен
быть голос (5-ый голос может
быть отнесён к любой катего-
рии);
• Модератор не может голосовать
за проекты, где он указан авто-
ром или модератором
• Если Модератор пропустил два
голосования подряд, то его про-
екты не участвуют в голосова-
ние пока он не проголосует;
• Отражаются Проекты региона,
который указан в карточке мо-
дератора;

После голосования проекты с наиболь-


шим количеством голосов изменяют
статус с «Новый» на «Идёт сбор
средств» в соответствии с механизмом
голосования (См. сервис Голосование)

31. Пользователь отправ- Для участи в реализации Проекта (В П


ляет заявку на волон- роли волонтёра) Пользователь в кар-
терство точке проекта нажимает «Стать волон-
тёром». В приложении возникает
форма для заполнения анкеты волон-
тёра.
Если в анкете волонтёра пользователь
указал, что хочет стать волонтёром
фонда, то при утверждении анкеты ку-
ратором, данный пользователь стано-
вится доступным для участия в роли
волонтёра во всех проектах (См. реше-
ние по волонтёрам)

Если в анкете волонтёра пользователь


указал, что хочет стать волонтёром
проекта, то при утверждении данного
пользователя в роли волонтёра дан-
ный пользователь становится доступ-
ным для участия в роли волонтёра
только для указанного проекта.

31
# Сценарий Описание Пользователи

Пользователь выбирает категории


проектов из выпадающего списка, где
его заявка будет считаться актуальной.
Заполненная заявка поступает в БД
«Волонтеры» со статусом «на рассмот-
рение».
После утверждения заявка на волон-
тёрство Куратором, Пользователь ви-
дит в своей карточке проекта статус –
«Волонтер»

32. Повторное участие в Пользователь после участия в реализа-


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

При этом если пользователь укажет,


что он хочет стать волонтёром в кар-
точке другого проекта, то данная ин-
формация должна отразиться в его ан-
кете, и он может быть выбран системой
для реализации проекта.

33. Ведение проекта Куратор может зайти в проект, в кото- И


рый он назначен, и вносить изменения
в раздел «Исполнение»:
1. Отчетные документы (фото чеков)
2. Галерея отчетных картинок (+ ви-
део)
3. Фактическая сумма потраченных
средств
4. Текстовое описание исполнения про-
екта
5. Сумма средств, затраченная фондом
(автомат. расчет программой)
6. Сумма возвращенных средств (авто-
мат. расчет программой). Поле запол-
няется только после успешного прове-
дения транзакции «возврат средств».
Над суммой отображать значок «?» при
наведении на который показывается
справка – описание алгоритма воз-
врата средств

32
# Сценарий Описание Пользователи

34. Отправка проекта на Куратор проекта в карточке проекта, К


подтверждение Моде- после указания доп. информации по
ратору ходу реализации проекта выбирает
статус:
1. «Выполнен. Ожидает подтверждения
Модератора».
2. «Не выполнен. Ожидает подтвержде-
ния Модератора».
Нажимает кнопку «Отправить на под-
тверждение Модератору»

35. Возврат средств По окончании этапа сбора средств (по А


умолчанию указано 7 дней), в случае
если проект не собирает необходимые
средства, статус проекта автоматиче-
ски изменяется на «Новый» (см. пере-
ход статусов проекта). При этом по-
жертвованные средства автоматиче-
ски возвращаются Пользователям по
алгоритму LIFO (Последний пожертво-
вавший первым получает возврат).
Если по итогам закрытия проекта
остался излишек средств (излишек рас-
считывается по формуле: [собранная
сумма с пожертвований] - [сумма фак-
тически потраченная на проект]), ад-
министратор вручную инициирует воз-
врат средств. Администратор нажи-
мает кнопку в админ панели «Вернуть
средства пользователям» и средства
возвращаются пользователям по алго-
ритму LIFO (Последний пожертвовав-
ший первым получает возврат). Про-
грамма проверяет успешность воз-
врата. Если сумма возвращенных
средств равняется сумме избытка
средств, то кнопка «Возврат средств»
блокируется для администратора

36. Получение push уве- Пользователи получают уведомления


домлений согласно решению по PUSH уведомле-
ниям (см. решение по PUSH уведомле-
ния)_

33
# Сценарий Описание Пользователи

37. Получение отчетности Пользователи, Модераторы, Кураторы


на Email и Волонтеры получают письма с содер-
жанием выполненных проектов со-
гласно решению описанному в функци-
ональной части описания админ па-
нели

Сценарии использования Административной панели


Все возможные сценарии использования админ панели в разрезе ролей представлены в таб-
лице 13.
Таблица 13. Сценарии использования админ панели

# Сценарий Описание Пользователи

1. Вход в админ панель с Пользователь вводит свои логин и па- М


вводом логина и па- роль, которые были указаны Пользова- А
роля телем при регистрации в приложении. К
Только Модератор, Администратор и
Куратор могут зайти в Админ панель

2. Выход из аккаунта Пользователь может выйти из веб ин- М


пользователя терфейса, нажав кнопку «Выход из ак- А
каунта» К

3. Сброс пароля (восста- Пользователь на экране ввода логина и М


новление пароля) пароля забыл пароль и хочет сбросить А
его. Пользователь указывает Email, на К
который приходит ссылка для восста-
новления пароля.
Пароль в Приложении и для Админ па-
нели одинаковый

4. Ввод проекта в общую Модератор вносит информацию по М


базу данных в статусе найденным проектам в Базу данных,
«Черновик» заполняя все необходимые поля (см.
Модель Проект). При этом, если моде-
ратор не сразу вносит всю информа-
цию по проекту, он может «записать»
его как черновик

5. Публикация проекта При нажатии на кнопку «Опублико- М


вать» в случае, если заполнены все обя-
зательные поля карточки проекта (см.

34
# Сценарий Описание Пользователи

Решение по изменению статусов про-


ектов) статус проекта автоматически
изменяется статус на «Новый»

6. Подтверждение акту- Модераторы, после получения опове- М


альности проекта щение об актуальности проекта (см. ре-
шение по PUSH уведомления и описа-
ние сервиса проверки актуальности
проектов), может открыть проект и из-
менить «Актуальный срок проекта по»,
чтобы проект стал актуален.
Если Модератор не подтвердил акту-
альность проекта, а срок актуальности
проекта прошел, тогда система не вы-
ставляет такой проект на этап Голосо-
вания. Такой проект не может быть
опубликован в приложении для Поль-
зователей

7. Модерация проекта Автор или Модератор, указанные в кар- М


точке проекта, имеют возможность ре- А
дактировать соответствующий проект
(кроме тех данных, которые указаны
как нередактируемые в модели данных
«Проект»).
Все изменения в проект могут вно-
ситься только в статусе «Черновик» и
«Новый», кроме тех проектов, которые
находятся на голосовании

8. Настройка системных Технический Администратор выпол- Тех.А


параметров няет настройку
- суммы пожертвований (шаг пожерт-
вования на будущей неделе);
- количество проектов, на которое
Пользователю можно пожертвовать
средства в одну неделю (1 по умолча-
нию);
-количество проектов, отображаемых
для Пользователей в неделю – количе-
ство проектов выносимых на сбор
средств (5 по умолчанию);
-количества исполнителей в карточке
проекта – количество исполнителей,
подбираемых алгоритмически (3 по
умолчанию);

35
# Сценарий Описание Пользователи

-изменение названий существующих


категорий (например, понадобилось
изменить категорию «Животные» на
«Умные животные»);
- периодов голосования (4 дня, с утра
Четверга по утро Понедельника),
-срока проекта в статусе сбор средств –
продолжительность сбора средств.

9. Присвоение роли Ад- Тех. Администратор может дать Поль- Тех.А


министратора зователю права Администратора

10. Присвоение роли Мо- Администратор может дать Пользова- А


дератора, Куратора и телю права Модератора, Куратора и Во-
Волонтера лонтера. Необходимо, чтобы Пользова-
тель был зарегистрирован в системе

11. Деактивация проектов Автор и модератор проекта, указанные А


в карточке проекта могут деактивиро- М
вать соответствующий проект (без уда-
ления его из БД) с обязательным указа-
нием причины деактивации.
Можно деактивировать проекты
только в статусе «Новый»

12. Куратор проверяет за- Куратор просматривает заполненные К


явки на волонтерство заявки и может поменять статус на «во-
и одобряет, либо от- лонтер», либо «не может быть волонте-
клоняет их ром». При выборе Куратором «Не мо-
жет быть волонтером» возникает
всплывающее окно, где нужно указать
причину.
После того как Куратор одобряет за-
явку на волонтёрство, Пользователь
получает роль «Волонтер»

13. Настройка справоч- Тех. Администратор настраивает таб- Тех. А


ника регионов лицу активных регионов, используе-
мых в приложении:
1. Пользователю доступно создание /
деактивация / редактирование регио-
нов

При создании нового региона / редак-


тировании старого пользователь до-
бавляет в один регион города, которые
в него входят. Нельзя создать регион

36
# Сценарий Описание Пользователи

без городов. Нельзя добавить город, ко-


торый уже был указан в другом реги-
оне.

Для каждого региона пользователь мо-


жет установить признак: «Активиро-
ван» / «Деактивирован», который озна-
чает используется ли данный регион.

14. Рассылка писем по Тех. Администратор формирует три Тех. А


Email вида шаблона рассылки (Письмо1,
Письмо2, Письмо3) Пользователям на
Email «Вшитых в код» с возможностью
внесений минимальных исправлений:
редактирование текста обращения.

37
Изменение статусов проекта

Жизненный цикл каждого проекта, зарегистрированного в системе, сопровождается измене-


нием статусов. Полный перечень статусов проектов представлен в таблице 15.
Таблица 15. Общий перечень статусов проектов

Статус проекта Код ста-


туса
Черновик 1
Новый 2
Деактивирован 3
Идёт сбор средств 4
Идёт исполнение 5
Выполнен. Ожидает подтверждения модератора 6
Не выполнен. Ожидает подтверждения модератора 7
Не выполнен 8
Выполнен 9
Требует уточнения актуальности 10

Для организации сквозного процесса реализации проектов по благотворительности «от ре-


гистрации до исполнения» все изменения статусов закреплены в матрице перехода статусов,
представленной в таблице 16.
Таблица 16. Матрица перехода статусов проекта

Ста- 1 2 3 4 5 6 7 8 9 10
тусы
1 - Да Да - - - - - - -
2 Да - Да Да - - - - - Да
3 - - - - - - - - - -
4 - Да - - Да - - - - -
5 - - - - - Да Да - - -
6 - - - - Да - - Да Да -
7 - - - - Да - - Да - -
8 - - - - - - Да - Да -
9 - - - - - - - - Да -
10 - Да Да - - - - - - -
Инициирующие события для смены статусов проектов представлены в таблице 17.
Таблица 17. Переход статусов проекта

№ Переход стату- Описание событий перехода Поля, запол- Кто изме-


сов статусов / обязательных усло- няемые авто- няет статус
вий матически
1 -> Черновик Создан проект с хотя бы одной за- Автор про- Модератор
полненной аналитикой. Из-за от- екта, не изме-
сутствия всей необходимой ин- няемое поле
формации нельзя нажать кнопку Дата реги-
"опубликовать" (При нажатии на страции, не
эту кнопку проект переводится в изменяемое
статус "Новый"), поэтому Модера- поле.
тор записывает проект. ID проекта, не
изменяемое
поле

38
№ Переход стату- Описание событий перехода Поля, запол- Кто изме-
сов статусов / обязательных усло- няемые авто- няет статус
вий матически
2 Черновик -> Но- После нажатия кнопки "Опубли- Модератор,
вый ковать" для которой обязательно который
должны быть заполнены необхо- указан авто-
димые аналитики: ром проекта,
либо модера-
1. Наименование проекта тором про-
2. Категория проекта екта.
3. Город
4. Критичность
5. Актуальный срок проекта С,
нельзя указывать дату про-
шлую по отношению к теку-
щей дате
6. Актуальный срок проекта По,
нельзя указывать дату
меньше чем "Актуальный
срок проекта С, и нельзя ука-
зывать дату позднее чем 2 ме-
сяца от
7. "Актуальный срок проекта С"
8. Требуемая сумма
9. Краткое описание
10. Модератор, редактируемое
поле для автора проекта.
11. Статус
12. Описание
13. Смета
14. Прикреплённые файлы
3 Черновик -> Деак- Проект был деактивирован. Обя- Дата деакти- Модератор,
тивирован зательное должно быть запол- вации, не из- который
нено: меняемое указан авто-
поле ром проекта,
"Причина деактивации". Инициатор либо модера-
деактивации, тором про-
не изменяе- екта.
мое поле
4 Новый -> Черно- Если пользователь удалит одно Модератор,
вик из обязательных для публикации который
полей, то у него нет возможности указан авто-
опубликовать проект, но есть воз- ром проекта,
можность сохранить как черно- либо модера-
вик тором про-
екта.
5 Новый-> Требует При ежедневной проверке си- Автоматиче-
уточнения акту- стема определила, что у проекта в ски, система
альности статусе «Новый» поле «Срок акту-
альности по» равен текущая дата
+ 14 (или меньше) дней
6 Требует уточне- Модератор изменил поле «Срок Модератор,
ния актуальности актуальности по» на дату, боль- который
-> Новый шую, чем текущая дата + 14 ка- указан авто-
лендарных дней ром проекта,

39
№ Переход стату- Описание событий перехода Поля, запол- Кто изме-
сов статусов / обязательных усло- няемые авто- няет статус
вий матически
либо модера-
тором про-
екта.
7 Требует уточне- Проект был деактивирован. Обя- Дата деакти- Модератор,
ния актуально- зательное должно быть запол- вации, не из- который
сти-> Деактиви- нено: меняемое указан авто-
рован поле ром проекта,
"Причина деактивации". Инициатор либо модера-
деактивации, тором про-
не изменяе- екта.
мое поле
5 Новый -> Деакте- Проект был деактивирован. Обя- Дата деакти- Модератор,
вирован зательное должно быть запол- вации, не из- который
нено: меняемое указан авто-
поле ром проекта,
"Причина деактивации". Инициатор либо модера-
деактивации, тором про-
не изменяе- екта.
мое поле
6 Новый -> 3 1. Проект был выбран в системе в Автоматиче-
результате голосования. (См. со- ски, система
ответствующий шаг сценария ис-
пользования приложения);

2. В момент начала голосования,


все проекты, которые находятся
на голосовании должны быть не
доступны для редактирования.
(Это проекты, у которых срок реа-
лизации с в прошлом относи-
тельно даты начала голосова-
ния);

3. К голосованию допускаются
проекты, у которых "Актуальный
срок реализации по" больше чем
"Дата начала голосования + две
недели";

4. С момента перевода проекта в


статус "Идёт сбор средств" редак-
тирование проекта в этом и по-
следующих статусах не доступно
7 Идёт сбор По результатам этапа сбора Не собрано Автоматиче-
средств -> Новый средств проект не собрал сред- средств раз, ски, система
ства. автоматиче-
ски рассчиты-
При этом в проекте должно быть вается, недо-
зафиксировано значение в анали- ступно для ре-
тике "Не собрано средств раз" дактирова-
ния.

40
№ Переход стату- Описание событий перехода Поля, запол- Кто изме-
сов статусов / обязательных усло- няемые авто- няет статус
вий матически
8 Идёт сбор средств Проект собрал средства в резуль- Начало реали- Автоматиче-
-> Идёт исполне- тате этапа сбора средств (Требуе- зации, запол- ски, система
ние мая сумма сбора = Текущая сумма няется авто-
сбора) матически, не
доступно для
редактирова-
ния
9 Идёт исполнение Перевод статуса доступен только Сумма Куратор,
-> Выполнен. куратору. средств затра- указанный в
Ожидает под- ченная фон- карточке
тверждения мо- Обязательно должны быть запол- дом, не до- проекта
дератора нены: ступно для ре-
дактирования
Чеки
Итоги проекта
Приложенные файлы
Фактическая сумма потраченных
денежных средств
Если фактическая сумма потра-
ченных денежных средств > со-
бранной суммы, то обязательно к
заполнению сумма средств затра-
ченная фондом
10 Идёт исполнение Перевод статуса доступен только Сумма Куратор,
-> Не выполнен. куратору. средств затра- указанный в
Ожидает под- ченная фон- карточке
тверждения мо- Обязательно должны быть запол- дом, недо- проекта
дератора нены: ступно для ре-
дактирования
Итоги проекта
Приложенные файлы
Фактическая сумма потраченных
денежных средств.
Если фактическая сумма потра-
ченных денежных средств запол-
нена, то должны быть обяза-
тельно приложены чеки
Если фактическая сумма потра-
ченных денежных средств > со-
бранной суммы, то обязательно к
заполнению сумма средств затра-
ченная фондом
11 Выполнен. Ожи- Перевод статуса доступен только Модератор,
дает подтвержде- Модератору указанный в
ния модератора - карточке
> Идёт исполне- Обязательно указание причины проекта
ние (Замечание модератора) пере-
вода в данный статус. Будет отра-
жаться Куратору.

41
№ Переход стату- Описание событий перехода Поля, запол- Кто изме-
сов статусов / обязательных усло- няемые авто- няет статус
вий матически
12 Не выполнен. Перевод статуса доступен только Модератор,
Ожидает под- Модератору указанный в
тверждения мо- карточке
дератора -> Идёт Обязательно указание причины проекта
исполнение (Замечание модератора) пере-
вода в данный статус. Будет отра-
жаться Куратору.
13 Выполнен. Ожи- Перевод статуса доступен только Дата выпол- Модератор,
дает подтвержде- Модератору нения, не ре- указанный в
ния модератора - дактируемое карточке
> Выполнен проекта
14 Выполнен. Ожи- Перевод статуса доступен только Модератор,
дает подтвержде- Модератору указанный в
ния модератора - карточке
> Не выполнен Обязательно указание причины проекта
(Замечание модератора) пере-
вода в данный статус. Будет отра-
жаться Куратору.
15 Не выполнен. Перевод статуса доступен только Модератор,
Ожидает под- Модератору, указанному в кар- указанный в
тверждения мо- точке проекта карточке
дератора -> Не проекта
выполнен Доступны к изменению проекты
для которых актуально следую-
щее условие: Дата выполнения +
3 дня < текущая дата
16 Не выполнен -> Перевод статуса доступен только Модератор,
Не выполнен. Модератору указанному в кар- указанный в
Ожидает под- точке проекта карточке
тверждения мо- проекта
дератора
17 Выполнен -> Не Перевод статуса доступен только Модератор,
выполнен Модератору, указанному в кар- указанный в
точке проекта, и Администра- карточке
тору. Ограничений нет. проекта, Ад-
министра-
Доступны к изменению проекты тор
для которых актуально следую-
щее условие: Дата выполнения +
3 дня < текущая дата
18 Не выполнен -> Перевод статуса доступен только Дата выпол- Модератор,
Выполнен Модератору, указанному в кар- нения, не ре- указанный в
точке проекта, и Администра- дактируемое карточке
тору. Ограничений нет. проекта, Ад-
министра-
Доступны к изменению проекты тор
для которых актуально следую-
щее условие: Дата выполнения +
3 дня < текущая дата

42
Решения по Волонтерам
Пользователи могут стать волонтерами для конкретного проекта. Логика процесса представ-
лена на рисунке 2.

Рисунок 2. Процесс «От регистрации до назначения волонтеров»

Правила работы с БД волонтеров:


1. Доступ к БД волонтеров имеет каждый Куратор
2. Куратор может изменять статус заявки на волонтерство в БД волонтеров на «Одоб-
рено», или «Не может быть волонтером»
3. Если Куратор меняет статус заявки на «Не может быть волонтером», тогда возникает
всплывающее окно – «Указать причину» (поле – «Комментарий»)

43
Настройка PUSH-Уведомлений
Таблица 18. Настройка PUSH-уведомлений

# Роль Событие Уведомление Частота Инициирующее Время рассылки Параметры


событие
1 Администра- Началось голо- Необходимо Каждая Наступление 20:00 чет- После наступления ини- Не показывается в меню
тор сование за про- проголосовать неделя верга каждой недели циирующего события в настроек Push-
екты (четверг за проект! 08:05 и в зависимости от уведомлений в приложе-
каждой недели) часового пояса пользо- нии
вателя
2 Администра- В рамках голо- В рамках голо- Каждая не- Сравнение системой После наступления ини- Не показывается в меню
тор сования не сования не было деля количества выбранных циирующего события в настроек Push-
было выбрано выбрано необ- голосованием проек- 08:05 и в зависимости от уведомлений в приложе-
необходимое ходимое коли- тов с количеством про- часового пояса пользо- нии
количество чество проек- ектов указанных в кон- вателя
проектов (вос- тов. Необхо- станте «Количество до-
кресенье каж- димо проголо- ступных проектов в не-
дой недели) совать за про- делю»
екты!
3 Администра- На голосование На голосование При наступле- Количество проектов После наступления ини- Не показывается в меню
тор не было вы- не было выне- нии события вынесенных на голосо- циирующего события и настроек Push-
брано необхо- сено необходи- вание меньше количе- в зависимости от часо- уведомлений в приложе-
димое количе- мое количество ства, указанного в па- вого пояса пользователя нии
ство проектов проектов! раметрах
(в соответствии
с параметрами)
4 Модератор Началось голо- Необходимо Каждая Наступление 20:00 чет- После наступления ини- Не показывается в меню
сование за про- проголосовать неделя верга каждой недели. циирующего события в настроек Push-
екты (четверг за проект! Повторять каждый 08:05 и в зависимости от уведомлений в приложе-
каждой недели) четверг, пятницу, суб- часового пояса пользо- нии
боту и воскресенье вателя.
5 Модератор Проект выбран Поздравляем, По факту Перевод проекта, со- После наступления ини- Можно отключить
(указанный в для сбора денег Ваш проект вы- смены статуса зданного модератором циирующего события в
карточке бран на эту не- на «Идет сбор в статус «Идет сбор 08:05 и в зависимости от
делю! средств» средств»
# Роль Событие Уведомление Частота Инициирующее Время рассылки Параметры
событие
проекта вы- часового пояса пользо-
бранного го- вателя
лосованием)
6 Модератор Пользователю Поздравляем, По факту Присвоение пользова- После наступления ини- Не показывается в меню
присвоена роль теперь вы стали смены роли телю роли «Модера- циирующего события в настроек Push-
«Модератор» модератором! тор» 08:05 и в зависимости от уведомлений в приложе-
часового пояса пользо- нии
вателя
7 Модератор Проект собрал Поздравляем, При наборе Изменение статуса После наступления ини- Можно отключить
(указанный в деньги Ваш проект со- необходимой проекта, созданного циирующего события в
карточке брал деньги! суммы модератором, с «Идет 08:05 и в зависимости от
проекта, со- сбор средств» на «Идет часового пояса пользо-
бравшего не- исполнение» вателя
обходимые
средства)
8 Модератор Проект не К сожалению, По факту Изменение статуса После наступления ини- Можно отключить
(указанный в собрал денег ваш проект не смены статуса проекта, созданного циирующего события в
карточке собрал деньги. модератором с «Идет 08:05 и в зависимости от
проекта не Собранные сбор средств» на «Но- часового пояса пользо-
собравшего средства будут вый» вателя
средства) возвращены
пользователям.
9 Модератор Проект Поздравляем, По факту Изменение статуса После наступления ини- Не показывается в меню
(указанный в выполнен Ваш проект был смены статуса проекта, созданного циирующего события в настроек Push-
карточке (смена статуса) выполнен! Под- модератором, с «Идет 08:05 и в зависимости от уведомлений в приложе-
проекта, ко- твердите вы- исполнение» на «Вы- часового пояса пользо- нии
торый был полнение про- полнен. Ожидает под- вателя
выполнен и екта тверждения модера-
требует под- тора»
тверждения)
10 Модератор Требуется уточ- Истек срок акту- Каждый чет- Каждый четверг, при Каждый четверг после Не показывается в меню
(указанный в нит актуаль- альности про- верг по факту изменении статуса наступления иницииру- настроек Push-
карточке ность проекта екта «Название смены статуса проекта, созданного ющего события в 08:05 и
45
# Роль Событие Уведомление Частота Инициирующее Время рассылки Параметры
событие
проекта, в проекта», требу- модератором, с «Но- в зависимости от часо- уведомлений в приложе-
котором тре- ется уточнить вый» на «Требуется вого пояса пользователя нии
буется уточ- актуальность! уточнение актуально-
нить акту- сти»
альность)
11 Модератор Проект невы- К сожалению, По факту Изменение статуса После наступления ини- Не показывается в меню
(указанный в полнен (смена Ваш проект не смены статуса проекта, созданного циирующего события в настроек Push-
карточке статуса) удалось реали- модератором, с «Идет 08:05 и в зависимости от уведомлений в приложе-
проекта, ко- зовать. Под- исполнение» на «Не часового пояса пользо- нии
торый не твердите не вы- выполнен. Ожидает вателя
удалось вы- полнение про- подтверждения моде-
полнить) екта ратора»
12 Куратор Пользователю Поздравляем, По факту Присвоение пользова- После наступления ини- Не показывается в меню
присвоена роль теперь вы стали смены роли телю роли «Куратор» циирующего события в настроек Push-
«Куратор» куратором! 08:05 и в зависимости от уведомлений в приложе-
часового пояса пользо- нии
вателя
13 Куратор Проект собрал Вы назначены По факту со- Изменение статуса После наступления ини- Не показывается в меню
деньги, и си- куратором про- бытия проекта с «Идет сбор циирующего события в настроек Push-
стема назна- екта «Название» средств» на «Идет сбор 08:05 и в зависимости от уведомлений в приложе-
чает куратора и ID средств» и автоматиче- часового пояса пользо- нии
(смена статуса ское назначение поль- вателя
и назначение зователя с ролью «Ку-
куратора) ратор» исполнителем
проекта «…»
14 Куратор (Ис- Проект Большое спа- По факту Изменение статуса После наступления ини- Можно отключить
полнитель выполнен сибо! Благодаря смены статуса проекта, на который циирующего события в
выполнен- (смена статуса) Вам проект был назначен Куратор, с 08:05 и в зависимости от
ного про- успешно реали- «Выполнен. Ожидает часового пояса пользо-
екта) зован! подтверждения моде- вателя
ратора» на «Выпол-
нен»

46
# Роль Событие Уведомление Частота Инициирующее Время рассылки Параметры
событие
15 Куратор (Ис- Проект завер- К сожалению, По факту Изменение статуса После наступления ини- Можно отключить
полнитель шен (смена ста- проект «Назва- смены статуса проекта, на который циирующего события в
выполнен- туса) ние» и ID был назначен Куратор, с 08:05 и в зависимости от
ного про- реализован не «Выполнен. Ожидает часового пояса пользо-
екта) успешно. Свя- подтверждения моде- вателя
житесь с моде- ратора» на «Не выпол-
ратором для нен»
уточнения дета-
лей
16 Куратор Необходимо со- Необходимо со- По факту со- Регистрация в системе Каждые вторник, чет- Не показывается в меню
гласовать ан- гласовать но- бытия анкеты волонтера в верг и суббота, после настроек Push-
кеты волонте- вые анкеты во- статусе «Требуется со- наступления иницииру- уведомлений в приложе-
ров лонтеров! гласование» ющего события в 08:05 и нии
в зависимости от часо-
вого пояса пользователя
17 Пользова- Начался сбор Уважаемый По факту Изменение статуса После наступления ини- Можно отключить
тель (не вы- средств на про- пользователь! смены статуса проектов с «Новый» на циирующего события в
бравший екты недели Начался сбор «Идет сбор средств» 10:05 и в зависимости от
предпочти- средств на про- часового пояса пользо-
тельные ка- екты этой не- вателя
тегории) дели!
18 Пользова- Начался сбор Уважаемый По факту Изменения статуса После наступления ини- Можно отключить
тель (вы- средств на про- пользователь! смены статуса проектов в рамках ка- циирующего события в
бравший екты недели Начался сбор тегорий, указанных 10:05 и в зависимости от
предпочти- средств на про- как «Интересные» в часового пояса пользо-
тельные ка- екты, интересу- карточке пользова- вателя
тегории) ющих Вас кате- теля, с «Новый» на
горий! «Идет сбор средств»
19 Пользова- Проект собрал Поздравляем, По факту Изменение статуса После наступления ини- Можно отключить
тель (пода- деньги (на ко- проект на кото- события проекта, на который циирующего события в
ривший торый пожерт- рый вы пожерт- пользователь пожерт- 10:05 и в зависимости от
средства на вовал деньги вовали, собрал вовал средства с «Идет часового пояса пользо-
пользователь) вателя
47
# Роль Событие Уведомление Частота Инициирующее Время рассылки Параметры
событие
проект, со- необходимую сбор средств» на «Сред-
бравший сумму! ства собраны»
средства)
20 Пользовател После предва- Уважаемый По факту со- Предварительный под- После наступления ини- Не показывается в меню
ь (еще не рительного пользователь, бытия счет средств в рамках циирующего события в настроек Push-
жертвовав- подсчета для реализации алгоритма определил 10:05 и в зависимости от уведомлений в приложе-
ший) средств кри- проекта «Назва- необходимость от- часового пояса пользо- нии
тичный проект ние проекта» не правки уведомления вателя
не собрал сумму хватает совсем
в рамках алго- немного. Воз-
ритма (См. п. 2.2 можно, именно
Функциональ- Ваш вклад ста-
ные требова- нет решающим.
ния, п.п. 4.6
Критичность)
21 Пользова- Проект не со- К сожалению, По факту Изменение статуса После наступления ини- Можно отключить
тель брал денег проект, на кото- смены статуса проекта, на который циирующего события в
рый вы пожерт- пользователь пожерт- 10:05 и в зависимости от
вовали, не со- вовал средства с «Идет часового пояса пользо-
брал доста- сбор средств» на «Но- вателя
точно средства. вый»
Ваше пожертво-
вание вернется
на карточку в
ближайшее
время.
22 Пользовател Проект Поздравляем! По факту Изменение статуса После наступления ини- Можно отключить
ь выполнен Проект, на кото- смены статуса проекта, на который циирующего события в
(смена статуса) рый вы пожерт- вносил пожертвование 10:05 и в зависимости от
вовали был реа- пользователь, с «Вы- часового пояса пользо-
лизован! полнен. Ожидает под- вателя
тверждения модера-
тора» на «Выполнен»
48
# Роль Событие Уведомление Частота Инициирующее Время рассылки Параметры
событие
23 Пользова- Проект не вы- К сожалению, По факту Изменение статуса После наступления ини- Можно отключить
тель (жерт- полнен (смена проект, на кото- смены статуса проекта, на который циирующего события в
вовавший на статуса) рый Вы пожерт- вносил пожертвование 10:05 и в зависимости от
проект, кото- вовали, не уда- пользователь, с «Не часового пояса пользо-
рый не уда- лось реализо- выполнен. Ожидает вателя
лось реали- вать. Ваши сред- подтверждения моде-
зовать) ства вернутся к ратора» на «Не выпол-
Вам на карту в нен»
ближайшее
время.
24 Волонтёр Смена роли на Поздравляем, По факту Присвоение пользова- После наступления ини- Не показывается в меню
волонтёр (на Ваша анкета смены роли телю роли «Волонтер» циирующего события в настроек Push-
все про- одобрена. Те- для пользова- 10:05 и в зависимости от уведомлений в приложе-
екты/волонтер перь Вы волон- теля без кон- часового пояса пользо- нии
фонда) тёр фонда – кретного про- вателя
«Красивые екта.
люди»!
25 Волонтёр Проект Большое спа-По факту Изменение статуса После наступления ини- Можно отключить
(участвовав- выполнен сибо! Благодаря смены статуса проекта, на который циирующего события в
ший в реали- (смена статуса) Вам удалось ре- назначен Волонетр, с 10:05 и в зависимости от
зованном ализовать про- «Выполнен. Ожидает часового пояса пользо-
проекте) ект! подтверждения моде- вателя
ратора» на «Выпол-
нен»
26 Волонтер Начался сбор Начался сбор По факту Изменение статуса После наступления ини- Не показывается в меню
(только для средств на про- средств на но- смены статуса проекта с «Новый» на циирующего события в настроек Push-
волонтеров екты вые проекты, «Идет сбор средств» 10:05 и в зависимости от уведомлений в приложе-
фонда) пожалуйста, часового пояса пользо- нии
укажите про- вателя
екты, в которых
вы хотели бы

49
# Роль Событие Уведомление Частота Инициирующее Время рассылки Параметры
событие
принять уча-
стие в роли во-
лонтера.
27 Волонтер Волонтер Ура! Вас вы- По факту Изменение статуса После наступления ини- Можно отключить
(назначен- назначен на брали волонте- события проекта с «Идет сбор циирующего события в
ный на про- проект ром на проект средств» на «Идет ис- 10:05 и в зависимости от
ект) «название» и ID полнение» и автомати- часового пояса пользо-
ческое назначение или вателя
ручной выбор пользо-
вателя с ролью «Кура-
тор» - пользователя с
ролью «Волонтер» ис-
полнителем проекта
«…»

Настройка Email-Уведомлений
Таблица 19. Настройка Email-уведомлений

# Роль Событие Уведомление Частота Параметр


1 Пользователь Раз в неделю Рассылка пользо- Раз в неделю Обязательно
вателям списка
новых проектов в
предпочитаемых
категориях
2 Куратор Назначение ис- Рассылка курато- Раз в неделю Обязательно
полнителем на рам информации
проект о проекте и о вы-
бранных испол-

50
# Роль Событие Уведомление Частота Параметр
нителях (с номе-
рами телефона и
адресами)
3 Волонтер Назначение ис- Рассылка волон- Раз в неделю Обязательно
полнителем на терам информа-
проект ции о проекте и о
выбранных ис-
полнителях (с
номерами теле-
фона и адресами)
4 Все пользователи 25 декабря Таблица проек- Раз в год Обязательно
тов, которые
были выполнены
с участием поль-
зователя за год
5 Все пользователи 25 декабря Таблица проек- Раз в год Обязательно
тов, которые
были выполнены
за прошедший
год
6 Модератор 25 декабря Годовой отчёт о Раз в год Обязательно
проектах, в кото-
рых был вовле-
чен
7 Куратор 25 декабря Годовой отчёт о Раз в год Обязательно
проектах, в кото-
рых был вовле-
чен
8 Волонтер 25 декабря Годовой отчёт о Раз в год Обязательно
проектах, в кото-
рых был вовле-
чен

51
Решение по городам
Общая информация по справочнику:
1. Добавляются два справочника: города и технические регионы. Справочник города запол-
няется автоматически (См. модель город), и редактируется пользователем с правами тех-
нический администратор. Справочник города должен обновляться автоматически, при
обновлении базы из которой загружаются данные. При этом данные не перезаписыва-
ются, а изменяются в рамках уже созданной ранее записи (id) либо добавляются новые
записи (Если отсутствовали ранее).
2. В справочнике тех. регионы технический администратор может создать новый элемент, в
рамках которого указывается город /набор городов, которые относятся к указанному тех.
региону. При этом у каждого тех. региона может стоять признак «Активирован» / «Деак-
тивирован». По умолчанию при создании нового элемента установлен признак «Деакти-
вирован» и пользователю необходимо изменить его вручную. Контроли при работе со
справочником:
2.1. Запрещено создавать тех. регионы с одинаковым названием;
2.2. Запрещено указывать один город более одного раза как в рамках одного тех. региона,
так и в рамках нескольких;
2.3. При изменении состава тех. регионов, система автоматически обновляет тех. регионы
во всех связанных объектах (Проекты, пользователи и другие)
2.4. При установке признака «Активирован» система автоматически добавляет тех. ре-
гион во всех связанных объектах (Проекты, пользователи и другие), где указаны го-
рода, входящие в тех. регион.
2.5. При установке признака «Деактивирован» система автоматически очищает тех. ре-
гион во всех связанных объектах (Проекты, пользователи и другие), где указаны го-
рода, входящие в регион.
Примеры тех. регионов: Москва и МО, куда входят следующие города: Москва, Дзержинск, По-
дольск, Пушкино, Королев, Мытищи, Реутов.
Дополнительно см. Примеры тех. регионов на сайте https://www.the-village.ru.
Регистрация / редактирование пользователя:
3. При регистрации пользователи указывают город, в котором они живут и система автома-
тически определяет к какому техническому региону относится данный пользователь.
Если указанный город не относится ни к одному из добавленных в систему тех. регионов,
то пользователю по умолчанию отражаются проекты по самому первому техническому
региону с признаком «Активирован».
4. В приложении пользователь в меню может изменять технический регион, по которому он
просматривает проекты на те, которые добавлены в систему и у которых установлен при-
знак «Активирован». При изменении тех. региона в приложении настройки профиля
должны отражаться проекты того региона, который выбрал пользователь. После того, как
пользователь указал другой тех. регион ему отражаются проекты выбранного тех. реги-
она. Пользователь может пожертвовать 300 рублей только на один проект в одном из тех.
регионе (т.е. у пользователя нет возможности пожертвовать на проект в каждом тех. ре-
гионе).
5. В случае, если пользователь переехал в другой город (и тех. регион), то он может изменить
город в настройках профиля, и у него автоматических будет изменен тех. регион, по кото-
рому ему при следующем в ходе будут отражаться проекты.
Пример: См. Приложение Афиша, процесс смены городов внутри приложения приводит к
смене отражаемых мероприятий.
Добавление / редактирование проекта и голосование:
6. При регистрации проектов авторы / модераторы указывают точный адрес проекта (с не-
обходимой точностью для определения места на карте), после чего автоматически опре-
деляется тех. регион проекта и заполняется в карточке проекта. Если указанный город не
входит не в один из имеющихся регионов или входит в тех. регион у которого установлен
признак “Деактивирован”, то данное поле не заполняется, и система выводит пользова-
телю соответствующее сообщение о том, что на текущий момент проект не может быть
исполнен, так как приложение не работает в указанном городе.
7. На еженедельное голосование модераторам отражаются только те проекты, тех. регион
которых равен тех. региону, указанном в карточке модератора. Таким образом Проекты
без тех. региона не появятся на голосовании, пока соответствующий тех. регион не будет
добавлен, а модераторы смогут голосовать за проекты в том тех. регионе, где они рабо-
тают. Модератор может изменить город в настройках профиля и таким образом у него
будет изменен тех. регион, по которому он может голосовать.
Изменения для схемы механизма участия в реализации проектов и подбора волонтёров:
8. При установке галочки в проекте в поле «Стать волонтёром» система проверяет тех. Ре-
гион из карточки пользователя и тех. регион проекта, и в случае, если они отличаются –
пользователю выводится информирующее, не блокирующее сообщение, которое требует
от пользователя подтверждения, что он хочет участвовать в реализации проекта по дан-
ному тех. региону, несмотря на то что в его профиле указан отличающийся тех. регион.
9. Для того, чтобы на проекты подбирались исполнители из максимально удобных локаций,
а также, что бы исполнители могли выполнять проекты других регионов (В случае вре-
менного переезда) волонтёры могут установить галочку «Стать волонтёром» внутри про-
екта в любой момент.
10. Волонтёрам в начале недели должно отправлять Push уведомление о том, что если они
хотят, чтобы система по возможности добавляла их в роли исполнителей в проект в соот-
ветствии с их пожеланиями, то необходимо установить признак «Стать волонтёром» в
карточке проекта. Признак может быть установлен во всех проектах в рамках одного ре-
гиона, но не может быть установлен на проекты в двух разных регионах.
11. Механизм назначения исполнителей после добавления в качестве волонтёров пользова-
телей, которые являются волонтёрами фонда должен в первом приоритете назначать во-
лонтёров фонда, которые указали, что хотят участвовать в реализации конкретного про-
екта. После анализируются волонтёры фонда, у которых город в карточке пользователя
равен городу в карточке проекта. После анализируются все пользователи, у которых тех-
нический регион в карточке пользователя равен карточке проекта.

53
2.2.4 Блок интерфейсов
Административная панель
Введение

Админ Web приложение – платформа для отслеживания работы сервиса, назначения новых
ролей пользователям, отслеживания распределения средств, техническая поддержка прило-
жения. Административная панель создается на базе решения, разработанного:
http://webapplayers.com/inspinia_admin-v2.8/
Функциональный дизайн и описание
Экран 1. Вход в админ панель

1. Вход в систему выполняется по логину и паролю, после регистрации в приложении и


назначения роли пользователю.
2. На основном экране есть возможность напоминания пароля через Email, привязанного к
логину пользователя.

54
Экран 2. Статистика по приложению

3. При входе на главную страницу отображается основная статистика по приложению:


(1) Кол-во новых проектов за неделю,
(2) Собрано за неделю по проектам (в разрезе проекта, его цели и фактически собранной
суммы)
(3) Кол-во пользователей, зарегистрировавшихся в приложении,
(4) Кол-во выполненных проектов,
(5) Кол-во проектов в БД,
(6) Кол-во проектов в БД, не собравших средства,
(7) Кол-во открытых проектов,
(8) Нерассмотренные заявки на волонтерство,
(9) Перечень реализованных проектов.

Экран 3. Рабочая таблица «Проекты»

4. Основной функцией страницы «Проекты» является визуальное представление (в настра-


иваемой форме) всех реквизитов внесенных в БД проектов в виде таблицы.
5. У пользователей с ролью «Администратор», «Модератор», есть возможность деактивации
проектов с указанием причины.
6. Возможность осуществления поиска по таблице в строке поиска либо фильтрации актив-
ных колонок.
7. Возможность использовать фильтр по любому не текстовому полю.

55
8. Возможность создания нового проекта в БД для пользователей с ролью Модератор и Ад-
министратор.

Экран 4. Добавление проекта Модератором

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


реквизиты, кроме: Сайт, Почта, Доп. телефон автора.
10. Изменение статуса проекта отображается в карточке проекта при повторном входе.
11. При нажатии на кнопку «Зарегистрировать» автоматически проставляется дата регистра-
ции нового проекта в БД.

Экран 5. Добавление Пользователя

12. В режиме редактирования проекта есть возможность добавлять отчетную документацию


по проекту (выполняется ролью Куратор).
13. Возможность добавлять вручную дополнительных исполнителей на проект (выполня-
ется ролью Куратор).
14. Возможность редактирования/внесения изменений в карточку проекта при статусе «Но-
вый» или «Требуется уточнение актуальности» (выполняется ролью Модератор)

56
Экран 6. Редактирование карточки проекта Администратором

15. Внесение изменений в карточку проекта пользователем с ролью Администратор при лю-
бом текущем статусе проекта
16. Возможность ручного инициирования возврата денежных средств при недостатке
средств на проект во время сбора. Инициирование осуществляется по нажатию на кнопку
«Возврат средств»
17. Возможность ручного изменения текущего статуса проекта пользователем с ролью «Ад-
министратор»

Экран 7. Перечень Модераторов

18. На странице Перечень модераторов показывается отчета по результатам голосования


(присвоение голосов модераторов на конкретные проекты из общей БД).
19. Рабочая таблица «Управление пользователями»

57
Экран 8. Управление Пользователями

20. Основной функцией страницы Управление пользователями является визуальное пред-


ставление (в настраиваемой форме) основных реквизитов внесенных в БД пользователей,
а также их деактивация (без удаления из БД).
21. В таблице присутствует возможность использовать фильтр по любому полю, кроме «Та-
ланты», «Опыт работы», «Транзакции», «Страница в ВК», а так же осуществить поиск по
ключевому слову по всей таблице.
22. Возможность выгрузить таблицу в текущем (настроенном) виде в Excel.
23. Возможность присвоения активной роли пользователям «Администратором» для всех ро-
лей и «Куратором» для роли «Волонтер».

Экран 9. Карточка Пользователя

24. Двойным кликом на ID пользователя на странице Управление пользователями можно пе-


рейти на карточку данного пользователя, в которой отражаются основные (ФИО, пол, те-
лефон, город, роли и т.д.) и дополнительные данные (Доп.телефон, страница в ВК, желае-
мые проекты и т.д.), а также проекты с участием данного пользователя.

58
Экран 10. Транзакции

25. На странице Транзакции отображается таблица/отчет по совершенным транзакциям с


возможностью использовать фильтр по любому полю.
26. Есть возможность выгрузить таблицу в текущем (настроенном) виде в Excel.

Экран 11. Лог изменений

27. На странице Лог изменений отображается история, совершенных изменений в админ па-
нели, с указанием пользователя, совершившего изменение.
28. Есть возможность выгрузить таблицу в текущем (настроенном) виде в Excel.

59
Экран 12. Лог изменений

29. На странице Волонтеры отображается список поступивших заявок на роль Волонтера в


любом статусе.
30. Пользователи с ролью Администратор и Куратор имеют доступ для редактирования поля
«Статус». (Для изменения статуса заявки необходимо перейти в карточку пользователя и
изменить статус в дополнительных данных). Изменить статус невозможно без указания
комментария причины изменения.
31. Есть возможность выгрузить таблицу в текущем (настроенном) виде в Excel

Экран 13. Управление регионами

32. На странице Справочник городов представлен список текущих городов с возможностью


добавления нового и деактивации или изменения имеющегося для расширения проекта
на другие города и привязки функций (голосование модераторов за проекты; автомати-
ческий подбор волонтеров; публикация проектов для пользователей) - в зависимости от
города.

60
Экран 14. Основные настройки

33. На странице Настройки есть возможность изменений:


- суммы пожертвований (шаг пожертвования на будущей неделе);
- количества доступных проектов в неделю – количество проектов на которое можно по-
жертвовать средства за одну неделю (1 по умолчанию);
-количества проектов доступных для пожертвования в неделю – количество проектов вы-
носимых на сбор средств (5 по умолчанию);
-количества исполнителей в карточке проекта – количество исполнителей, подбираемых
алгоритмически (3 по умолчанию);
-изменение названий существующих категорий (например, понадобилось изменить кате-
горию «Животные» на «Умные животные»;
-срока проекта в статусе сбор средств – продолжительность сбора средств.

Экран 15. Основные настройки

34. На странице Настройки Конструктор можно формировать внеочередную Email рассылку


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

61
Экран 16. Шаблоны рассылок по Email: Пользователи

35. Email для рассылки всем Пользователям состоит из таблиц проектов, которые были вы-
полнены с участием Пользователя за год (если таковые существуют) с указанием раз-
бивки по ролям (в формате грамоты-поощрения):
i. Спасибо вам за пожертвования: (далее таблица проектов, на которые Пользователь
осуществлял пожертвования и одновременно которые были выполнены);
ii. Спасибо вам, нашей команде волонтеров удалось помочь нуждающимся: (далее таб-
лица проектов, зарегистрированных данным Модератором и которые были выпол-
нены, если таковые существуют);
iii. Спасибо, благодаря вам мы помогли этим людям и животным: (далее таблица проек-
тов, в которых Куратор или Волонтер был вовлечен, если таковые существуют).

62
Мобильное приложение (Android, IOS)
Функциональный дизайн и описание

# Экран Описание Фото экрана


1. Стартовый экран Назначение:
Отображается 1 секунду при запуске мо-
бильного приложения

2. Вход Назначение:
Пользователь видит первый раз, когда
заходит в приложение

Функционал:
1. Окно для ввода логина
2. Окно для ввода пароля
3. Кнопка «Вспомнить»
4. Кнопка «Войти»
5. Кнопка «Регистрация»
6. Кнопка «Пропустить»
7. Под логотипом указывается
сколько новых проектов было
загружено и сколько дней назад

63
# Экран Описание Фото экрана
3. Регистрация Назначение:
Пользователь видит экран, когда нажи-
мает «Регистрация на экране входа».
Экран содержит варианты регистрации

Функционал:
1. Кнопка «через facebook»
2. Кнопка «через вконтакте»
3. Кнопка «Электронная почта»
4. Кнопка «Выйти» из экрана

4. Вход через FB_1 Назначение:


Пользователь видит экран, когда нажи-
мает «Через Facebook». Экран отража-
ется в представленном виде, если у
пользователя введены данные фейс-
бука

5. Вход через FB_2 Назначение:


Пользователь видит экран, когда нажи-
мает «Через Facebook». Экран отража-
ется в представленном виде, если у
пользователя не введены данные фейс-
бука. Для дальнейшей регистрации
необходимо внести данные и нажать
кнопку «Войти»

64
# Экран Описание Фото экрана
6. Сбросить пароль Назначение:
Пользователь забыл пароль и хочет вос-
пользоваться функцией восстановле-
ния пароля

Функционал:
1. Пользователь вводит свой Email
и нажимает кнопку «восстано-
вить», куда приходит ссылка на
обновление пароля

65
# Экран Описание Фото экрана
7. Регистрация Назначение:
пользователя Пользователь вводит основные данные
для регистрации своего аккаунта в при-
ложении

Функционал:
1. Имя
2. Фамилия
3. Отчество
4. Дата рождения
5. Город
6. Пароль
7. Подтверждение пароля

8. Профиль Назначение:
Пользователь видит настройки своего
профиля. Содержит три вкладки: (1) ос-
новные, (2)уведомления, (3) контакты

Функционал:
1. Кнопка «Редактировать про-
филь»
2. Кнопка «Изменить пароль»
3. Кнопка «Аккаунты социальных
сетей»
4. Переключатель «Настройка уве-
домлений»
5. Переключатель «Платежные
данные»

66
# Экран Описание Фото экрана
9. Профиль Назначение:
→Редактировать Пользователь меняет настройки про-
профиль филя

Функционал:
1. Имя
2. Фамилия
3. Отчество
4. Дата рождения
5. Телефон
6. Email
7. Аватар (загрузка картинки)

10. Профиль Назначение:


→Изменить па- Пользователь может сменить ранее
роль установленный пароль

Функционал:
1. Ввод старого пароля
2. Ввод нового пароля
3. Повторный ввод нового пароля
(защита от ошибки)
4. Подтверждение

11. Профиль Назначение:


→Настройки Пользователь проводит настройки уве-
уведомлений домлений в приложении

Функционал:
1. Виджеты
2. Уведомления
3. Изменение статуса
4. Выполнение проекта
5. Начало новых проектов

67
# Экран Описание Фото экрана
12. Профиль Назначение:
→Платежные Пользователь настраивает данные
данные своих платежных карт

Функционал:
1. Добавление новой карточки
2. Удаление ранее сохраненной в
приложении карточки
3. Ввод данных по банковской кар-
точке

13. История тран- Назначение:


закций Пользователь видит всю историю по со-
вершенным операциям

Функционал:
1. Отображаются транзакции по
списанию с карточки Пользова-
теля суммы пожервтования
(указывается последние 4 цифра
номера карточки)
2. Отображаются транзакции по
возврату средств на карточку
Пользователя

68
# Экран Описание Фото экрана
14. Выбор города Назначение:
для вывода про- Пользователь может переключиться
екта между городами (Как Афиша) для вы-
вода проектов на неделю

Функционал:
3. Установка метки на город
4. Строка поиска города
5. Кнопка подтверждения выбора

15. Главная Назначение:


страница Пользователь видит экран когда:
1. Вошел в приложение,
2. Нажал «Пропустить» на экране
входа
3. Когда уже ранее регистриро-
вался и вводил свои данные

Функционал:
1. Swipe по проектам, которые
опубликовало приложение
(пять проектов в неделю)
2. Кнопка «Подарить» (пожертво-
вать 300руб.)
3. При нажатии на экран, пользова-
тель видит детальную информа-
цию по проекту
4. Указано сколько нужно собрать
и сколько уже собрано
16. Главная стра- Назначение:
ница →Подарить При нажатии на кнопку «Подарить» воз-
никает экран, где Пользователь выби-
рает способ оплаты

Функционал:
1. Пользователь может выбирать
способ оплаты через переключе-
ние Swipe
2. Пользователь может добавить
новую карточку (при Swipe в са-
мый конец- вправо)
3. Пользователь видит информа-
цию по своему профилю (нельзя
редактировать в этом экране)

69
# Экран Описание Фото экрана
17. Главная стра- Назначение:
ница → Пода- При нажатии на «Перевести 300р» поль-
рить → Переве- зователь должен подтвердить ввод па-
сти 300р. ролем

Функционал:
1. Пользователь получает push-
уведомление с кодом для под-
тверждения
2. Пользователь вводит пароль в
поле и нажимает кнопку «Под-
твердить»

18. Голосование Назначение:


Модераторы видят все экраны из БД
для голосования

Функционал:
3. Модератор имеет всего 5 голо-
сов (количество голосов Модера-
торов настраивается в админ па-
нели Администратором).
4. Модератор оставляет максимум
2 голоса за одну категорию. Дол-
жен проголосовать за проект из
каждой категории.
5. По абсолютному количеству го-
лосов система определяет 5 про-
ектов (количество проектов
определяется Администратором
в админ панели), которые будут
опубликованы для пользовате-
лей на следующую неделю
6. При голосовании Модератором
за один из проект – кнопка «Про-
голосовать» меняется на «Голос
учтен» и красится в зеленый
цвет
7. Модератор может нажать
кнопку «Категории» и настроить
фильтрами категории проектов
для отображения

70
# Экран Описание Фото экрана
19. Голосование → Назначение:
Выбор проекта Модераторы могут просмотреть по-
дробную информацию по каждому про-
екту, нажав на него и открывается
экран проекта

Функционал:
1. Модератор нажимает на один из
проектов списка экрана «Голосо-
вание» и ему открывается по-
дробная информация по проекту

20. Голосование Назначение:


→Выбор катего- Модераторы могут выбрать фильтрами
рии те категории проектов, которые будут
отображаться на экране Голосование

Функционал:
2. Модератор нажимает кнопку
«Категории» возникает экран
выбора Категорий. Принцип вы-
бора - select

21. Стать волонте- Назначение:


ром Пользователи могут заявиться на во-
лонтерство, выбрав в меню «Стать во-
лонтером»

Функционал:
1. Пользователь заполняет обяза-
тельные поля и отправляет за-
полненную анкету на проверку
Куратором (проверка происхо-
дит в админ панели):
- Дополнительный телефон
- Страница волонтера вконтакте
- Опыт работы
- Таланты
- Желаемые категории
- Загрузить свои грамоты (если
есть)
2. Кнопка «Отправить» позволяет
сохранить заполненную анкету
для проверки с ролью «Куратор»
в БД админ панели

71
# Экран Описание Фото экрана
22. Стать волонте- Функционал:
ром → Выбор ка- Пользователь при отправке заявки на
тегории волонтера фонда обязан заполнить
поле «Желаемые категории»

Функционал:
1. Пользователь выбирает интересую-
щие его категории
2. Кнопка «Далее» возвращает на экран
заполнения анкеты

23. Экран «Про- Назначение:


екты» в статусе Визуальное представление проекта со-
«Запущен» отоб- бравшего средства
ражение для
пользователей Функционал:
1. При сборе достаточного количе-
ства средств для реализации
проекта, на карточке проекта
экрана «Проекты» появляется
статус «Проект запущен»

24. Ввод данных Если пользователь ранее не указал дан-


карты ные банковской карты, появляется
экран с незаполненными данными

Функционал:
1. Поля для ввода данных по кар-
точке (приложение сохраняет
ранее введенные данные, кото-
рые можно редактировать в
настройках профиля пользова-
теля)
2. Кнопка «Подарить»

72
# Экран Описание Фото экрана
25. Добавление от- Назначение:
четности Экран доступен пользователям с ролью
«Куратор». Куратор прикрепляет необ-
ходимые документы на вкладку «Отчет-
ность» карточки проекта

Функционал:
1. Добавление фотографий с мо-
бильного телефона волонтера
2. Добавление текстового описа-
ния по исполнению проекта
3. Добавление чеков файлов с теле-
фона (фотографии, pdf) как чеки
4. Добавление информации по фак-
тически затраченной сумме на
реализацию проекта
5. Кнопка «Отправить отчет»
6. В карточке проекта появляется
вложенный файл «Отчетность»,
который можно просмотреть с
телефона

26. Подтверждение Назначение:


актуальности Для подтверждения актуальности про-
проекта екта, у модератор выводится специаль-
ный экран, на котором им необходимо
выбрать актуальные проекты

Функционал:
1. Название проекта с фотогра-
фией, с возможность выделить
несколько проектов, нажав на
картинку проекта
2. Кнопка «Подтвердить актуаль-
ность»

73
# Экран Описание Фото экрана
27. Сам проект (от- Назначение:
крывается при При нажатии на основном экране на
первом нажатии проект, открывается карточка проекта
выбора проекта) (на рисунке справа отображен экран за-
пуска, при прокрутке вниз появляется
подробная информация по проекту)

Функционал:
1. Кнопка «Подарить»
2. Кнопка «Стать волонтером»

Примечание:
Нет функционала оставления коммен-
тариев

74
# Экран Описание Фото экрана

28. Напоминание о Незарегистрированный Пользователь


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

75
# Экран Описание Фото экрана
29. пСам проект (от- Назначение:
ркрывается при При нажатии на основном экране на
первом нажатии проект, открывается карточка проекта
выбора проекта)
→Смена статуса Функционал:
«вы волонтер» 1. При согласовании Куратором за-
явки на волонтерство у пользо-
вателя на экране проекта появ-
ляется надпись – «Вы волонтер
проекта»

30. Автор проекта Назначение:


Пользователь может зайти в карточку
пользователя автора проекта, нажав в
шапке проекта кнопку «Автор»

Функционал:
1. Кнопка «Проектов» - показывает
общее количество проектов до-
бавленных модератором
2. Кнопка «Завершенных» - показы-
вает общее количество завер-
шенных проектов
При нажатии на любую из кнопок меня-
ется составляющая проектов внизу
экрана

76
31. Сам проект Назначение:
Пользователь видит экран с детальной
информацией при нажатии на проект

Функционал:
1. Содержит информацию сколько
собрано и сколько нужно со-
брать, количество пожертвовав-
ших
2. Кнопка «Подарить»
3. Кнопка «Комментарии», где со-
держится информация по коли-
честву комментариев
4. Содержит три вкладки: (1) Опи-
сание (информация с описанием
проекта; фото с возможностью
просматра swipe; карта с адре-
сом проекта), (2) реализация, где
содержится вся информация по
ходу реализации проекта, загру-
жаемая Исполнителями, (3) Ис-
полнители

77
# Экран Описание Фото экрана
32. Статистика Назначение:
Пользователь видит статистику по всем
проектам

Функционал:
1. Содержит график по количеству
пожертвоваший в разрезе
недель
2. Содержит информацию по всем
пожертвовавшим на проект
пользователям

33. Меню Назначение:


пользователя Пользователь видит меню приложения

Функционал:
1. Кнопка «Проекты»
2. Кнопка «Наши проекты»
3. Кнопка «Задать вопрос»
4. Кнопка «О нас»

34. Меню пользова- Назначение:


теля (с ролью Пользователь видит меню приложения
модератор)
Функционал:
1. Кнопка «Проекты»
2. Кнопка «Наши проекты»
3. Кнопка «Задать вопрос»
4. Кнопка «О нас»
5. Кнопка «Голосование»

78
# Экран Описание Фото экрана
35. Личный кабинет Назначение:
пользователя Пользователь может зайти в свой лич-
ный кабинет, где отражаются проекты,
в которых он учувствовал, список ачи-
вок, которые он получил

Функционал:
1. Кнопка «Проектов» - показывает
общее количество проектов, в ко-
торых участвовал пользователь
2. Кнопка «ачивок» - показывает об-
щий перечень ачивок, полученных
пользователь
При нажатии на любую из кнопок меня-
ется составляющая проектов внизу
экрана
36. Ваши проекты Назначение:
Продолжение экрана «Личный кабинет
пользователь» после нажатия кнопки
«Проектов»

Функционал:
Карточки проектов с возможностью
«провалиться в них»

79
# Экран Описание Фото экрана
37. Список достиг- Назначение:
нутых ачивок Продолжение экрана «Личный кабинет
пользователь» после нажатия кнопки
«Ачивок»

Функционал:
Карточки ачивок с возможностью «про-
валиться» в них

38. Описание ачивки Назначение:


Описание ачивки, возникающий после
нажатия на нее

39. Экран вопросы Назначение:


Пользователь может прочитать часто
задаваемые вопросы, либо отправить
свой вопрос

Функционал:
1. Кнопка «Задать вопрос»
2. Выпадающие списки с ответами
на популярные вопросы

80
# Экран Описание Фото экрана
40. Задать вопрос Назначение:
Пользователь может отправить сообще-
ние

Функционал:
1. Содержит поле для ввода сооб-
щения
2. Кнопка «Отправить»
3. Выпадающий список с категори-
ями вопроса

41. О нас Назначение:


Пользователь видит информацию о Pro-
ject-C

Функционал:
Содержит текст с информацией о Pro-
ject-C

42. Политика кон- Назначение:


фиденциально- Пользователь видит информацию о по-
сти литике конфиденциальности Project-C

Функционал:
Содержит текст с информацией о поли-
тике конфиденциальности Project-C

81
# Экран Описание Фото экрана
43. N/A

82
2.2.5 Блок транзакции
Функциональное описание
После окончания голосования, если проекты не собрали достаточно средств, средства возвра-
щаются дарителям (пользователям, пожертвовавшим средства) через API alfa bank, изменяя
статус проекта на новый, а статусы проектов, собравших достаточно средств изменяя на
«Идет исполнение».

2.2.6 Блок оповещения


Функциональное описание
Отправляет оповещения в зависимости от настроек системы: см. решение по PUSH уведомле-
ния

2.2.7 Блок выбора исполнителей

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

83
3. Прочие требования
3.1. Порядок контроля и приемки Системы
По завершении работ и/или отдельного этапа работ Исполнитель предоставляет Заказчику
исходный текст и объектный код ПО (в том числе его части) на оптическом диске или посред-
ством сети связи с сопутствующей технической документацией и руководствами по исполь-
зованию.
Заказчик в течение одной недели с момента извещения Исполнителем о готовности ПО обя-
зуется принять и протестировать подготовленный Исполнителем этап разработки ПО.
Заказчик в течение одного месяца с момента извещения Исполнителем о готовности ПО к
публикации на серверах Appstore и Play Маркет обязуется принять и протестировать подго-
товленный Исполнителем ПО.
После принятия Заказчиком решения о соответствии ПО требованиям Технического задания
Стороны составляют акт сдачи-приемки выполненных работ. В случае мотивированного от-
каза Заказчика подписать акт сдачи-приемки Сторонами составляется двусторонний акт с
указанием необходимых доработок и сроков их выполнения.

3.2. Гарантийные обязательства


Исполнитель обязуется в течения года после сдачи проекта исправлять ошибки, оставленные
во время исполнения проекта по описанному ТЗ.

3.3. Техническая поддержка Системы


(Кто как и каким образом осуществляет тех поддрежку после выхода из ОПЭ

84