SUAI-TaskPlanner-Contest / TaskPlanner

Client application for working with todos and syncing with CalDAV servers
MIT License
3 stars 2 forks source link

5 define functions for use case #40

Closed Dary5 closed 1 year ago

Dary5 commented 1 year ago

Use-case merge request

Related Issue #5
Reviewer requrements Особых требований нет

Исполнитель: @Dary5

Code changes

Определены критические функции, требующие составления use case.

How to test

Проверить на соответствие с обсуждаемыми проблемами на последних встречах.

UI Demonstration

image

aleksandra-shchegoleva commented 1 year ago

@astronik00 @Dary5

  1. Этот use case стоит оформить также, как и остальные. Критическое действие: попытка удалить основной сервер (nextcloud) - Пользователь не может удалить аккаунт nextcloud

Пользователь не может удалить аккаунт nextcloud

  1. Удаление в окне "Настройки" сервера на котором в данный момент находится Пользователь - может быть лучше сделать запрет на удаление активного сервера? Сейчас выходит, что его можно с потерей данных удалить, если проигнорировать предупреждение.
  2. Весь use case с удалением сервера - сейчас он выглядит небезопасным с точки зрения сохранения данных, возможно стоит делать автоматическую синхронизацию при удалении. Что делать, если при синхронизации возникли конфликты?
  3. Удаление активного сервера при отсутствии подключения к интернету - если нет запрета на удаление активного сервера, то вопросы с синхронизацией - получается можно удалить активный сервер без его синхронизации с сервером
  4. Возможно нужен use case "Установка PIN-кода"
  5. При использовании строки поиска переключения на диаграмму Ганта или на список задач - блокировка нерабочих областей
  6. Возможно нужен use case "Поиск задачи" - что должен возвращать поиск при разных отображениях рабочей области?

Даша, при создании МР, пожалуйста, назначай себя как исполнителя и указывай проект к которому относится задача.

Dary5 commented 1 year ago

@aleksandra-shchegoleva

  1. Поместила в пункт 7.
  2. Нет, удалить нельзя. Имелось в виду, что предупреждение возникает (как подсказка), уточню сейчас .
  3. Скорее всего нужно смотреть на приоритет. Если приоритет клиента, то есть ли смысл синхронизации с сервером? мы же наоборот доступ закрываем для сервера. Если же приоритет сервера, то можно при удалении синхронизировать. Хотя как по мне лучше дать одно предупреждение, что можно синхронизировать с этим сервером для сохранения данных, чтобы пользователь сам это решал: "тебя предупредили - дальше сам".
  4. Удалять активный сервер нельзя - внесла поправку.
  5. use case "Установка PIN-кода" - я описываю проблемы и их решения, сейчас этот вопрос решаю, но это не по моей части
  6. Катя сказала, что не видит смысла в блокировке. Предлагаю потом отдельным заданием это разобрать, если возникнут проблемы.
aleksandra-shchegoleva commented 1 year ago

@Dary5

  1. Хорошо, обнови, пожалуйста картину в МР.
  2. Есть какое-нибудь уточнение?
  3. Еще раз перечитала правила синхронизации. 3.1 Не совсем понятно - почему, если задачи нет на сервере, но она есть на клиенте, то ничего не происходит? Должна же локальная копия отправится на сервер. Как тогда с клиента отправить новую задачу на сервер? 3.2 Чем отличается "При удалении другим клиентом из сервера задачи" от "При приоритете клиента и наличии задачи на клиенте, но не на сервере" и "При приоритете сервера и наличии задачи на клиенте, но не на сервере"? 3.3 "Редактирвоание задачи, которая одновременно редактирутся другим Пользователем" - каким мы можем отследить, что задача редактируется другим Пользователем? Он же редактирует на своей локальной версии. Или возможен вариант, что админ календаря отредактировал на сервере задачу? 3.4 Можно в принципе и одно предупреждение делать, но на мой взгляд лучше сделать более безопасный вариант. 3.5 Все же, что делать с синхронизацией, если есть конфликт. В файле не везде прописано решение конфликта.
  4. Хорошо
  5. Хорошо
  6. Хорошо
  7. Хорошо
Dary5 commented 1 year ago

@aleksandra-shchegoleva @astronik00

  1. удалить активный сервер нельзя
  2. Я вижу ситуацию с синхронизацией так: если приоритет клиента, то задачи клиента остаются на клиенте и ничего не происходит (вдруг другой пользователь работает с этими же задачами и у него приоритет сервера, если наш пользователь свои задачи из клиента перенесёт на сервер, то второй пользователь своих может лишиться). Если приоритет сервера, то с сервера на клиент переходят задачки, на клиенте "лишние" задачи стираются (но тут уже всплывает об этом предупреждение (можно наверное внести в окно Предупреждение что-то типа кнопки "Удалить конфликтные задачи", "Нет")). Все кейсы из этой логики писались. у нас просто окно предупреждение просто текстовым было, нужно решить, может ли пользователь оставлять "лишние задачи" так скажем или безжалостно их удаляем.
Lailes commented 1 year ago
image
Lailes commented 1 year ago
image

МЭЭЭЭЭРДЖ.zip

aleksandra-shchegoleva commented 1 year ago

@Dary5 Напиши, пожалуйста, как обновишь раздел с синхронизацией согласно схеме Никиты

aleksandra-shchegoleva commented 1 year ago

@Dary5 В принципе теперь все нормально. Получается теперь как такой не нужен приоритет сервера или клиента? На какую кнопку надо нажать человеку, чтобы были приняты изменения, которая в фиолетовом окне?

astronik00 commented 1 year ago

@aleksandra-shchegoleva, @Dary5

@Dary5 В принципе теперь все нормально. Получается теперь как такой не нужен приоритет сервера или клиента? На какую кнопку надо нажать человеку, чтобы были приняты изменения, которая в фиолетовом окне?

Отвечу за Дашу - в настройках приоритет теперь не нужен.

Кнопка "Apply" - принять фиолетовое (окно по середине) Кнопка "Cancel" - не принимать фиолетовое (окно по середине). Кстати интересный вопрос, а что тогда будет, если не принять? Конфликты же будет дальше висеть, нужно продумать этот момент. Красная кнопка "Принять это" - принять приоритет сервера (левое окно) Зеленая кнопка "Принять это" - принять приоритет клиента (правое окно)

astronik00 commented 1 year ago

@Dary5, @aleksandra-shchegoleva merge-diag

Dary5 commented 1 year ago

@astronik00 все поправила, вставила новую диаграмму