Skip to content
Sergeev Alexander edited this page Nov 10, 2021 · 7 revisions

Цели и задачи

Требования заказчиков

Клиентское приложение

  • Приложение должно быть доступным, удобным и простым в использовании
    Пользователи не получают никакого вознаграждения за сотрудничество и отправку отчетов. Любое неудобство в использовании приложения (такое как недоступность на конкретной платформе, неинтуитивность интерфейса, наличие ошибок, долгое время ответа и т.д.) может негативно сказаться на популярности проекта среди волонтеров, от которой напрямую зависит его успех.
  • Приложение должно содержать подробное описание объекта поиска (Heracleum sosnowskyi)
    Для удобства пользователей приложение должно содержать подробную информацию и описание (с фотографиями) вида(ов), о нахождении которых требуется отправлять отчеты.
  • Для изменения данных в приложении необходима регистрация
    Во избежание спама и для связи с пользователями необходимо реализовать регистрацию, обязательную для отправки отчетов и комментариев.

Серверное приложение

  • Требования к используемым технологиям
    Должна быть использована система управления базами данных PosgreSQL.
  • Создание сайта администрации
    Сайт должен предоставлять возможность просмотра и редактирования базы данных и быть доступным только для сервисных аккаунтов.
  • Поддержка сервисных ролей "Эксперт" и "Администратор"
    Пользователи с правами доступа "эксперт" должны иметь возможность редактировать, исправлять и удалять отчеты пользователей. Пользователи с правами доступа "администратор" должны иметь доступ ко всем функциям сайта, в том числе редактированию информации о пользователях и осуществлению модерации.
  • Возможность сортировки и выгрузки выбранных отчетов в формате .csv
    Сортировка может проводиться по дате отправке отчета, его статусу и типу находки.
  • Возможность связи с пользователями
    Связь может осуществляться в формате сообщений или рассылок с использованием электронной почты.
  • Возможность модерации
    Модерация включает в себя редактирование и удаление любых изображений и текста, опубликованных пользователями в целях предотвращения хулиганства и распространения неверной информации. Также необходимо реализовать возможность временного и постоянного блокирования аккаунта пользователя. Должна присутствовать возможность связи с нарушителем.

Реализация требований

Для написания клиентского приложения выбран фреймворк flutter, так как он предоставляет возможность разработки мультиплатформенного приложения, при этом минимизируя количество ошибок. Также он предлагает широкий спектр возможностей для разработки удобного интерфейса и сравнительно короткое время отклика.
Для написания серверной части приложения был выбран фреймворк django, так как он хорошо документирован и позволяет реализовать все запрошенные заказчиком требования в короткое время.

Макет внешнего вида

Клиентское приложение

Client UI

Администраторское приложение

Server UI

Сценарии использования

Клиентское приложение

Действующее лицо: Пользователь

Вход

  1. Открывается страница авторизации
  2. Пользователь вводит свой адрес электронной почты в поле ввода адреса электронной почты
  3. Пользователь вводит свой пароль в поле ввода пароля
  4. Пользователь нажимает кнопку "войти"
  5. Открывается главная страница приложения

Регистрация

  1. Открывается страница авторизации
  2. Пользователь нажимает кнопку "впервые в HogWeedGo?"
  3. Пользователь вводит свой адрес электронной почты в поле ввода адреса электронной почты
  4. Пользователь вводит свой пароль в поле ввода пароля
  5. Пользователь вводит свой пароль в поле ввода подтверждения пароля
  6. Пользователь подтверждает согласие на сбор и обработку персональных данных
  7. Пользователь нажимает кнопку "зарегистрироваться"
  8. Пользователь подтверждает указанный адрес электронной почты (TODO)
  9. Открывается главная страница приложения

Отправка отчета

  1. Пользователь нажимает на плавающую кнопку "+"
  2. Пользователь вводит описание своей находки в поле "описание"
  3. Пользователь вводит описание местонахождение своей находки в поле "местонахождение"
  4. Пользователь выбирает местоположение своей находки на карте ИЛИ нажимает на кнопку "использовать мое местонахождение"
  5. Пользователь выбирает фотографии для приложения их к отчету
  6. Пользователь выбирает дату и время находки
  7. Пользователь пишет комментарий по поводу находки
  8. Пользователь нажимает кнопку "отправить"
  9. Отчет отправляется на сервер

Просмотр отчета

  1. Пользователь нажимает маркер отчета на карте
  2. Пользователь просматривает информацию об отчете
  3. Пользователь нажимает на фотографии, приложенные к отчету и они открываются в полноэкранном режиме
  4. Пользователь пишет комментарий к отчету
  5. Пользователь закрывает описание отчета

Редактирование профиля

  1. Пользователь открывает шторку у левого края экрана
  2. Пользователь выбирает пункт "профиль"
  3. Пользователь выбирает новое изображение-аватар
  4. Пользователь редактирует свое имя
  5. Пользователь редактирует свой адрес электронной почты
  6. Пользователь меняет свой пароль
  7. Пользователь выходит из своего аккаунта
  8. Пользователь удаляет свой аккаунт

Просмотр информации об объекте поисков

  1. Пользователь открывает шторку у левого края экрана
  2. Пользователь выбирает пункт "описание"
  3. Пользователь ознакамливается с информацией об объекте поисков

Администраторское приложение

Действующее лицо: Эксперт или Администратор

Вход

  1. Пользователь вводит свой адрес электронной почты в поле ввода адреса электронной почты
  2. Пользователь вводит свой пароль в поле ввода пароля

Поиск отчета по карте

  1. Пользователь находит интересующий его маркер отчета на карте
  2. Пользователь нажимает на него
  3. Открывается страница редактирования отчета

Поиск отчета по статусу или типу

  1. Пользователь открывает вкладку отчетов
  2. В меню справа пользователь настраивает фильтрацию отчетов по статусу или типу
  3. Отображается интересующая пользователя выборка отчетов

Поиск отчета по дате отправки

  1. Пользователь открывает вкладку отчетов
  2. В меню сверху пользователь выбирает интересующую его дату отправки
  3. Отображается интересующая пользователя выборка отчетов

Сортировка отчетов

  1. Пользователь открывает вкладку отчетов
  2. В меню сверху пользователь выбирает поле отчета для сортировки
  3. Пользователь щелкает по нему для сортировки ИЛИ щелкает еще раз для изменения порядка сортировки
  4. Отображаются отчеты в отсортированном виде

Выполнение действия с отчетом

  1. Пользователь открывает вкладку отчетов
  2. В меню сверху пользователь выбирает действие
  3. Пользователь выставляет флажки в клеточки справа от тех отчетов, к которым он хотел бы применить это действие
  4. Пользователь нажимает на кнопку "go"
  5. Выбранное действие производится с выбранными отчетами

Редактирование отчета

  1. Пользователь открывает вкладку отчетов
  2. Пользователь выбирает интересующий его отчет
  3. Пользователь нажимает на его дату отправки
  4. Открывается окно редактирования отчета
  5. Пользователь редактирует информацию об отчете
  6. Пользователь нажимает кнопку "save" или "save and continue editing"
  7. В зависимости от нажатой кнопки, открывается вкладка отчетов или окно редактирования отчета

Удаление отчета

  1. Пользователь открывает вкладку отчетов
  2. Пользователь выбирает интересующий его отчет
  3. Пользователь нажимает на его дату отправки
  4. Открывается окно редактирования отчета
  5. Пользователь нажимает кнопку "delete"
  6. Открывается вкладка отчетов Действующее лицо: Администратор

Поиск пользователя по роли

  1. Пользователь открывает вкладку пользователей
  2. В меню справа пользователь настраивает фильтрацию отчетов по роли
  3. Отображается интересующая пользователя выборка пользователей

Сортировка пользователей

  1. Пользователь открывает вкладку пользователей
  2. В меню сверху пользователь выбирает поле профиля пользователя для сортировки
  3. Пользователь щелкает по нему для сортировки ИЛИ щелкает еще раз для изменения порядка сортировки
  4. Отображаются профили пользователей в отсортированном виде

Выполнение действия с профилем пользователя

  1. Пользователь открывает вкладку пользователей
  2. В меню сверху пользователь выбирает действие
  3. Пользователь выставляет флажки в клеточки справа от тех профилей пользователей, к которым он хотел бы применить это действие
  4. Пользователь нажимает на кнопку "go"
  5. Выбранное действие производится с выбранными профилями пользователей

Редактирование пользователя

  1. Пользователь открывает вкладку пользователей
  2. Пользователь выбирает интересующий его профиль пользователя
  3. Пользователь нажимает на его адрес электронной почты
  4. Открывается окно редактирования профиля пользователя
  5. Пользователь редактирует информацию о пользователе
  6. Пользователь нажимает кнопку "save" или "save and continue editing"
  7. В зависимости от нажатой кнопки, открывается вкладка пользователей или окно редактирования профиля пользователя

Удаление пользователя

  1. Пользователь открывает вкладку пользователей
  2. Пользователь выбирает интересующий его профиль пользователя
  3. Пользователь нажимает на его адрес электронной почты
  4. Открывается окно редактирования профиля пользователя
  5. Пользователь нажимает кнопку "delete"
  6. Открывается вкладка пользователей