Compare commits
	
		
			No commits in common. "master" and "shmuliar-use-case" have entirely different histories.
		
	
	
		
			master
			...
			shmuliar-u
		
	
		
@ -102,8 +102,8 @@ module.exports = {
 | 
			
		||||
    // editLinkText: 'Ви можете покращити цю сторінку'
 | 
			
		||||
 | 
			
		||||
  },
 | 
			
		||||
  title: 'Xpertise',
 | 
			
		||||
  description: 'Лабораторні роботи з дисципліни "Організація баз даних"',
 | 
			
		||||
  title: 'Expertise',
 | 
			
		||||
  description: 'Лабораторні роботи з дисципліни "Розподілені інформаційні системи"',
 | 
			
		||||
  configureWebpack: {
 | 
			
		||||
    resolve: {
 | 
			
		||||
      alias: {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,11 @@
 | 
			
		||||
# Проєктування бази даних
 | 
			
		||||
# Проєктування системи
 | 
			
		||||
 | 
			
		||||
## BE модель
 | 
			
		||||
 | 
			
		||||
Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/). 
 | 
			
		||||
 | 
			
		||||
В markdown-файлі використовується опис діаграми
 | 
			
		||||
 | 
			
		||||
```md
 | 
			
		||||
 | 
			
		||||
<center style="
 | 
			
		||||
    border-radius:4px;
 | 
			
		||||
@ -11,58 +16,34 @@
 | 
			
		||||
 | 
			
		||||
@startuml
 | 
			
		||||
 | 
			
		||||
entity Account <<ENTITY>>
 | 
			
		||||
entity Account.username <<TEXT>>
 | 
			
		||||
entity Account.password <<TEXT>>
 | 
			
		||||
participant Client
 | 
			
		||||
 | 
			
		||||
entity Survey <<ENTITY>>
 | 
			
		||||
entity Survey.name <<TEXT>>
 | 
			
		||||
entity Survey.duration <<TEXT>>
 | 
			
		||||
entity Survey.isPaused <<BOOLEAN>>
 | 
			
		||||
entity Survey.isNamed <<BOOLEAN>>
 | 
			
		||||
participant SR as "Service Registry"
 | 
			
		||||
 | 
			
		||||
entity Question <<ENTITY>>
 | 
			
		||||
entity Question.text <<TEXT>>
 | 
			
		||||
participant Service
 | 
			
		||||
 | 
			
		||||
entity Responce <<ENTITY>>
 | 
			
		||||
entity Responce.value <<TEXT>>
 | 
			
		||||
Service -> SR : register
 | 
			
		||||
SR -> SR
 | 
			
		||||
SR --> Service
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
entity Link <<ENTITY>>
 | 
			
		||||
entity Link.usageLimit <<INT>>
 | 
			
		||||
entity Link.responceLimit <<INT>>
 | 
			
		||||
entity Link.uses <<INT>>
 | 
			
		||||
entity Link.responces <<INT>>
 | 
			
		||||
entity Link.path <<TEXT>>
 | 
			
		||||
SR -> Service: heartbeat
 | 
			
		||||
SR <-- Service: health
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
Account.username --* Account
 | 
			
		||||
Account.password --* Account
 | 
			
		||||
Client -> SR: find
 | 
			
		||||
Client <-- SR: service endpoint
 | 
			
		||||
Client -> Service: request
 | 
			
		||||
Client <-- Service: response
 | 
			
		||||
 | 
			
		||||
Survey.name --* Survey
 | 
			
		||||
Survey.duration --* Survey
 | 
			
		||||
Survey.isPaused --* Survey
 | 
			
		||||
Survey.isNamed --* Survey
 | 
			
		||||
 | 
			
		||||
Link.usageLimit -u-* Link
 | 
			
		||||
Link.responceLimit -u-* Link
 | 
			
		||||
Link.uses --* Link
 | 
			
		||||
Link.responces --* Link
 | 
			
		||||
Link.path -u-* Link
 | 
			
		||||
 | 
			
		||||
Responce.value -u-* Responce
 | 
			
		||||
 | 
			
		||||
Question.text -u-* Question
 | 
			
		||||
 | 
			
		||||
Account "1,1" -- "0,*" Survey
 | 
			
		||||
Survey "1,1" -- "0,*" Question
 | 
			
		||||
Question "1,1" -r- "0,*" Responce
 | 
			
		||||
Account "0,1" -r- "0,*" Responce
 | 
			
		||||
Link "0,*" -- "1,1" Survey
 | 
			
		||||
 | 
			
		||||
@enduml
 | 
			
		||||
 | 
			
		||||
</center>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## ER-модель
 | 
			
		||||
яка буде відображена наступним чином
 | 
			
		||||
 | 
			
		||||
<center style="
 | 
			
		||||
    border-radius:4px;
 | 
			
		||||
@ -73,58 +54,33 @@ Link "0,*" -- "1,1" Survey
 | 
			
		||||
 | 
			
		||||
@startuml
 | 
			
		||||
 | 
			
		||||
entity Account <<ENTITY>> {
 | 
			
		||||
    id:INT
 | 
			
		||||
    username:CHAR(64)
 | 
			
		||||
    password:CHAR(256)
 | 
			
		||||
}
 | 
			
		||||
    @startuml
 | 
			
		||||
 | 
			
		||||
entity Responce <<ENTITY>> {
 | 
			
		||||
    id:INT
 | 
			
		||||
    value:CHAR(16384)
 | 
			
		||||
}
 | 
			
		||||
participant Client
 | 
			
		||||
 | 
			
		||||
entity Question <<ENTITY>> {
 | 
			
		||||
    id:INT
 | 
			
		||||
    text:CHAR(256)
 | 
			
		||||
}
 | 
			
		||||
participant SR as "Service Registry"
 | 
			
		||||
 | 
			
		||||
entity Survey <<ENTITY>> {
 | 
			
		||||
    id:INT
 | 
			
		||||
    name:CHAR(256)
 | 
			
		||||
    duration:CHAR(256)
 | 
			
		||||
    isPaused:BOOLEAN
 | 
			
		||||
    isNamed:BOOLEAN
 | 
			
		||||
}
 | 
			
		||||
participant Service
 | 
			
		||||
 | 
			
		||||
Service -> SR : register
 | 
			
		||||
SR -> SR
 | 
			
		||||
SR --> Service
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
SR -> Service: heartbeat
 | 
			
		||||
SR <-- Service: health
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
Client -> SR: find
 | 
			
		||||
Client <-- SR: service endpoint
 | 
			
		||||
Client -> Service: request
 | 
			
		||||
Client <-- Service: response
 | 
			
		||||
 | 
			
		||||
entity Link <<ENTITY>> {
 | 
			
		||||
    id:INT
 | 
			
		||||
    uses:INT
 | 
			
		||||
    responces:INT
 | 
			
		||||
    usageLimit:INT
 | 
			
		||||
    responceLimit:INT
 | 
			
		||||
    path:CHAR(32)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Responce "0,*" --> "1,1" Question
 | 
			
		||||
Question "0,*" --> "1,1" Survey
 | 
			
		||||
Survey "0,*" --> "1,1" Account
 | 
			
		||||
Link "0,*" --> "1,1" Survey
 | 
			
		||||
Responce "0,*" --> "0,1" Account
 | 
			
		||||
 | 
			
		||||
@enduml
 | 
			
		||||
 | 
			
		||||
</center>
 | 
			
		||||
 | 
			
		||||
## Реляційна схема
 | 
			
		||||
 | 
			
		||||
<center style="
 | 
			
		||||
    border-radius:4px;
 | 
			
		||||
    border: 1px solid #cfd7e6;
 | 
			
		||||
    box-shadow: 0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025);
 | 
			
		||||
    padding: 1em;"
 | 
			
		||||
>
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
</center>
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 49 KiB  | 
@ -93,33 +93,6 @@
 | 
			
		||||
| Виключні ситуації |                                                                                                                                                             001.005 Користувач не ідентифікований                                                                                                                                                              |
 | 
			
		||||
| Основний сценарій | 1. Користувач натискає на кнопку редагування облікового запису<br>2. Система виводить інтерфейс для редагування облікового запису (можлива 001.005)<br>3. Користувач вказує бажані зміни властивостей облікового запису<br>4. Користувач натискає на кнопку внесення змін до властивостей облікового запису<br>5. Система змінює властивості облікового запису |
 | 
			
		||||
 | 
			
		||||
|         ID        |                                                                                                                                                  SURVEY.LINK.CREATE                                                                                                                                                  |
 | 
			
		||||
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
 | 
			
		||||
|       Назва       |                                                                                                                                            Додати посилання на опитування                                                                                                                                            |
 | 
			
		||||
|      Учасники     |                                                                                                                                                 Користувач, система                                                                                                                                                  |
 | 
			
		||||
|     Передумови    |                                                                                                                                          Користувач авторизований у системі                                                                                                                                          |
 | 
			
		||||
|     Результат     |                                                                                                                                             Нове посилання на опитування                                                                                                                                             |
 | 
			
		||||
| Виключні ситуації |                                                                                            001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування                                                                                             |
 | 
			
		||||
| Основний сценарій | 1. Користувач натискає кнопку створення посилання на опитування<br>2. Система виводить налаштування для нового посилання (можливі 001.005, 001.006, 001.008)<br>3. Користувач вводить налаштування для нового посилання<br>4. Користувач натискає на кнопку створення посилання<br>5. Система створює нове посилання |
 | 
			
		||||
 | 
			
		||||
|         ID        |                                                                                                                          SURVEY.LINK.DELETE                                                                                                                          |
 | 
			
		||||
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
 | 
			
		||||
|       Назва       |                                                                                                                   Видалити посилання на опитування                                                                                                                   |
 | 
			
		||||
|      Учасники     |                                                                                                                         Користувач, система                                                                                                                          |
 | 
			
		||||
|     Передумови    |                                                                                                                  Користувач авторизований у системі                                                                                                                  |
 | 
			
		||||
|     Результат     |                                                                                                                  Видалення посилання на опитування                                                                                                                   |
 | 
			
		||||
| Виключні ситуації |                                                 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування<br>001.009 Запитане посилання на існує                                                 |
 | 
			
		||||
| Основний сценарій | 1. Користувач натискає кнопку видалення посилання<br>2. Система виводить кнопку підтвердження видалення посилання<br>3. Користувач натискає на кнопку підтвердження видалення посилання<br>4. Система видаляє посилання (можливі 001.005, 001.006, 001.008, 001.009) |
 | 
			
		||||
 | 
			
		||||
|         ID        |                                                                                                                                                                   SURVEY.LINK.MODIFY                                                                                                                                                                   |
 | 
			
		||||
|:-----------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
 | 
			
		||||
|       Назва       |                                                                                                                                                      Змінити властивості посилання на опитування                                                                                                                                                       |
 | 
			
		||||
|      Учасники     |                                                                                                                                                                  Користувач, система                                                                                                                                                                   |
 | 
			
		||||
|     Передумови    |                                                                                                                                                           Користувач авторизований у системі                                                                                                                                                           |
 | 
			
		||||
|     Результат     |                                                                                                                                                       Зміна властивостей посилання на опитування                                                                                                                                                       |
 | 
			
		||||
| Виключні ситуації |                                                                                          001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування<br>001.009 Запитане посилання на існує                                                                                          |
 | 
			
		||||
| Основний сценарій | 1. Користувач натискає кнопку редагування властивостей посилання<br>2. Система виводить налаштування для обраного посилання (можливі 001.005, 001.006, 001.008, 001.009)<br>3. Користувач вводить юажані зміни властивостей посилання<br>4. Користувач натискає на кнопку збереження властиностей посилання<br>5. Система змінює властивості посилання |
 | 
			
		||||
 | 
			
		||||
|         ID        |                                                                                                                                                                            USER.CREATE_SURVEY                                                                                                                                                                            |
 | 
			
		||||
|:-----------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
 | 
			
		||||
|       Назва       |                                                                                                                                                                           Створити опитування                                                                                                                                                                            |
 | 
			
		||||
@ -237,9 +210,6 @@ Cистема розділяє користувачів на дві катего
 | 
			
		||||
- створити опитування
 | 
			
		||||
- відредагувати своє опитування
 | 
			
		||||
- видалити своє опитування
 | 
			
		||||
- створити посилання на своє опитування
 | 
			
		||||
- редагувати властивості посилання на своє опитування
 | 
			
		||||
- видалити посилання на своє опитування
 | 
			
		||||
- призупинити своє опитування
 | 
			
		||||
- продовжити своє опитування
 | 
			
		||||
- переглянути властивості свого опитування
 | 
			
		||||
 | 
			
		||||
@ -1,113 +1,3 @@
 | 
			
		||||
# Реалізація інформаційного та програмного забезпечення
 | 
			
		||||
 | 
			
		||||
## SQL-скрипт для створення та початкового наповнення бази даних
 | 
			
		||||
 | 
			
		||||
```sql
 | 
			
		||||
-- MySQL Workbench Forward Engineering
 | 
			
		||||
 | 
			
		||||
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
 | 
			
		||||
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
 | 
			
		||||
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Schema mydb
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Schema mydb
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
 | 
			
		||||
USE `mydb` ;
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Account`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Account` (
 | 
			
		||||
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
			
		||||
  `username` CHAR(255) NOT NULL,
 | 
			
		||||
  `password` CHAR(255) NOT NULL,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
 | 
			
		||||
  UNIQUE INDEX `username_UNIQUE` (`username` ASC) VISIBLE)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Survey`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Survey` (
 | 
			
		||||
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
			
		||||
  `isPaused` TINYINT UNSIGNED NOT NULL,
 | 
			
		||||
  `isNamed` TINYINT UNSIGNED NOT NULL,
 | 
			
		||||
  `name` CHAR(255) NULL,
 | 
			
		||||
  `duration` CHAR(255) NULL,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
 | 
			
		||||
  CONSTRAINT `fk_Survey_Account1`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Account` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Question`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Question` (
 | 
			
		||||
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
			
		||||
  `Text` CHAR(255) NULL,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
 | 
			
		||||
  CONSTRAINT `fk_Question_Survey1`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Survey` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Response`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Response` (
 | 
			
		||||
  `id` INT UNSIGNED NULL AUTO_INCREMENT,
 | 
			
		||||
  `Value` VARCHAR(16384) NULL,
 | 
			
		||||
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  CONSTRAINT `fk_Response_Question`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Question` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION,
 | 
			
		||||
  CONSTRAINT `fk_Response_Account1`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Account` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Link`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Link` (
 | 
			
		||||
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
			
		||||
  `uses` INT NOT NULL,
 | 
			
		||||
  `responces` INT NOT NULL,
 | 
			
		||||
  `usageLimit` INT NULL,
 | 
			
		||||
  `responceLimit` INT NULL,
 | 
			
		||||
  `path` CHAR(32) NOT NULL,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  CONSTRAINT `fk_Link_Survey1`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Survey` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SET SQL_MODE=@OLD_SQL_MODE;
 | 
			
		||||
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
 | 
			
		||||
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
 | 
			
		||||
```
 | 
			
		||||
@ -17,9 +17,6 @@
 | 
			
		||||
    (<b>ACCOUNT.CREATE</b>\nСтворити обліковий запис) as CreateAccount
 | 
			
		||||
    (<b>ACCOUNT.DELETE</b>\nВидалити обліковий запис) as DeleteAccount
 | 
			
		||||
    (<b>ACCOUNT.MODIFY</b>\nЗмінити властивості облікового запису) as ModifyAccount
 | 
			
		||||
    (<b>SURVEY.LINK.CREATE</b>\nСтворити посилання на опитування) as CreateLink
 | 
			
		||||
    (<b>SURVEY.LINK.DELETE</b>\nВидалити посилання на опитування) as DeleteLink
 | 
			
		||||
    (<b>SURVEY.LINK.MODIFY</b>\nЗмінити властивості посилання на опитування) as ModifyLink
 | 
			
		||||
    (<b>USER.CREATE_SURVEY</b>\nСтворити опитування) as CreateSurvey
 | 
			
		||||
    (<b>USER.DELETE_SURVEY</b>\nВидалити опитування) as DeleteSurvey
 | 
			
		||||
    (<b>USER.GET_SURVEY_RESULT</b>\nПереглянути відповіді на опитування) as GetSurveyResult
 | 
			
		||||
@ -36,9 +33,6 @@
 | 
			
		||||
 | 
			
		||||
    AuthorisedUser -r-> ModifyAccount
 | 
			
		||||
    AuthorisedUser -u-> DeleteAccount
 | 
			
		||||
    AuthorisedUser -r-> CreateLink
 | 
			
		||||
    AuthorisedUser -l-> DeleteLink
 | 
			
		||||
    AuthorisedUser -u-> ModifyLink
 | 
			
		||||
    AuthorisedUser -u-> LogOut
 | 
			
		||||
    AuthorisedUser --> CreateSurvey
 | 
			
		||||
    AuthorisedUser -u-> DeleteSurvey
 | 
			
		||||
@ -86,15 +80,9 @@
 | 
			
		||||
    (<b>USER.STAT_SURVEY</b>\nПереглянути властивості опитування) as StatSurvey
 | 
			
		||||
    (<b>USER.TAKE_ANON_SURVEY</b>\nПройти анонімне опитування) as TakeAnonSurvey
 | 
			
		||||
    (<b>USER.TAKE_NAMED_SURVEY</b>\nПройти поіменне опитування) as TakeNamedSurvey
 | 
			
		||||
    (<b>SURVEY.LINK.CREATE</b>\nСтворити посилання на опитування) as CreateLink
 | 
			
		||||
    (<b>SURVEY.LINK.DELETE</b>\nВидалити посилання на опитування) as DeleteLink
 | 
			
		||||
    (<b>SURVEY.LINK.MODIFY</b>\nЗмінити властивості посилання на опитування) as ModifyLink
 | 
			
		||||
 | 
			
		||||
    AuthorisedUser -r-> ModifyAccount
 | 
			
		||||
    AuthorisedUser -u-> DeleteAccount
 | 
			
		||||
    AuthorisedUser -r-> CreateLink
 | 
			
		||||
    AuthorisedUser -l-> DeleteLink
 | 
			
		||||
    AuthorisedUser -u-> ModifyLink
 | 
			
		||||
    AuthorisedUser -u-> LogOut
 | 
			
		||||
    AuthorisedUser -d-> CreateSurvey
 | 
			
		||||
    AuthorisedUser -u-> DeleteSurvey
 | 
			
		||||
@ -233,80 +221,6 @@
 | 
			
		||||
    stop
 | 
			
		||||
@enduml
 | 
			
		||||
 | 
			
		||||
|         ID        |                                                       SURVEY.LINK.CREATE                                                      |
 | 
			
		||||
|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------:|
 | 
			
		||||
|       Назва       |                                                 Додати посилання на опитування                                                |
 | 
			
		||||
|      Учасники     |                                                      Користувач, система                                                      |
 | 
			
		||||
|     Передумови    |                                               Користувач авторизований у системі                                              |
 | 
			
		||||
|     Результат     |                                                  Нове посилання на опитування                                                 |
 | 
			
		||||
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
 | 
			
		||||
@startuml
 | 
			
		||||
    |Користувач|
 | 
			
		||||
    start
 | 
			
		||||
    : Натискає кнопку створення посилання на опитування;
 | 
			
		||||
    |Система|
 | 
			
		||||
    : Виводить налаштування для нового посилання;
 | 
			
		||||
    note right #lightpink
 | 
			
		||||
        <b>Можливі 001.005, 001.006, 001.008</b>
 | 
			
		||||
    end note
 | 
			
		||||
    |Користувач|
 | 
			
		||||
    : Вводить налаштування для нового посилання;
 | 
			
		||||
    : Натискає на кнопку створення посилання;
 | 
			
		||||
    |Система|
 | 
			
		||||
    : Створює нове посилання;
 | 
			
		||||
    |Користувач|
 | 
			
		||||
    stop
 | 
			
		||||
@enduml
 | 
			
		||||
 | 
			
		||||
|         ID        |                                                                          SURVEY.LINK.DELETE                                                                          |
 | 
			
		||||
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
 | 
			
		||||
|       Назва       |                                                                   Видалити посилання на опитування                                                                   |
 | 
			
		||||
|      Учасники     |                                                                         Користувач, система                                                                          |
 | 
			
		||||
|     Передумови    |                                                                  Користувач авторизований у системі                                                                  |
 | 
			
		||||
|     Результат     |                                                                  Видалення посилання на опитування                                                                   |
 | 
			
		||||
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування<br>001.009 Запитане посилання на існує |
 | 
			
		||||
@startuml
 | 
			
		||||
    |Користувач|
 | 
			
		||||
    start
 | 
			
		||||
    : Натискає кнопку видалення посилання;
 | 
			
		||||
    |Система|
 | 
			
		||||
    : Виводить кнопку підтвердження видалення посилання;
 | 
			
		||||
    |Користувач|
 | 
			
		||||
    : Натискає на кнопку підтвердження видалення посилання;
 | 
			
		||||
    |Система|
 | 
			
		||||
    : Видаляє посилання;
 | 
			
		||||
    note right #lightpink
 | 
			
		||||
        <b>Можливі 001.005, 001.006, 001.008, 001.009</b>
 | 
			
		||||
    end note
 | 
			
		||||
    |Користувач|
 | 
			
		||||
    stop
 | 
			
		||||
@enduml
 | 
			
		||||
 | 
			
		||||
|         ID        |                                                                          SURVEY.LINK.MODIFY                                                                          |
 | 
			
		||||
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
 | 
			
		||||
|       Назва       |                                                             Змінити властивості посилання на опитування                                                              |
 | 
			
		||||
|      Учасники     |                                                                         Користувач, система                                                                          |
 | 
			
		||||
|     Передумови    |                                                                  Користувач авторизований у системі                                                                  |
 | 
			
		||||
|     Результат     |                                                              Зміна властивостей посилання на опитування                                                              |
 | 
			
		||||
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування<br>001.009 Запитане посилання на існує |
 | 
			
		||||
@startuml
 | 
			
		||||
    |Користувач|
 | 
			
		||||
    start
 | 
			
		||||
    : Натискає кнопку редагування властивостей посилання;
 | 
			
		||||
    |Система|
 | 
			
		||||
    : Виводить налаштування для обраного посилання;
 | 
			
		||||
    note right #lightpink
 | 
			
		||||
        <b>Можливі 001.005, 001.006, 001.008, 001.009</b>
 | 
			
		||||
    end note
 | 
			
		||||
    |Користувач|
 | 
			
		||||
    : Вводить юажані зміни властивостей посилання;
 | 
			
		||||
    : Натискає на кнопку збереження властиностей посилання;
 | 
			
		||||
    |Система|
 | 
			
		||||
    : Змінює властивості посилання;
 | 
			
		||||
    |Користувач|
 | 
			
		||||
    stop
 | 
			
		||||
@enduml
 | 
			
		||||
 | 
			
		||||
|         ID        |                                            USER.CREATE_SURVEY                                            |
 | 
			
		||||
|:-----------------:|:--------------------------------------------------------------------------------------------------------:|
 | 
			
		||||
|       Назва       |                                           Створити опитування                                            |
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,2 @@
 | 
			
		||||
# JS-скрипти
 | 
			
		||||
 | 
			
		||||
В цьому розділі розміщені програмні коди javascript.
 | 
			
		||||
# програмні коди
 | 
			
		||||
В цьому розділі розміщені програмні коди.
 | 
			
		||||
@ -1,3 +0,0 @@
 | 
			
		||||
# SQL-скрипти
 | 
			
		||||
 | 
			
		||||
В цьому розділі розміщені сирцеві коди для створення бази даних.
 | 
			
		||||
@ -1,107 +0,0 @@
 | 
			
		||||
-- MySQL Workbench Forward Engineering
 | 
			
		||||
 | 
			
		||||
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
 | 
			
		||||
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
 | 
			
		||||
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Schema mydb
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Schema mydb
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
 | 
			
		||||
USE `mydb` ;
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Account`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Account` (
 | 
			
		||||
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
			
		||||
  `username` CHAR(255) NOT NULL,
 | 
			
		||||
  `password` CHAR(255) NOT NULL,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
 | 
			
		||||
  UNIQUE INDEX `username_UNIQUE` (`username` ASC) VISIBLE)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Survey`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Survey` (
 | 
			
		||||
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
			
		||||
  `isPaused` TINYINT UNSIGNED NOT NULL,
 | 
			
		||||
  `isNamed` TINYINT UNSIGNED NOT NULL,
 | 
			
		||||
  `name` CHAR(255) NULL,
 | 
			
		||||
  `duration` CHAR(255) NULL,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
 | 
			
		||||
  CONSTRAINT `fk_Survey_Account1`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Account` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Question`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Question` (
 | 
			
		||||
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
			
		||||
  `Text` CHAR(255) NULL,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
 | 
			
		||||
  CONSTRAINT `fk_Question_Survey1`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Survey` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Response`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Response` (
 | 
			
		||||
  `id` INT UNSIGNED NULL AUTO_INCREMENT,
 | 
			
		||||
  `Value` VARCHAR(16384) NULL,
 | 
			
		||||
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  CONSTRAINT `fk_Response_Question`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Question` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION,
 | 
			
		||||
  CONSTRAINT `fk_Response_Account1`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Account` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
-- Table `mydb`.`Link`
 | 
			
		||||
-- -----------------------------------------------------
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `mydb`.`Link` (
 | 
			
		||||
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
 | 
			
		||||
  `uses` INT NOT NULL,
 | 
			
		||||
  `responces` INT NOT NULL,
 | 
			
		||||
  `usageLimit` INT NULL,
 | 
			
		||||
  `responceLimit` INT NULL,
 | 
			
		||||
  `path` CHAR(32) NOT NULL,
 | 
			
		||||
  PRIMARY KEY (`id`),
 | 
			
		||||
  CONSTRAINT `fk_Link_Survey1`
 | 
			
		||||
    FOREIGN KEY (`id`)
 | 
			
		||||
    REFERENCES `mydb`.`Survey` (`id`)
 | 
			
		||||
    ON DELETE NO ACTION
 | 
			
		||||
    ON UPDATE NO ACTION)
 | 
			
		||||
ENGINE = InnoDB;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SET SQL_MODE=@OLD_SQL_MODE;
 | 
			
		||||
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
 | 
			
		||||
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
Назва | Додати посилання на опитування
 | 
			
		||||
Учасники | Користувач, система
 | 
			
		||||
Передумови | Користувач авторизований у системі
 | 
			
		||||
Результат | Нове посилання на опитування
 | 
			
		||||
Виключні ситуації | 001.005 Користувач не ідентифікований
 | 
			
		||||
                  | 001.006 Запитане опитування не існує
 | 
			
		||||
                  | 001.008 Користувач не є власником опитування
 | 
			
		||||
Основний сценарій | 1. Користувач натискає кнопку створення посилання на опитування
 | 
			
		||||
                  | 2. Система виводить налаштування для нового посилання (можливі 001.005, 001.006, 001.008)
 | 
			
		||||
                  | 3. Користувач вводить налаштування для нового посилання
 | 
			
		||||
                  | 4. Користувач натискає на кнопку створення посилання
 | 
			
		||||
                  | 5. Система створює нове посилання
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
Назва | Видалити посилання на опитування
 | 
			
		||||
Учасники | Користувач, система
 | 
			
		||||
Передумови | Користувач авторизований у системі
 | 
			
		||||
Результат | Видалення посилання на опитування
 | 
			
		||||
Виключні ситуації | 001.005 Користувач не ідентифікований
 | 
			
		||||
                  | 001.006 Запитане опитування не існує
 | 
			
		||||
                  | 001.008 Користувач не є власником опитування
 | 
			
		||||
                  | 001.009 Запитане посилання на існує
 | 
			
		||||
Основний сценарій | 1. Користувач натискає кнопку видалення посилання
 | 
			
		||||
                  | 2. Система виводить кнопку підтвердження видалення посилання
 | 
			
		||||
                  | 3. Користувач натискає на кнопку підтвердження видалення посилання
 | 
			
		||||
                  | 4. Система видаляє посилання (можливі 001.005, 001.006, 001.008, 001.009)
 | 
			
		||||
@ -1,13 +0,0 @@
 | 
			
		||||
Назва | Змінити властивості посилання на опитування
 | 
			
		||||
Учасники | Користувач, система
 | 
			
		||||
Передумови | Користувач авторизований у системі
 | 
			
		||||
Результат | Зміна властивостей посилання на опитування
 | 
			
		||||
Виключні ситуації | 001.005 Користувач не ідентифікований
 | 
			
		||||
                  | 001.006 Запитане опитування не існує
 | 
			
		||||
                  | 001.008 Користувач не є власником опитування
 | 
			
		||||
                  | 001.009 Запитане посилання на існує
 | 
			
		||||
Основний сценарій | 1. Користувач натискає кнопку редагування властивостей посилання
 | 
			
		||||
                  | 2. Система виводить налаштування для обраного посилання (можливі 001.005, 001.006, 001.008, 001.009)
 | 
			
		||||
                  | 3. Користувач вводить юажані зміни властивостей посилання
 | 
			
		||||
                  | 4. Користувач натискає на кнопку збереження властиностей посилання
 | 
			
		||||
                  | 5. Система змінює властивості посилання
 | 
			
		||||
		Reference in New Issue
	
	Block a user