From efe128fd596d1b64a77c24858572f16872f326d0 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Sun, 24 Mar 2024 18:37:14 +0200 Subject: [PATCH 1/5] =?UTF-8?q?=D0=BB=D0=B0=D0=B1=20=E2=84=962:=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0=D0=B2=20=D0=BE=D0=BF=D0=B8=D1=81=20=D1=81?= =?UTF-8?q?=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D0=B8=20=D0=B7=D0=B0=20=D0=BA?= =?UTF-8?q?=D1=80=D0=B8=D1=82=D0=B5=D1=80=D1=96=D1=94=D0=BC=20=D1=84=D1=83?= =?UTF-8?q?=D0=BD=D0=BA=D1=86=D1=96=D0=BE=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/requirements/stakeholders-needs.md | 39 ++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md index ffc98a7..d805095 100644 --- a/docs/requirements/stakeholders-needs.md +++ b/docs/requirements/stakeholders-needs.md @@ -67,7 +67,44 @@ ## Функціональність -*[Functionality (функциональні вимоги)]* +Наша система спрямована, в першу чергу, на взаємодію з користувачами. + +***Користувач** - це особа, що взаємодіє із системою.* + +Cистема розділяє користувачів на дві категорії: +- гість +- авторизований користувач + +***Гість** - це користувач, що не пройшов ідентифікацію в системі. Такого користувача не можна зіставити з жодним обліковим записом.* + +Гість може: +- створити обліковий запис +- пройти ідентифікацію в системі +- пройти анонімне опитування + +***Зареєстрований користувач** - це користувач, котрий успішно пройшов ідентифікацію в системі. Такого користувача можна однозначно зіставити з обліковим записом, що наявний у системі.* + +Зареєстрований користувач може: +- редагувати властивості свого облікового запису +- видалити свій обліковий запис +- скинути дані про ідентицікацію в системі +- створити опитування +- відредагувати своє опитування +- видалити своє опитування +- призупинити своє опитування +- продовжити своє опитування +- переглянути властивості свого опитування +- переглянути результати свого опитування +- пройти анонімне опитування +- пройти поіменне опитування + +*[Респондент](https://slovnyk.ua/index.php?swrd=%D1%80%D0%B5%D1%81%D0%BF%D0%BE%D0%BD%D0%B4%D0%B5%D0%BD%D1%82) - той, хто відповідає на питання анкети; опитуваний.* + +***Опитування** - це перелік запитань, кожне з яких передбачає обов'язкову або необов'язкову відповідь. Кожна відповідь має визначений тип.* + +***Анонімне опитування** - це опитування, відповідь на яке може не містити інформації про обліковий запис респондента (*респондент все одно може вирішити надати таку інформацію).* + +***Поіменне опитування** - це опитування, відповідь на яке обов'язково містить дані про обліковий запис респондента.* ## Практичність From 05f9376a908f74c86c9c8d9f42feafd4f3650001 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Thu, 4 Apr 2024 16:11:33 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=BB=D0=B0=D0=B12:=20=D0=B4=D0=BE=D0=B4?= =?UTF-8?q?=D0=B0=D0=B2=20=D0=BF=D1=96=D0=B4=D1=82=D1=80=D0=B8=D0=BC=D0=BA?= =?UTF-8?q?=D1=83=20=D0=B0=D1=80=D0=B3=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D1=83?= =?UTF-8?q?=20--destination=20=D1=83=20=D0=BF=D1=80=D0=BE=D0=B3=D1=80?= =?UTF-8?q?=D0=B0=D0=BC=D1=83=20=D0=B4=D0=BB=D1=8F=20=D0=B3=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D1=80=D0=B0=D1=86=D1=96=D1=97=20=D1=82=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D1=86=D1=8C=20=D1=82=D0=B0=20=D0=BF=D0=BE=D0=BA=D1=80?= =?UTF-8?q?=D0=B0=D1=89=D0=B8=D0=B2=20=D1=97=D1=97=20=D0=B2=D0=B8=D0=B2?= =?UTF-8?q?=D1=96=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/table-generator/convert.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/utils/table-generator/convert.py b/utils/table-generator/convert.py index edb798d..6fbce50 100755 --- a/utils/table-generator/convert.py +++ b/utils/table-generator/convert.py @@ -1,6 +1,7 @@ #!/bin/python3 import sys +import os # magic values NO = 0 @@ -26,7 +27,7 @@ def convert_usecase_v1(filename, data): merged_lines = [] for i in split_raw_lines: - if i[0] == "": + if i[0].replace(" ", "") == "": merged_lines[-1][1] += "
" + i[1] else: merged_lines.append(i) @@ -68,9 +69,10 @@ if __name__=="__main__": usecase_formatting = AUTO verbose = AUTO process_table_files = AUTO + file_output_path = None # 1 pass (argument harvest) - for i in sys.argv[1:]: + for n, i in enumerate(sys.argv[1:]): if i.startswith("-"): # записувати таблицю в файл if i in ["-f", "--file"]: @@ -96,11 +98,17 @@ if __name__=="__main__": elif i in ["-nv", "--no-verbose"]: verbose = NO + # дозволити обробку файлів .table elif i in ["-t", "--process-table"]: process_table_files = YES elif i in ["-nt", "--no-process-table"]: process_table_files = NO + # задає папку, в яку необхідно зберігати конвертовані таблиці + elif i in ["-d", "--destination"]: + file_output_path = sys.argv[n+2] + sys.argv.remove(sys.argv[n+2]) + # 2 pass (filename harvest) for i in sys.argv[1:]: if not i.startswith("-"): @@ -133,12 +141,17 @@ if __name__=="__main__": print(formatted_table_data) if write_to_file > AUTO: - open(name + ".table", 'w', encoding = "utf-8").write(formatted_table_data+"\n") + if file_output_path: + open(os.path.join(file_output_path, os.path.basename(name)) \ + + ".table", 'w', encoding = "utf-8") \ + .write(formatted_table_data+"\n") + else: + open(name + ".table", 'w', encoding = "utf-8").write(formatted_table_data+"\n") exit(0) for no, name in enumerate(files): - print(f"Converting {no+1}/{len(files)}") + print(f"Converting {no+1:02d}/{len(files)}: {name}") data = open(name, encoding = "utf-8").read() @@ -157,4 +170,9 @@ if __name__=="__main__": print(formatted_table_data) if write_to_file >= AUTO: - open(name + ".table", 'w', encoding = "utf-8").write(formatted_table_data+"\n") + if file_output_path: + open(os.path.join(file_output_path, os.path.basename(name)) \ + + ".table", 'w', encoding = "utf-8") \ + .write(formatted_table_data+"\n") + else: + open(name + ".table", 'w', encoding = "utf-8").write(formatted_table_data+"\n") From a53cdb334dbf58fed157924e2992e23d5ef11084 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Thu, 4 Apr 2024 16:12:45 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=BB=D0=B0=D0=B12:=20=D0=B4=D0=BE=D0=B4?= =?UTF-8?q?=D0=B0=D0=B2=2012=20=D1=84=D0=B0=D0=B9=D0=BB=D1=96=D0=B2=20use-?= =?UTF-8?q?case-=D1=96=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/table-generator/use-cases/account.create.uc | 10 ++++++++++ utils/table-generator/use-cases/account.delete.uc | 9 +++++++++ utils/table-generator/use-cases/account.modify.uc | 10 ++++++++++ .../table-generator/use-cases/user.create_survey.uc | 12 ++++++++++++ .../table-generator/use-cases/user.delete_survey.uc | 11 +++++++++++ .../use-cases/user.get_survey_result.uc | 9 +++++++++ utils/table-generator/use-cases/user.login.uc | 12 ++++++++++++ utils/table-generator/use-cases/user.logout.uc | 7 +++++++ .../table-generator/use-cases/user.modify_survey.uc | 12 ++++++++++++ utils/table-generator/use-cases/user.stat_survey.uc | 9 +++++++++ .../use-cases/user.take_anon_survey.uc | 11 +++++++++++ .../use-cases/user.take_named_survey.uc | 12 ++++++++++++ 12 files changed, 124 insertions(+) create mode 100644 utils/table-generator/use-cases/account.create.uc create mode 100644 utils/table-generator/use-cases/account.delete.uc create mode 100644 utils/table-generator/use-cases/account.modify.uc create mode 100644 utils/table-generator/use-cases/user.create_survey.uc create mode 100644 utils/table-generator/use-cases/user.delete_survey.uc create mode 100644 utils/table-generator/use-cases/user.get_survey_result.uc create mode 100644 utils/table-generator/use-cases/user.login.uc create mode 100644 utils/table-generator/use-cases/user.logout.uc create mode 100644 utils/table-generator/use-cases/user.modify_survey.uc create mode 100644 utils/table-generator/use-cases/user.stat_survey.uc create mode 100644 utils/table-generator/use-cases/user.take_anon_survey.uc create mode 100644 utils/table-generator/use-cases/user.take_named_survey.uc diff --git a/utils/table-generator/use-cases/account.create.uc b/utils/table-generator/use-cases/account.create.uc new file mode 100644 index 0000000..1d1a62c --- /dev/null +++ b/utils/table-generator/use-cases/account.create.uc @@ -0,0 +1,10 @@ +Назва | Створити обліковий запис +Учасники | Користувач, система +Передумови | Відсутні +Результат | Обліковий запис користувача +Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму + | 001.002 Ідентичний псевдонім вже існує +Основний сценарій | 1. Користувач вводить бажаний псевдонім у поле вводу псевдоніму + | 2. Користувач вводить пароль у поле вводу паролю + | 3. Користувач натискає на кнопку створення облікового запису + | 4. Система створює обліковий запис користувача (можливі 001.001, 001.002) diff --git a/utils/table-generator/use-cases/account.delete.uc b/utils/table-generator/use-cases/account.delete.uc new file mode 100644 index 0000000..e600c21 --- /dev/null +++ b/utils/table-generator/use-cases/account.delete.uc @@ -0,0 +1,9 @@ +Назва | Видалити обліковий запис +Учасники | Користувач, система +Передумови | Користувач ідентифікований в системі +Результат | Відсутність облікового запису користувача +Виключні ситуації | 001.005 Користувач не ідентифікований +Основний сценарій | 1. Користувач натискає на кнопку видалення облікового запису + | 2. Система виводить кнопку-запит на підтвердження видалення облікового запису + | 3. Користувач натискає на кнопку підтвердження видалення облікового запису + | 4. Система видаляє обліковий запис (можлива 001.005) diff --git a/utils/table-generator/use-cases/account.modify.uc b/utils/table-generator/use-cases/account.modify.uc new file mode 100644 index 0000000..f06c480 --- /dev/null +++ b/utils/table-generator/use-cases/account.modify.uc @@ -0,0 +1,10 @@ +Назва | Змінити властивості облікового запису +Учасники | Користувач, система +Передумови | Користувач ідентифікований в системі +Результат | Зміна властивостей облікового запису +Виключні ситуації | 001.005 Користувач не ідентифікований +Основний сценарій | 1. Користувач натискає на кнопку редагування облікового запису + | 2. Система виводить інтерфейс для редагування облікового запису (можлива 001.005) + | 3. Користувач вказує бажані зміни властивостей облікового запису + | 4. Користувач натискає на кнопку внесення змін до властивостей облікового запису + | 5. Система змінює властивості облікового запису diff --git a/utils/table-generator/use-cases/user.create_survey.uc b/utils/table-generator/use-cases/user.create_survey.uc new file mode 100644 index 0000000..89f0f24 --- /dev/null +++ b/utils/table-generator/use-cases/user.create_survey.uc @@ -0,0 +1,12 @@ +Назва | Створити опитування +Учасники | Користувач, система +Передумови | Користувач ідентифікований в системі +Результат | Створене опитування +Виключні ситуації | 001.005 Користувач не ідентифікований + | 001.007 Користувач ввів неприпустимі символи в назві опитування +Основний сценарій | 1. Користувач переходить на сторінку створення опитування (можлива 001.005) + | 2. Система виводить інтерфейс створення опитування + | 3. Користувач задає інформацію про запитання та тип опитування + | 4. Користувач натискає кнопку збереження опитування + | 5. Система створює опитування (можлива 001.007) + | 6. Система виводить посилання на проходження опитування diff --git a/utils/table-generator/use-cases/user.delete_survey.uc b/utils/table-generator/use-cases/user.delete_survey.uc new file mode 100644 index 0000000..fca0170 --- /dev/null +++ b/utils/table-generator/use-cases/user.delete_survey.uc @@ -0,0 +1,11 @@ +Назва | Видалити опитування +Учасники | Користувач, система +Передумови | Користувач ідентифікований в системі, користувач є власником опитування +Результат | Відсутність опитування +Виключні ситуації | 001.005 Користувач не ідентифікований + | 001.006 Запитане опитування не існує + | 001.008 Користувач не є власником опитування +Основний сценарій | 1. Користувач натискає на кнопку видалення опитування + | 2. Система виводить запит на підтвердження видалення опитування + | 3. Користувач натискає на кнопку підтвердження видалення опитування + | 4. Система видаляє опитування (можливі 001.005, 001.006, 001.008) diff --git a/utils/table-generator/use-cases/user.get_survey_result.uc b/utils/table-generator/use-cases/user.get_survey_result.uc new file mode 100644 index 0000000..2379c63 --- /dev/null +++ b/utils/table-generator/use-cases/user.get_survey_result.uc @@ -0,0 +1,9 @@ +Назва | Переглянути відповіді на опитування +Учасники | Користувач, система +Передумови | Користувач ідентифікований в системі, користувач є власником опитування +Результат | Інформація про відповіді на опитування +Виключні ситуації | 001.005 Користувач не ідентифікований + | 001.006 Запитане опитування не існує + | 001.008 Користувач не є власником опитування +Основний сценарій | 1. Користувач натискає на кнопку перегляду відповідей на опитування + | 2. Система виводить інформацію про відповіді на опитування (можливі 001.005, 001.006, 001.008) diff --git a/utils/table-generator/use-cases/user.login.uc b/utils/table-generator/use-cases/user.login.uc new file mode 100644 index 0000000..f0671ce --- /dev/null +++ b/utils/table-generator/use-cases/user.login.uc @@ -0,0 +1,12 @@ +Назва | Пройти ідентифікацію в системі +Учасники | Користувач, система +Передумови | Користувач має обліковий запис +Результат | Користувач ідентифікований в системі +Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму + | 001.003 Користувач ввів псевдонім, якого не існує в системі + | 001.004 Користувач ввів неправильний пароль до облікового запису +Основний сценарій | 1. Користувач вводить псевдонім у поле вводу псевдоніму + | 2. Користувач вводить пароль у поле вводу паролю + | 3. Користувач натискає кнопку ідентифікації + | 4. Система ідентифікує користувача (можливі 001.001, 001.003, 001.004) + diff --git a/utils/table-generator/use-cases/user.logout.uc b/utils/table-generator/use-cases/user.logout.uc new file mode 100644 index 0000000..1c6ea4c --- /dev/null +++ b/utils/table-generator/use-cases/user.logout.uc @@ -0,0 +1,7 @@ +Назва | Скинути дані про ідентифікацію в системі +Учасники | Користувач, система +Передумови | Користувач ідентифікований в системі +Результат | Користувач не ідентифікований в системі +Виключні ситуації | 001.005 Користувач не ідентифікований +Основний сценарій | 1. Користувач натискає на кнопку виходу з облікового запису + | 2. Система скидає інформацію про ідентифікацію користувача (можлива 001.005) diff --git a/utils/table-generator/use-cases/user.modify_survey.uc b/utils/table-generator/use-cases/user.modify_survey.uc new file mode 100644 index 0000000..1192b77 --- /dev/null +++ b/utils/table-generator/use-cases/user.modify_survey.uc @@ -0,0 +1,12 @@ +Назва | Редагувати опитування +Учасники | Користувач, система +Передумови | Користувач ідентифікований в системі, користувач є власником опитування +Результат | Змінене опитування +Виключні ситуації | 001.005 Користувач не ідентифікований + | 001.006 Запитане опитування не існує + | 001.008 Користувач не є власником опитування +Основний сценарій | 1. Користувач переходить на сторінку редагування опитування + | 2. Система виводить інтерфейс редагування опитування (можливі 001.005, 001.006, 001.008) + | 3. Користувач задає інформацію про зміни в опитуванні + | 4. Користувач натискає кнопку збереження змін в опитуванні + | 5. Система змінює опитування diff --git a/utils/table-generator/use-cases/user.stat_survey.uc b/utils/table-generator/use-cases/user.stat_survey.uc new file mode 100644 index 0000000..54a51b4 --- /dev/null +++ b/utils/table-generator/use-cases/user.stat_survey.uc @@ -0,0 +1,9 @@ +Назва | Переглянути властивості опитування +Учасники | Користувач, система +Передумови | Користувач ідентифікований в системі, користувач є власником опитування +Результат | Інформація про властивості опитування +Виключні ситуації | 001.005 Користувач не ідентифікований + | 001.006 Запитане опитування не існує + | 001.008 Користувач не є власником опитування +Основний сценарій | 1. Користувач натискає на кнопку перегляду інформації про опитування + | 2. Система виводить інформацію про опитування (можливі 001.005, 001.006, 001.008) diff --git a/utils/table-generator/use-cases/user.take_anon_survey.uc b/utils/table-generator/use-cases/user.take_anon_survey.uc new file mode 100644 index 0000000..7033f14 --- /dev/null +++ b/utils/table-generator/use-cases/user.take_anon_survey.uc @@ -0,0 +1,11 @@ +Назва | Пройти анонімне опитування +Учасники | Користувач, система +Передумови | Відсутні +Результат | Запис відповідей на опитування +Виключні ситуації | 001.006 Запитане опитування не існує +Основний сценарій | 1. Користувач переходить на сторінку проходження опитування + | 2. Система виводить перелік запитань опитування (можлива 001.006) + | 3. Користувач вводить відповіді на запитання + | 4. Користувач натискає кнопку надсилання відповідей + | 5. Система записує відповіді на опитування (можлива 001.006) + | 6. Система виводить прощальне повідомлення diff --git a/utils/table-generator/use-cases/user.take_named_survey.uc b/utils/table-generator/use-cases/user.take_named_survey.uc new file mode 100644 index 0000000..e897f0a --- /dev/null +++ b/utils/table-generator/use-cases/user.take_named_survey.uc @@ -0,0 +1,12 @@ +Назва | Пройти поіменне опитування +Учасники | Користувач, система +Передумови | Користувач ідентифікований в системі +Результат | Запис відповідей на опитування та відомості про користувача +Виключні ситуації | 001.005 Користувач не ідентифікований + | 001.006 Запитане опитування не існує +Основний сценарій | 1. Користувач переходить на сторінку проходження опитування + | 2. Система виводить перелік запитань опитування (можливі 001.005, 001.006) + | 3. Користувач вводить відповіді на запитання + | 4. Користувач натискає кнопку надсилання відповідей + | 5. Система записує відповіді на опитування та відомості про користувача (можлива 001.006) + | 6. Система виводить прощальне повідомлення From f2751a8604f2a64e4d2913a8c8244e676a77239a Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Thu, 4 Apr 2024 16:13:40 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=BB=D0=B0=D0=B12:=20=D0=B4=D0=BE=D0=B4?= =?UTF-8?q?=D0=B0=D0=B2=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=B7=D1=80=D1=83=D1=87=D0=BD=D1=96=D1=88?= =?UTF-8?q?=D0=BE=D1=97=20=D1=80=D0=BE=D0=B1=D0=BE=D1=82=D0=B8=20=D0=B7=20?= =?UTF-8?q?use-case-=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D1=8F=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/table-generator/list-exceptions.sh | 5 +++++ utils/table-generator/update-tables.sh | 4 ++++ 2 files changed, 9 insertions(+) create mode 100755 utils/table-generator/list-exceptions.sh create mode 100755 utils/table-generator/update-tables.sh diff --git a/utils/table-generator/list-exceptions.sh b/utils/table-generator/list-exceptions.sh new file mode 100755 index 0000000..2ed0457 --- /dev/null +++ b/utils/table-generator/list-exceptions.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +grep -E '\|\ [0-9]{3}\.[0-9]{3}' use-cases/*.uc \ + | cut -d '|' -f 2 \ + | sort | uniq -c diff --git a/utils/table-generator/update-tables.sh b/utils/table-generator/update-tables.sh new file mode 100755 index 0000000..20a2d4a --- /dev/null +++ b/utils/table-generator/update-tables.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +mkdir -p tables/ +./convert.py use-cases/* -nv -d tables/ From 5da6368aaed6ca57b790567b3e47369b7e8c01b3 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Thu, 4 Apr 2024 16:15:19 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=BB=D0=B0=D0=B12:=20=D0=B4=D0=BE=D0=B4?= =?UTF-8?q?=D0=B0=D0=B2=20=D0=BF=D0=B0=D0=BF=D0=BA=D1=83=20=D0=B3=D0=BE?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=D0=B8=D1=85=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D1=86=D1=8C=20use-case-=D1=96=D0=B2=20=D0=B4=D0=BE=20.gitignor?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 6704566..4738421 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,6 @@ dist # TernJS port file .tern-port + +# Generated tables for use-cases +utils/table-generator/tables/