Модель прецедентів 🗂️
📋 Загальна схема
🧑💻 Користувач
🛠️ Адміністратор
📊 Керівник
Сценарії використання 💡
👤 CreateUser
ID | CreateUser |
---|---|
НАЗВА | Створити користувача |
УЧАСНИКИ | Користувач, система |
ПЕРЕДУМОВИ | Система не зареєструвала користувача |
РЕЗУЛЬТАТ | Система створює обліковий запис користувача |
ВИКЛЮЧНІ СИТУАЦІЇ | - Користувач не ввів ім'я користувача (NullUsernameException) - Користувач не ввів пошту (NullEmailException) - Користувач не ввів пароль (NullPasswordException) - Користувач з таким ім'ям вже існує (UserAlreadyExistsException) - Користувач вказав неправильний формат пошти (WrongEmailFormatException) - Користувач ввів недостатньо сильний пароль (WeakPasswordException) |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач натискає на кнопку "Зареєструватись". 2. Користувач заповнює поля реєстрації (ім'я користувача, пошта, пароль). 3. Користувач натискає на кнопку "Створити". 4. Система перевіряє введені поля на валідність. 5. Система створює обліковий запис користувача. 6. Користувач автоматично входить у систему. |
👤 AuthorizeUser
ID | AuthorizeUser |
---|---|
НАЗВА | Авторизувати користувача |
УЧАСНИКИ | Користувач, система |
ПЕРЕДУМОВИ | Система зареєструвала користувача |
РЕЗУЛЬТАТ | Система авторизувала користувача |
ВИКЛЮЧНІ СИТУАЦІЇ | - Користувач ввів неправильний пароль (InvalidPasswordException) - Користувач ввів неправильне ім'я користувача (InvalidUsernameException) - Система заблокувала користувача (UserBannedException) |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач вводить ім'я користувача і пароль. 2. Система перевіряє введені дані (InvalidPasswordException або InvalidUsernameException). 3. Система перевіряє статус користувача (UserBannedException). 4. Користувач успішно входить у систему. |
👤 EditUser
ID | EditUser |
---|---|
НАЗВА | Редагувати користувача |
УЧАСНИКИ | Користувач, адміністратор, система |
ПЕРЕДУМОВИ | Система авторизувала користувача або адміністратора |
РЕЗУЛЬТАТ | Система змінила дані користувача |
ВИКЛЮЧНІ СИТУАЦІЇ | - Система не знайшла користувача (UserNotFoundException) - Користувач має недостатньо прав для редагування (InsufficientPermissionsException) - Користувач ввів дані у неправильному форматі (InvalidDataFormatException) |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Адміністратор або користувач відкриває профіль користувача. 2. Користувач або адміністратор змінює потрібні поля. 3. Система перевіряє права (InsufficientPermissionsException). 4. Система перевіряє введені дані на правильність (InvalidDataFormatException). 5. Система зберігає оновлені дані користувача. |
👤 DeleteUser
ID | DeleteUser |
---|---|
НАЗВА | Видалити користувача |
УЧАСНИКИ | Адміністратор, система |
ПЕРЕДУМОВИ | Система авторизувала адміністратора |
РЕЗУЛЬТАТ | Система видаляє користувача |
ВИКЛЮЧНІ СИТУАЦІЇ | - Система не знайшла користувача (UserNotFoundException) - Користувач має недостатньо прав для видалення (InsufficientPermissionsException) |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Адміністратор вибирає користувача для видалення. 2. Адміністратор натискає кнопку "Видалити користувача". 3. Система перевіряє права адміністратора (InsufficientPermissionsException). 4. Система видаляє користувача (UserNotFoundException). |
📂 CreateProject
ID | CreateProject |
---|---|
НАЗВА | Створити проект |
УЧАСНИКИ | Користувач, система |
ПЕРЕДУМОВИ | Система авторизувала користувача |
РЕЗУЛЬТАТ | Система створює проєкт та надає права керівника проєкту користувачу |
ВИКЛЮЧНІ СИТУАЦІЇ | - Користувач не ввів назву проєкту (NullProjectNameException) - Користувач ввів назву проєкту у неправильному форматі (InvalidProjectNameException) |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач натискає кнопку "Створити проект". 2. Користувач заповнює форму (назва проекту). 3. Система перевіряє дані на валідність. 4. Система створює новий проект. 5. Система надає права керівника проєкту користувачу. 6. Користувач отримує підтвердження про створення проекту. |
📂 EditProject
ID | EditProject |
---|---|
НАЗВА | Редагувати проект |
УЧАСНИКИ | Користувач (керівник проєкту), адміністратор, система |
ПЕРЕДУМОВИ | - Система авторизувала користувача - Користувач має права на редагування проекту |
РЕЗУЛЬТАТ | Система змінює дані проєкту |
ВИКЛЮЧНІ СИТУАЦІЇ | - Система не знайшла проєкт (ProjectNotFoundException) - Користувач має недостатньо прав для редагування (AccessDeniedException) |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач відкриває проект. 2. Користувач натискає кнопку "Редагувати". 3. Користувач вносить зміни. 4. Система перевіряє права на редагування. 5. Система зберігає зміни. |
📂 DeleteProject
ID | DeleteProject |
---|---|
НАЗВА | Видалити проект |
УЧАСНИКИ | Користувач (керівник проєкту), адміністратор, система |
ПЕРЕДУМОВИ | - Система авторизувала користувача - Користувач має права на видалення проєкту |
РЕЗУЛЬТАТ | Система видаляє проєкт |
ВИКЛЮЧНІ СИТУАЦІЇ | - Система не знайшла проєкт (ProjectNotFoundException) - Користувач має недостатньо прав для видалення (AccessDeniedException) |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач вибирає проект для видалення. 2. Користувач натискає кнопку "Видалити". 3. Система перевіряє права на видалення. 4. Система видаляє проект. |
➕ AddUserToProject
ID | AddUserToProject |
---|---|
НАЗВА | Додати учасника до проекту |
УЧАСНИКИ | Користувач (керівник проєкту), адміністратор, система |
ПЕРЕДУМОВИ | - Система авторизувала користувача - Користувач має права на редагування проекту |
РЕЗУЛЬТАТ | Система додає учасника до проєкту |
ВИКЛЮЧНІ СИТУАЦІЇ | - Система не знайшла користувача (UserNotFoundException) - Система не знайшла проєкт (ProjectNotFoundException) - Користувач має недостатньо прав для додавання учасника (AccessDeniedException) |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач відкриває проект. 2. Користувач натискає кнопку "Додати учасника". 3. Користувач вводить дані нового учасника. 4. Система перевіряє права на додавання учасника. 5. Система додає учасника до проекту. |
🗑️ RemoveUserFromProject
ID | RemoveUserFromProject |
---|---|
НАЗВА | Видалити користувача з проєкту |
УЧАСНИКИ | Менеджер, система |
ПЕРЕДУМОВИ | - Користувач є учасником проєкту |
РЕЗУЛЬТАТ | Видалений член проєкту |
ВИКЛЮЧНІ СИТУАЦІЇ | - RemoveUserFromProject_WrongUsername_EXC – менеджер ввів неправильне ім'я користувача - RemoveUserFromProject_CancelButton_EXC – менеджер натиснув кнопку "Відміна" |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Менеджер переходить у розділ "Проєкти". 2. Менеджер обирає проєкт і натискає кнопку "Видалити користувача". 3. Система відкриває форму для введення ім'я користувача. 4. Менеджер вводить ім'я користувача (можлива RemoveUserFromProject_WrongUsername_EXC). 5. Менеджер натискає кнопку "Видалити" (можлива RemoveUserFromProject_CancelButton_EXC). 6. Система видаляє користувача з проєкту. 7. Система закриває форму. 8. Система показує повідомлення, що користувач успішно видалений з обраного проєкту. |
📝 CreateBoard
ID | CreateBoard |
---|---|
НАЗВА | Створити дошку |
УЧАСНИКИ | Менеджер, система |
ПЕРЕДУМОВИ | - Менеджер авторизований - Менеджер є членом проєкту |
РЕЗУЛЬТАТ | Нова дошка у проєкті |
ВИКЛЮЧНІ СИТУАЦІЇ | - CreateBoard_NoName_EXC – менеджер не вказав назву дошки - CreateBoard_ExistingName_EXC – менеджер ввів ім'я дошки, що вже зайнято - CreateBoard_CancelButton_EXC – менеджер натиснув кнопку "Відміна" |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Менеджер обирає проєкт і натискає на кнопку "Створити дошку". 2. Система відкриває форму із полями інформації про дошку (можлива CreateBoard_CancelButton_EXC). 3. Менеджер заповнює інформацію про дошку: вказує назву та опис. 4. Менеджер натискає кнопку "Створити". 5. Система перевіряє на валідність інформацію про дошку (можливі CreateBoard_NoName_EXC та CreateBoard_ExistingName_EXC). 6. Система створює нову дошку у проєкті. |
📝 DeleteBoard
ID | DeleteBoard |
---|---|
НАЗВА | Видалити дошку |
УЧАСНИКИ | Менеджер, система |
ПЕРЕДУМОВИ | - Менеджер має дошку у проєкті - Система містить інформацію про дошку для видалення |
РЕЗУЛЬТАТ | Видалена дошка |
ВИКЛЮЧНІ СИТУАЦІЇ | - DeleteBoard_NoRights_EXC – менеджер не має прав на видалення обраної дошки - DeleteBoard_InvalidName_EXC – менеджер вказав ім'я дошки, що не збігається з реальним - DeleteBoard_CancelButton_EXC – менеджер натиснув кнопку "Відміна" |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Менеджер переходить у розділ "Дошки" та обирає потрібну для видалення дошку. 2. Менеджер натискає кнопку "Видалити дошку". 3. Система перевіряє права менеджера на видалення обраної дошки (можлива DeleteBoard_NoRights_EXC). 4. Система відкриває форму підтвердження видалення дошки. 5. Менеджер вводить назву дошки для підтвердження процесу видалення (можлива DeleteBoard_InvalidName_EXC). 6. Менеджер натискає кнопку "Видалити дошку" (можлива DeleteBoard_CancelButton_EXC). 7. Система видаляє дошку з проєкту. |
🧩 CreateTask
ID | CreateTask |
---|---|
НАЗВА | Створити задачу |
УЧАСНИКИ | Користувач (учасник проєкту), система |
ПЕРЕДУМОВИ | Користувач є учасником проєкту |
РЕЗУЛЬТАТ | Створена нова задача |
ВИКЛЮЧНІ СИТУАЦІЇ | - CreateTask_EmptyName_EXC – не вказано назву задачі - CreateTask_InvalidDate_EXC – некоректна дата дедлайну |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач відкриває дошку. 2. Натискає кнопку "Додати задачу". 3. Вносить назву, опис і дедлайн. 4. Натискає "Створити". 5. Система перевіряє введені дані. 6. Система створює задачу в дошці. |
🧩 EditTask
ID | EditTask |
---|---|
НАЗВА | Редагувати задачу |
УЧАСНИКИ | Користувач, система |
ПЕРЕДУМОВИ | Користувач має доступ до задачі |
РЕЗУЛЬТАТ | Задача оновлена |
ВИКЛЮЧНІ СИТУАЦІЇ | - EditTask_NotFound_EXC – задача не знайдена - EditTask_AccessDenied_EXC – немає прав |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач відкриває задачу. 2. Вносить зміни. 3. Натискає "Зберегти". 4. Система перевіряє доступ і зберігає зміни. |
🗑️ DeleteTask
ID | DeleteTask |
---|---|
НАЗВА | Видалити задачу |
УЧАСНИКИ | Користувач, система |
ПЕРЕДУМОВИ | Задача існує та належить користувачу або проєкту |
РЕЗУЛЬТАТ | Задача видалена |
ВИКЛЮЧНІ СИТУАЦІЇ | - DeleteTask_NotFound_EXC – задача не знайдена - DeleteTask_NoRights_EXC – немає прав |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач відкриває задачу. 2. Натискає "Видалити". 3. Система перевіряє права. 4. Система видаляє задачу. |
👤 AssignUserToTask
ID | AssignUserToTask |
---|---|
НАЗВА | Призначити користувача до задачі |
УЧАСНИКИ | Користувач, система |
ПЕРЕДУМОВИ | Задача існує, користувач має права |
РЕЗУЛЬТАТ | Користувач доданий до задачі |
ВИКЛЮЧНІ СИТУАЦІЇ | - AssignUserToTask_UserNotFound_EXC – користувач не знайдений - AssignUserToTask_AlreadyAssigned_EXC – вже призначений |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач відкриває задачу. 2. Обирає учасника. 3. Підтверджує призначення. 4. Система додає виконавця до задачі. |
💬 CommentTask
ID | CommentTask |
---|---|
НАЗВА | Прокоментувати задачу |
УЧАСНИКИ | Користувач, система |
ПЕРЕДУМОВИ | Задача існує |
РЕЗУЛЬТАТ | Коментар додано |
ВИКЛЮЧНІ СИТУАЦІЇ | - CommentTask_EmptyContent_EXC – пустий коментар |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Користувач відкриває задачу. 2. Відкриває вкладку коментарів. 3. Вводить текст. 4. Надсилає. 5. Система зберігає коментар. |
⚠️ Примітка: Усі користувачі, які є учасниками проєкту (тобто мають
Member
запис), можуть створювати, змінювати та коментувати задачі на дошках цього проєкту.
⛔ BlockProject
ID | BlockProject |
---|---|
НАЗВА | Заблокувати проєкт |
УЧАСНИКИ | Адміністратор, система |
ПЕРЕДУМОВИ | - Адміністратор авторизований - Система містить дані про проєкт - Проєкт порушує умови використання системи |
РЕЗУЛЬТАТ | Заблокований проєкт |
ВИКЛЮЧНІ СИТУАЦІЇ | - BlockProject_ProjectHasBeenRemoved_EXC – проєкт видалено з системи - BlockProject_ProjectHasBeenBlocked_EXC – проєкт вже заблоковано - BlockProject_CancelButton_EXC – адміністратор натиснув кнопку "Відміна" |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Адміністратор переходить у розділ "Проєкти" та вибирає потрібний для блокування проєкт. 2. Адміністратор натискає кнопку "Заблокувати проєкт". 3. Система відкриває форму із параметрами блокування проєкту. 4. Адміністратор заповнює форму, вказуючи причину та термін дії блокування. 5. Адміністратор натискає кнопку "Підтвердити" (можлива BlockProject_CancelButton_EXC). 6. Система перевіряє валідність обраного адміністратором проєкту (можливі BlockProject_ProjectHasBeenRemoved_EXC, BlockProject_ProjectHasBeenBlocked_EXC). 7. Система здійснює операцію блокування й повідомляє менеджера цього проєкту та адміністратора про заблокований проєкт. |
✅ UnblockProject
ID | UnblockProject |
---|---|
НАЗВА | Розблокувати проєкт |
УЧАСНИКИ | Адміністратор, система |
ПЕРЕДУМОВИ | - Адміністратор авторизований - Проєкт заблокований в системі |
РЕЗУЛЬТАТ | Розблокований проєкт |
ВИКЛЮЧНІ СИТУАЦІЇ | - UnblockProject_ProjectHasBeenRemoved_EXC – проєкт видалено з системи - UnblockProject_ProjectHasBeenUnblocked_EXC – проєкт вже розблоковано - UnblockProject_CancelButton_EXC – адміністратор натиснув кнопку "Відміна" |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Адміністратор переходить у розділ "Заблоковані проєкти" та вибирає потрібний для розблокування проєкт. 2. Адміністратор натискає на кнопку "Розблокувати проєкт". 3. Адміністратор натискає кнопку "Підтвердити" (можлива UnblockProject_CancelButton_EXC). 4. Система перевіряє валідність обраного адміністратором проєкту (можливі UnblockProject_ProjectHasBeenRemoved_EXC, UnblockProject_ProjectHasBeenUnblocked_EXC). 5. Система здійснює операцію розблокування й повідомляє менеджера цього проєкту та адміністратора про успішно розблокований проєкт. |
🚫 BanUser
ID | BanUser |
---|---|
НАЗВА | Заблокувати користувача |
УЧАСНИКИ | Адміністратор, система |
ПЕРЕДУМОВИ | - Користувач багаторазово неправильно вводить пароль - Адміністратор виявив підозрілу активність користувача - Користувач порушує умови використання системи |
РЕЗУЛЬТАТ | Заблокований користувач |
ВИКЛЮЧНІ СИТУАЦІЇ | - BanUser_NoMatchingUser_EXC – введені дані не відповідають жодному користувачеві - BanUser_UserHasBeenRemoved_EXC – користувача видалено з системи - BanUser_UserHasBeenBanned_EXC – користувача вже заблоковано - BanUser_CancelButton_EXC – адміністратор натиснув кнопку "Відміна" |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Адміністратор фіксує підозрілу активність користувача. 2. Адміністратор заповнює спеціальну форму для блокування, вказуючи причину та термін дії блокування. 3. Адміністратор натискає кнопку "Підтвердити" (можлива BanUser_CancelButton_EXC). 4. Система перевіряє валідність введених адміністратором даних (можливі BanUser_NoMatchingUser_EXC, BanUser_UserHasBeenRemoved_EXC, BanUser_UserHasBeenBanned_EXC). 5. Система виконує блокування користувача і повідомляє його про це. |
👍 UnbanUser
ID | UnbanUser |
---|---|
НАЗВА | Розблокувати користувача |
УЧАСНИКИ | Адміністратор, система |
ПЕРЕДУМОВИ | - Користувач заблокований |
РЕЗУЛЬТАТ | Розблокований користувач |
ВИКЛЮЧНІ СИТУАЦІЇ | - UnbanUser_NoMatchingUser_EXC – введені дані не відповідають жодному користувачеві - UnbanUser_UserHasBeenRemoved_EXC – користувача видалено з системи - UnbanUser_UserHasBeenUnbanned_EXC – користувача вже розблоковано - UnbanUser_CancelButton_EXC – адміністратор натиснув кнопку "Відміна" |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Адміністратор фіксує потрібного користувача. 2. Адміністратор натискає на кнопку "Розблокувати користувача". 3. Адміністратор натискає кнопку "Підтвердити" (можлива UnbanUser_CancelButton_EXC). 4. Система перевіряє валідність введених адміністратором даних (можливі UnbanUser_NoMatchingUser_EXC, UnbanUser_UserHasBeenRemoved_EXC, UnbanUser_UserHasBeenUnbanned_EXC). 5. Система виконує розблокування користувача і повідомляє його про це. |
⚙️ EditSystemSettings
ID | EditSystemSettings |
---|---|
НАЗВА | Редагувати налаштування системи |
УЧАСНИКИ | Адміністратор, система |
ПЕРЕДУМОВИ | - Адміністратор авторизований |
РЕЗУЛЬТАТ | Нові налаштування системи |
ВИКЛЮЧНІ СИТУАЦІЇ | - EditSystemSettings_InvalidData_EXC – адміністратор ввів невалідні дані - EditSystemSettings_CancelButton_EXC – адміністратор натиснув кнопку "Відміна" |
ОСНОВНИЙ СЦЕНАРІЙ | 1. Адміністратор входить в систему. 2. Адміністратор обирає опцію "Редагувати налаштування системи". 3. Система відкриває форму зміни налаштувань системи (можлива EditSystemSettings_CancelButton_EXC). 4. Адміністратор змінює налаштування системи (можлива EditSystemSettings_InvalidData_EXC). 5. Адміністратор натискає кнопку "Зберегти зміни". 6. Система зберігає змінені налаштування. |