forked from hasslesstech/edu-dis-labs
оновлення гілки
This commit is contained in:
commit
f5abbf5274
|
@ -102,3 +102,6 @@ dist
|
|||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
# Generated tables for use-cases
|
||||
utils/table-generator/tables/
|
||||
|
|
|
@ -105,7 +105,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) - той, хто відповідає на питання анкети; опитуваний.*
|
||||
|
||||
***Опитування** - це перелік запитань, кожне з яких передбачає обов'язкову або необов'язкову відповідь. Кожна відповідь має визначений тип.*
|
||||
|
||||
***Анонімне опитування** - це опитування, відповідь на яке може не містити інформації про обліковий запис респондента (*респондент все одно може вирішити надати таку інформацію).*
|
||||
|
||||
***Поіменне опитування** - це опитування, відповідь на яке обов'язково містить дані про обліковий запис респондента.*
|
||||
|
||||
## Практичність
|
||||
|
||||
|
|
|
@ -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] += "<br>" + 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:
|
||||
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:
|
||||
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")
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
grep -E '\|\ [0-9]{3}\.[0-9]{3}' use-cases/*.uc \
|
||||
| cut -d '|' -f 2 \
|
||||
| sort | uniq -c
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
mkdir -p tables/
|
||||
./convert.py use-cases/* -nv -d tables/
|
|
@ -0,0 +1,10 @@
|
|||
Назва | Створити обліковий запис
|
||||
Учасники | Користувач, система
|
||||
Передумови | Відсутні
|
||||
Результат | Обліковий запис користувача
|
||||
Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму
|
||||
| 001.002 Ідентичний псевдонім вже існує
|
||||
Основний сценарій | 1. Користувач вводить бажаний псевдонім у поле вводу псевдоніму
|
||||
| 2. Користувач вводить пароль у поле вводу паролю
|
||||
| 3. Користувач натискає на кнопку створення облікового запису
|
||||
| 4. Система створює обліковий запис користувача (можливі 001.001, 001.002)
|
|
@ -0,0 +1,9 @@
|
|||
Назва | Видалити обліковий запис
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач ідентифікований в системі
|
||||
Результат | Відсутність облікового запису користувача
|
||||
Виключні ситуації | 001.005 Користувач не ідентифікований
|
||||
Основний сценарій | 1. Користувач натискає на кнопку видалення облікового запису
|
||||
| 2. Система виводить кнопку-запит на підтвердження видалення облікового запису
|
||||
| 3. Користувач натискає на кнопку підтвердження видалення облікового запису
|
||||
| 4. Система видаляє обліковий запис (можлива 001.005)
|
|
@ -0,0 +1,10 @@
|
|||
Назва | Змінити властивості облікового запису
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач ідентифікований в системі
|
||||
Результат | Зміна властивостей облікового запису
|
||||
Виключні ситуації | 001.005 Користувач не ідентифікований
|
||||
Основний сценарій | 1. Користувач натискає на кнопку редагування облікового запису
|
||||
| 2. Система виводить інтерфейс для редагування облікового запису (можлива 001.005)
|
||||
| 3. Користувач вказує бажані зміни властивостей облікового запису
|
||||
| 4. Користувач натискає на кнопку внесення змін до властивостей облікового запису
|
||||
| 5. Система змінює властивості облікового запису
|
|
@ -0,0 +1,12 @@
|
|||
Назва | Створити опитування
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач ідентифікований в системі
|
||||
Результат | Створене опитування
|
||||
Виключні ситуації | 001.005 Користувач не ідентифікований
|
||||
| 001.007 Користувач ввів неприпустимі символи в назві опитування
|
||||
Основний сценарій | 1. Користувач переходить на сторінку створення опитування (можлива 001.005)
|
||||
| 2. Система виводить інтерфейс створення опитування
|
||||
| 3. Користувач задає інформацію про запитання та тип опитування
|
||||
| 4. Користувач натискає кнопку збереження опитування
|
||||
| 5. Система створює опитування (можлива 001.007)
|
||||
| 6. Система виводить посилання на проходження опитування
|
|
@ -0,0 +1,11 @@
|
|||
Назва | Видалити опитування
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач ідентифікований в системі, користувач є власником опитування
|
||||
Результат | Відсутність опитування
|
||||
Виключні ситуації | 001.005 Користувач не ідентифікований
|
||||
| 001.006 Запитане опитування не існує
|
||||
| 001.008 Користувач не є власником опитування
|
||||
Основний сценарій | 1. Користувач натискає на кнопку видалення опитування
|
||||
| 2. Система виводить запит на підтвердження видалення опитування
|
||||
| 3. Користувач натискає на кнопку підтвердження видалення опитування
|
||||
| 4. Система видаляє опитування (можливі 001.005, 001.006, 001.008)
|
|
@ -0,0 +1,9 @@
|
|||
Назва | Переглянути відповіді на опитування
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач ідентифікований в системі, користувач є власником опитування
|
||||
Результат | Інформація про відповіді на опитування
|
||||
Виключні ситуації | 001.005 Користувач не ідентифікований
|
||||
| 001.006 Запитане опитування не існує
|
||||
| 001.008 Користувач не є власником опитування
|
||||
Основний сценарій | 1. Користувач натискає на кнопку перегляду відповідей на опитування
|
||||
| 2. Система виводить інформацію про відповіді на опитування (можливі 001.005, 001.006, 001.008)
|
|
@ -0,0 +1,12 @@
|
|||
Назва | Пройти ідентифікацію в системі
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач має обліковий запис
|
||||
Результат | Користувач ідентифікований в системі
|
||||
Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму
|
||||
| 001.003 Користувач ввів псевдонім, якого не існує в системі
|
||||
| 001.004 Користувач ввів неправильний пароль до облікового запису
|
||||
Основний сценарій | 1. Користувач вводить псевдонім у поле вводу псевдоніму
|
||||
| 2. Користувач вводить пароль у поле вводу паролю
|
||||
| 3. Користувач натискає кнопку ідентифікації
|
||||
| 4. Система ідентифікує користувача (можливі 001.001, 001.003, 001.004)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
Назва | Скинути дані про ідентифікацію в системі
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач ідентифікований в системі
|
||||
Результат | Користувач не ідентифікований в системі
|
||||
Виключні ситуації | 001.005 Користувач не ідентифікований
|
||||
Основний сценарій | 1. Користувач натискає на кнопку виходу з облікового запису
|
||||
| 2. Система скидає інформацію про ідентифікацію користувача (можлива 001.005)
|
|
@ -0,0 +1,12 @@
|
|||
Назва | Редагувати опитування
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач ідентифікований в системі, користувач є власником опитування
|
||||
Результат | Змінене опитування
|
||||
Виключні ситуації | 001.005 Користувач не ідентифікований
|
||||
| 001.006 Запитане опитування не існує
|
||||
| 001.008 Користувач не є власником опитування
|
||||
Основний сценарій | 1. Користувач переходить на сторінку редагування опитування
|
||||
| 2. Система виводить інтерфейс редагування опитування (можливі 001.005, 001.006, 001.008)
|
||||
| 3. Користувач задає інформацію про зміни в опитуванні
|
||||
| 4. Користувач натискає кнопку збереження змін в опитуванні
|
||||
| 5. Система змінює опитування
|
|
@ -0,0 +1,9 @@
|
|||
Назва | Переглянути властивості опитування
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач ідентифікований в системі, користувач є власником опитування
|
||||
Результат | Інформація про властивості опитування
|
||||
Виключні ситуації | 001.005 Користувач не ідентифікований
|
||||
| 001.006 Запитане опитування не існує
|
||||
| 001.008 Користувач не є власником опитування
|
||||
Основний сценарій | 1. Користувач натискає на кнопку перегляду інформації про опитування
|
||||
| 2. Система виводить інформацію про опитування (можливі 001.005, 001.006, 001.008)
|
|
@ -0,0 +1,11 @@
|
|||
Назва | Пройти анонімне опитування
|
||||
Учасники | Користувач, система
|
||||
Передумови | Відсутні
|
||||
Результат | Запис відповідей на опитування
|
||||
Виключні ситуації | 001.006 Запитане опитування не існує
|
||||
Основний сценарій | 1. Користувач переходить на сторінку проходження опитування
|
||||
| 2. Система виводить перелік запитань опитування (можлива 001.006)
|
||||
| 3. Користувач вводить відповіді на запитання
|
||||
| 4. Користувач натискає кнопку надсилання відповідей
|
||||
| 5. Система записує відповіді на опитування (можлива 001.006)
|
||||
| 6. Система виводить прощальне повідомлення
|
|
@ -0,0 +1,12 @@
|
|||
Назва | Пройти поіменне опитування
|
||||
Учасники | Користувач, система
|
||||
Передумови | Користувач ідентифікований в системі
|
||||
Результат | Запис відповідей на опитування та відомості про користувача
|
||||
Виключні ситуації | 001.005 Користувач не ідентифікований
|
||||
| 001.006 Запитане опитування не існує
|
||||
Основний сценарій | 1. Користувач переходить на сторінку проходження опитування
|
||||
| 2. Система виводить перелік запитань опитування (можливі 001.005, 001.006)
|
||||
| 3. Користувач вводить відповіді на запитання
|
||||
| 4. Користувач натискає кнопку надсилання відповідей
|
||||
| 5. Система записує відповіді на опитування та відомості про користувача (можлива 001.006)
|
||||
| 6. Система виводить прощальне повідомлення
|
Loading…
Reference in New Issue