# Модель прецедентів
# Загальна схема
# Робітник
# Тімлід
# Адміністратор системи
# Сценарії використання
| ID | UserSignIn |
|---|---|
| Назва: | Зареєструвати користувача (Sign In) |
| Учасники: | Користувач (тімлід, або розробник), система |
| Передумови: | - Користувач не має облікового запису в системі |
| Результат: | Створений обліковий запис користувача |
| Виключні ситуації: | Користувач не заповнив усі обов'язкові поля форми для реєстрації NullReferenceException Обліковий запис вже існує у системі UserAlreadyExistsException Користувач увів пароль, який не відповідає всім вимогам "надійного паролю" (A-Z, a-z, 0-9, !-*, мінімум 8 символів) NotStrongPasswordException |
| ID | UserGitHubSignIn |
|---|---|
| Назва: | Зареєструвати користувача (Sign In) за допомогою GitHubApi |
| Учасники: | Користувач (тімлід, або розробник), система |
| Передумови: | - Користувач не має облікового запису в системі |
| Результат: | Створений обліковий запис користувача (через інформацію, отриману з GitHub профілю користувача) |
| Виключні ситуації: | Користувач не має облікового запису GitHub (У даному випадку помилки обробляються самим GitHubApi) Обліковий запис (створений за допомогою GitHubApi) вже існує в системі UserAlreadyExistsException |
| ID | UserLogIn |
|---|---|
| Назва: | Авторизувати користувача (Log In) |
| Учасники: | Користувач (тімлід, або робітник), система |
| Передумови: | - Користувач зареєстрований у системі - Користувач не авторизований у системі |
| Результат: | Новий сеанс роботи користувача |
| Виключні ситуації: | У формі авторизації не заповнені одне, або більше полів NullReferenceException Користувач не зареєстрований у системі NullInstanceException Користувач ввів неправильний пароль WrongPasswordException |
| ID | UserGitHubLogIn |
|---|---|
| Назва: | Авторизувати користувача (Log In) за допомогою GitHubApi |
| Учасники: | Користувач (тімлід, або робітник), система |
| Передумови: | - Користувач зареєстрований у системі (за допомогою GitHubApi) - Користувач не авторизований у системі |
| Результат: | Новий сеанс роботи користувача |
| Виключні ситуації: | Користувач не зареєстрований у системі NullInstanceException Облікового запису GitHub не існує (У даному випадку помилки обробляються самим GitHubApi) |
| ID | EditUser |
|---|---|
| Назва: | Редагувати дані користувача |
| Учасники: | Користувач (адміністратор системи, тімлід, або робітник), система |
| Передумови: | - Користувач зареєстрований у системі з даними, введеним при реєстрації (що б змінити дані користувача, який реєструвався за допомогою GitHubApi, йому потрібно змінити ці дані у самому GitHub) - Користувач бажає змінити дані облікового запису - Користувач авторизований у системі |
| Результат: | Користувач має відредагований профіль |
| Виключні ситуації: | Користувач змінив пароль на інший, який не відповідає всім вимогам "надійного паролю" (A-Z, a-z, 0-9, !-*, мінімум 8 символів) NotStrongPasswordException Користувач змінив дані у будь-якому полі на пусті (null) NullReferenceException |
| ID | CreateTask |
|---|---|
| Назва: | Створити завдання |
| Учасники: | Користувач (тімлід, або робітник), система |
| Передумови: | - Користувач авторизований - Користувач обрав проект |
| Результат: | Завдання створене |
| Виключні ситуації: | У формі створення завдання не заповнені обов'язкові поля NoEssentialDataException |
| ID | EditTask |
|---|---|
| Назва: | Редагувати завдання |
| Учасники: | Користувач (тімлід, або робітник), система |
| Передумови: | - Користувач авторизований - Користувач обрав завдання |
| Результат: | Завдання відредаговане |
| Виключні ситуації: | У формі редагування завдання не заповнені обов'язкові поля NoEssentialDataException Під час редагування, завдання було видалено TaskNotExistException |
| ID | DeleteTask |
|---|---|
| Назва: | Видалити завдання |
| Учасники: | Користувач (тімлід, або робітник), система |
| Передумови: | - Користувач авторизований - Користувач обрав завдання |
| Результат: | Завдання видалене |
| Виключні ситуації: | Користувач натиснув кнопку "Скасувати" CancelException Користувач не має прав на видалення цього завдання AccessDeniedException |
| ID | FilterTask |
|---|---|
| Назва: | Відфільтрувати завдання |
| Учасники: | Користувач (тімлід, або робітник), система |
| Передумови: | - Користувач авторизований - Користувач обрав проєкт |
| Результат: | Відфільтровані завдання |
| Виключні ситуації: | У проєкті нема жодних завдань NoTasksException |
| ID | CommentTask |
|---|---|
| Назва: | Коментувати завдання |
| Учасники: | Користувач (тімлід, або робітник), система |
| Передумови: | - Користувач авторизований - Користувач обрав проект - Користувач обрав завдання |
| Результат: | Коментар до завдання |
| Виключні ситуації: | Під час написання коментарію завдання було видалене TaskNoExistException Користувач скасував операцію CancelCommentException |
| ID | CreateProject |
|---|---|
| Назва: | Створити проєкт |
| Учасники: | Користувач (тімлід), система |
| Передумови: | - Користувач авторизований |
| Результат: | Новий проєкт |
| Виключні ситуації: | Проєкт з таким іменем вже створений NotUniqueProjectName |
| ID | DeleteProject |
|---|---|
| Назва: | Видалити проєкт |
| Учасники: | Користувач (тімлід), система |
| Передумови: | - Проєкт не був видалений до цього |
| Результат: | Проєкт є видалений |
| Виключні ситуації: | Користувач не проходить перевірку на підтвердження вибору (Captcha) NotConfirmedActionException Користувач натиснув кнопку скасувати CancelException |
| ID | AddMember |
|---|---|
| Назва: | Додати робітника до проєкту |
| Учасники: | Користувач (тімлід), система |
| Передумови: | - Користувач авторизований - Користувач обрав проект - Користувач має необхідні права доступу до функціоналу системи |
| Результат: | Користувач стає учасником проєкту |
| Виключні ситуації: | Такого користувача не існує UserNotExistException Користувач вже є учасником проєкту UserAlreadyProjectMemberException |
| ID | DeleteMember |
|---|---|
| Назва: | Видалити робітника з проєкту |
| Учасники: | Користувач (тімлід), система |
| Передумови: | - Користувач авторизований - Користувач має необхідні права доступу до функціоналу системи - Існують інші учасники проекту |
| Результат: | Користувач більше не учасник проєкту |
| Виключні ситуації: | Натиснута кнопка "Скасувати" CancelDeleteMemberException Користувач не є робітником проєкту UserIsNotProjectMemberException |
| ID | CreateSprint |
|---|---|
| Назва: | Створити [Sprint] |
| Учасники: | Користувач (тімлід), система |
| Передумови: | - Користувач авторизований - Попередній Спрінт вже закінчився |
| Результат: | Спринт створений |
| Виключні ситуації: | Номер/назва Спрінта не є унікальною NotUniqueSpringNameException Натиснута кнопка "Скасувати" CancelException |
| ID | FinishSprint |
|---|---|
| Назва: | Закінчити [Sprint] |
| Учасники: | Користувач (тімлід), система |
| Передумови: | - Користувач авторизований - Поточний Спрінт вже наближається до кінця |
| Результат: | Спрінт закінчений |
| Виключні ситуації: | Користувач не проходить перевірку на підтвердження вибору (Captcha) NotConfirmedActionException Натиснута кнопка "Скасувати" CancelException |
| ID | BanUser |
|---|---|
| Назва: | Блокувати користувача |
| Учасники: | Користувач (адміністратор системи, тімлід, або робітник), система |
| Передумови: | - Користувач порушив угоди використання програмного забезпечення - Забезпечення безпеки системи |
| Результат: | Блокування користувача |
| Виключні ситуації: | Користувача вже заблоковано UserIsBannedException Користувача з введеними даними не існує NullInstanceException |
| ID | UnBanUser |
|---|---|
| Назва: | Розблокувати користувача |
| Учасники: | Користувач (адміністратор системи, тімлід, або робітник), система |
| Передумови: | - Користувач заблокований |
| Результат: | Розблокування профілю користувача |
| Виключні ситуації: | Користувача вже розблоковано UserIsUnBannedException Користувача з введеними даними не існує NullInstanceException |
| ID | UserSupport |
|---|---|
| Назва: | Вирішити проблему користувача |
| Учасники: | Користувач (адміністратор системи, тімлід, або робітник), система |
| Передумови: | - Користувач бажає написати повідомлення до технічної підтримки |
| Результат: | Вирішення проблеми користувача |
| Виключні ситуації: | Користувач не авторизований в системі UserIsNotLoggedInException |