# Модель прецедентів
# Загальна схема
# Робітник
# Тімлід
# Адміністратор системи
# Сценарії використання
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 |