diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..13566b81
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/db-course-theme1.iml b/.idea/db-course-theme1.iml
new file mode 100644
index 00000000..d6ebd480
--- /dev/null
+++ b/.idea/db-course-theme1.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..47478b91
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..5d412a89
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..35eb1ddf
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 12b64ef4..e3ce2157 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -1,113 +1,122 @@
// .vuepress/config.js
module.exports = {
- plugins: [
- '@vuepress/back-to-top',
- '@vuepress/pwa',
- {
- serviceWorker: true,
- updatePopup: true
- },
- ,
- ['container', {
- type: 'vue',
- before: '
',
- after: '
'
- }]
- ],
- port: 3030,
- base: '/docs/',
- theme: 'cool',
- // dest: 'dist',
- head: [
- ['link', { rel: 'icon', href: '/favicon.ico' }],
- ['link', { rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css' }],
- ['link', {href: 'https://fonts.googleapis.com/icon?family=Material+Icons', rel :'stylesheet'}],
-
- ],
- themeConfig: {
- // logo: './myAvatar.png',
- sidebar: [
-
- {
- title: 'Вступ',
- path:"/intro/"
- },
+ plugins: [
+ '@vuepress/back-to-top',
+ '@vuepress/pwa',
+ {
+ serviceWorker: true,
+ updatePopup: true
+ },
+ ,
+ ['container', {
+ type: 'vue',
+ before: '',
+ after: '
'
+ }]
+ ],
+ port: 3030,
+ // base: 'edu_db_labs_group1',
+ theme: 'cool',
+ // dest: 'dist',
+ head: [
+ ['link', {rel: 'icon', href: '/favicon.ico'}],
+ ['link', {rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css'}],
+ ['link', {href: 'https://fonts.googleapis.com/icon?family=Material+Icons', rel: 'stylesheet'}],
- {
- title: 'Розроблення вимог до системи',
- path:"/requirements/",
- },
+ ],
+ themeConfig: {
+ // logo: './myAvatar.png',
+ sidebar: [
- {
- title: 'Проєктування архітектури системи',
- path:"/design/"
- },
+ {
+ title: 'Вступ',
+ path: "/intro/"
+ },
- {
- title: 'Реалізація інформаційного та програмного забезпечення',
- path:"/software/"
- },
+ {
+ title: 'Розроблення вимог до системи',
+ path: "/requirements/",
+ children: [
+ '/requirements/state-of-the-art',
+ '/requirements/stakeholders-needs',
+ ]
+ },
- {
- title: 'Тестування працездатності системи',
- path:"/test/"
- },
-
- {
- title: 'Висновки',
- path:"/conclusion/"
- },
-
- {
- title: 'API',
- path:"/api/"
- }
+ {
+ title: 'Розроблення вимог до функціональности системи',
+ path:"/use cases/"
+ },
- ],
- sidebarDepth: 2,
- displayAllHeaders: true, // Default: false
+ {
+ title: 'Проєктування архітектури системи',
+ path: "/design/"
+ },
+ {
+ title: 'Реалізація інформаційного та програмного забезпечення',
+ path: "/software/"
+ },
- nav: [
- { text: 'Початок', link: '/' },
- ],
+ {
+ title: 'Тестування працездатності системи',
+ path: "/test/"
+ },
- lastUpdated: 'Останнє оновлення', // string | boolean
- // Assumes GitHub. Can also be a full GitLab url.
- repo: 'https://github.com/boldak/edu-dis-labs',
- // Customising the header label
- // Defaults to "GitHub"/"GitLab"/"Bitbucket" depending on `themeConfig.repo`
- repoLabel: 'Github',
-
- // Optional options for generating "Edit this page" link
-
- // if your docs are in a different repo from your main project:
- // docsRepo: 'boldak/dis-edu',
- // if your docs are not at the root of the repo:
- docsDir: 'docs',
- // if your docs are in a specific branch (defaults to 'master'):
- docsBranch: 'master',
- // defaults to false, set to true to enable
- // editLinks: true,
- // custom text for edit link. Defaults to "Edit this page"
- // editLinkText: 'Ви можете покращити цю сторінку'
-
- },
- title: 'Назва проєкту',
- description: 'Лабораторні роботи з дисципліни "Розподілені інформаційні системи"',
- configureWebpack: {
- resolve: {
- alias: {
- '@alias': '../img'
- }
- }
- },
- markdown: {
- extendMarkdown: md => {
- md.set({ html: true })
- md.use(require('markdown-it-katex'))
- md.use(require('markdown-it-plantuml'))
- md.use(require('markdown-it-admonition'))
+ {
+ title: 'Висновки',
+ path: "/conclusion/"
+ },
+
+ {
+ title: 'API',
+ path: "/api/"
+ }
+
+ ],
+ sidebarDepth: 2,
+ displayAllHeaders: true, // Default: false
+
+
+ nav: [
+ {text: 'Початок', link: '/'},
+ ],
+
+ lastUpdated: 'Останнє оновлення', // string | boolean
+ // Assumes GitHub. Can also be a full GitLab url.
+ repo: 'https://github.com/Oksuzova/db-course-theme1',
+ // Customising the header label
+ // Defaults to "GitHub"/"GitLab"/"Bitbucket" depending on `themeConfig.repo`
+ repoLabel: 'Github',
+
+ // Optional options for generating "Edit this page" link
+
+ // if your docs are in a different repo from your main project:
+ // docsRepo: 'boldak/dis-edu',
+ // if your docs are not at the root of the repo:
+ docsDir: 'docs',
+ // if your docs are in a specific branch (defaults to 'master'):
+ docsBranch: 'master',
+ // defaults to false, set to true to enable
+ // editLinks: true,
+ // custom text for edit link. Defaults to "Edit this page"
+ // editLinkText: 'Ви можете покращити цю сторінку'
+
+ },
+ title: '1.Система організації та управління опитуваннями експертів',
+ description: 'Лабораторні роботи з дисципліни "Розподілені інформаційні системи"',
+ configureWebpack: {
+ resolve: {
+ alias: {
+ '@alias': '../img'
+ }
+ }
+ },
+ markdown: {
+ extendMarkdown: md => {
+ md.set({html: true})
+ md.use(require('markdown-it-katex'))
+ md.use(require('markdown-it-plantuml'))
+ md.use(require('markdown-it-admonition'))
+ }
}
- }
}
\ No newline at end of file
diff --git a/docs/README.md b/docs/README.md
index 499febf7..2f63a0ad 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -3,17 +3,26 @@ home: true
actionText: Розпочати →
actionLink: /intro/
-footer: "ECL 2.0 Licensed | Copyright © [YYYY] [Your Name]"
+footer: "ECL 2.0 Licensed | Copyright © [2024] [Tanya Oks]"
---
**Виконали:**
-*студенти [X]-го курсу, групи (шифр групи)*
+*студентка 2-го курсу, групи ІО-з21)*
+ **Оксюзова Тетяна** Telegram
-**[ім’я ПРІЗВИЩЕ] [Посилання email, tg, fb]**
+*студентка 2-го курсу, групи ІО-з21)*
+ **Морозова Єлізавета** Telegram
-**[ім’я ПРІЗВИЩЕ] [Посилання email, tg, fb]**
+*студент 2-го курсу, групи ІО-з21)*
+ **Булах Лєонід** Telegram
+
+*студент 2-го курсу, групи ІО-з21)*
+ **Батюк Богдан** Telegram
+
+*студент 2-го курсу, групи ІО-з21)*
+ **Османов Ізмаїл** Telegram
**Керівник**
diff --git a/docs/answers_for_lq/lab1.md b/docs/answers_for_lq/lab1.md
new file mode 100644
index 00000000..55d62028
--- /dev/null
+++ b/docs/answers_for_lq/lab1.md
@@ -0,0 +1,30 @@
+# Відповіді на питання
+
+## Які категорії користувачів можуть приймати участь у проекті?
+Категорії користувачів, що можуть приймати участь у проекті, залежать від специфіки проекту. Загалом, це можуть бути:
+- Розробники
+- Тестувальники
+- Кінцеві користувачі
+- Адміністратори системи
+- Проектні менеджери
+- Стейкхолдери
+
+## Етапи розробки баз даних
+Етапи розробки баз даних зазвичай включають:
+1. Збір вимог
+2. Концептуальне проектування
+3. Логічне проектування
+4. Фізичне проектування
+5. Імплементація
+6. Тестування
+7. Розгортання
+8. Супровід і оновлення
+
+## Що означає "концептуальна модель"?
+Концептуальна модель у контексті баз даних — це високорівнева структурна модель, що використовується для організації інформації та деталізації бізнес-правил. Вона узагальнює і представляє дані незалежно від того, як вони будуть збережені фізично.
+
+## Де визначаються ситуації, що не входять у список передумов?
+Ситуації, що не входять у список передумов, зазвичай визначаються у специфікації вимог або під час аналізу ризиків проекту. Це може включати в себе:
+- Непередбачувані використання системи
+- Можливі випадки відмови або помилки
+- Ризики, пов'язані з безпекою та конфіденційністю
diff --git a/docs/answers_for_lq/lab2.md b/docs/answers_for_lq/lab2.md
new file mode 100644
index 00000000..f8da9108
--- /dev/null
+++ b/docs/answers_for_lq/lab2.md
@@ -0,0 +1,68 @@
+# Відповіді на питання
+
+## Які категорії користувачів можуть приймати участь у проекті?
+Категорії користувачів, що можуть приймати участь у проекті, залежать від специфіки проекту. Загалом, це можуть бути:
+- Розробники
+- Тестувальники
+- Кінцеві користувачі
+- Адміністратори системи
+- Проектні менеджери
+- Стейкхолдери
+
+## Що представляє собою діаграма Use Case?
+Діаграма Use Case є частиною UML (Unified Modeling Language) і використовується для ілюстрації функціональних вимог до системи. Вона показує, як різні користувачі (актори) взаємодіють із системою для досягнення певних цілей.
+
+## Етапи розробки баз даних
+Етапи розробки баз даних зазвичай включають:
+1. Збір вимог
+2. Концептуальне проектування
+3. Логічне проектування
+4. Фізичне проектування
+5. Реалізація
+6. Тестування
+7. Розгортання
+8. Підтримка та обслуговування
+
+## Які види відношень застосовуються в UML?
+У UML використовуються різні типи відношень, включаючи:
+- Асоціації
+- Наслідування
+- Залежності
+- Агрегація
+- Композиція
+
+## Де ініціюється і закінчується процес взаємодії відповідно до сценарію прецедента?
+Процес взаємодії зазвичай ініціюється коли актор звертається до системи з певною метою (початок Use Case) і закінчується коли ця мета досягнута або коли процес переривається (кінець Use Case).
+
+## Яке зображення має прецедент на діаграмі UML?
+На діаграмі UML прецедент зображується у вигляді овалу з назвою в середині.
+
+## З яких частин складається специфікація Use Case?
+Специфікація Use Case зазвичай включає:
+- Назву
+- Опис
+- Передумови
+- Основний сценарій взаємодії
+- Розширення (альтернативні сценарії)
+- Виключення (умови виходу або помилки)
+
+## Де визначаються ситуації, що не входять у список передумов?
+Ситуації, які не входять у список передумов, зазвичай розглядаються у рамках аналізу вимог і ризиків проекту, де вони визначаються як потенційні ризики або виключення.
+
+## Які повноваження може мати Actor?
+Actor (актор) може мати різні повноваження залежно від його ролі у системі, включаючи:
+- Доступ до певних функцій системи
+- Вплив на зміни в системі
+- Виконання специфічних операцій або процесів
+
+## На основі чого відбувається виділення сутностей проекту?
+Виділення сутностей проекту зазвичай відбувається на основі аналізу бізнес-процесів, вимог до системи та інформаційних потреб користувачів.
+
+## Яке призначення прецедентів?
+Призначення прецедентів полягає у визначенні та документуванні функціональних вимог, які система має виконувати для досягнення бізнес-цілей користувачів або замовників.
+
+## Які стосунки можливі між актором і елементом Use Case?
+Між актором і елементом Use Case можливі такі стосунки:
+- Асоціація (актор взаємодіє з Use Case)
+- Залежність (актор залежить від результатів Use Case)
+- Розширення (актор може ініціювати додаткові сценарії Use Case)
diff --git a/docs/answers_for_lq/lab3.md b/docs/answers_for_lq/lab3.md
new file mode 100644
index 00000000..5129ad4c
--- /dev/null
+++ b/docs/answers_for_lq/lab3.md
@@ -0,0 +1,63 @@
+# Відповіді на питання
+
+## 1. Що таке бізнес моделювання?
+Бізнес моделювання — це процес абстрагування та структурування ключових аспектів бізнесу для аналізу, покращення, та візуалізації бізнес-процесів та взаємодій усередині компанії.
+
+## 2. Призначення бізнес моделювання?
+Бізнес моделювання використовується для:
+- Оптимізації бізнес-процесів
+- Виявлення та усунення неефективностей
+- Підтримки рішень щодо стратегічних змін у компанії
+
+## 3. Де використовується бізнес моделювання?
+Бізнес моделювання використовується в багатьох сферах, включаючи:
+- Управління процесами
+- Стратегічне планування
+- Розвиток нових продуктів
+- Інформаційні технології для розробки систем
+
+## 4. Що таке бізнес-сутність?
+Бізнес-сутність — це основний компонент бізнес-моделі, який представляє інформацію або об'єкт реального світу, що має значення для організації.
+
+## 5. Для чого використовується бізнес-сутність?
+Бізнес-сутність використовується для:
+- Структурування інформації в системах
+- Управління даними
+- Моделювання бізнес-процесів
+
+## 6. Як визначити бізнес-сутність?
+Бізнес-сутність визначається через її атрибути та взаємодії з іншими сутностями. Часто для цього аналізуються бізнес-процеси та вимоги до інформаційних потреб.
+
+## 7. Які існують зв’язки між бізнес-сутностями?
+Між бізнес-сутностями можуть бути такі зв’язки:
+- Асоціації
+- Агрегації
+- Композиції
+- Спадкування
+
+## 8. Що таке асоціативний зв’язок? Як він відображається?
+Асоціативний зв’язок відображає взаємовідносини між двома сутностями, де одна сутність може асоціюватися з багатьма іншими. На діаграмах відображається лінією, що з'єднує сутності.
+
+## 9. Що таке зв’язок агрегація? Як він відображається?
+Агрегація — це вид асоціації, що представляє відносини "ціле-частина". На діаграмах відображається лінією з порожньою ромбовидною фігурою на кінці, що вказує на "ціле".
+
+## 10. Що таке зв’язок композиція? Як він відображається?
+Композиція — сильніший вид агрегації, де частини не можуть існувати без цілого. На діаграмах відображається лінією з заповненою ромбовидною фігурою на кінці.
+
+## 11. Що таке зв’язок спадкування? Як він відображається?
+Зв’язок спадкування використовується для визначення ієрархічних відносин між сутностями, де одна сутність успадковує характеристики іншої. На діаграмах відображається як лінія зі стрілкою, що вказує на базову сутність.
+
+## 12. Що таке атрибути бізнес-сутності?
+Атрибути бізнес-сутності — це характеристики або властивості, що визначають дані та можуть бути збережені та оброблені в рамках бізнес-моделі.
+
+## 13. Для чого існують атрибути бізнес-об’єктів?
+Атрибути бізнес-об’єктів слугують для деталізації та структурування інформації, яка потрібна для обробки та управління бізнес-процесами.
+
+## 14. Що таке словник предметної області?
+Словник предметної області — це документ або база даних, що містить описи всіх термінів та понять, що використовуються у певній області діяльності.
+
+## Для чого використовується словник предметної області?
+Словник предметної області використовується для:
+- Забезпечення узгодженості в термінології
+- Полегшення спілкування та взаєморозуміння між учасниками проекту
+- Навчання нових членів команди
diff --git a/docs/design/README.md b/docs/design/README.md
index 4d91190f..9affbde2 100644
--- a/docs/design/README.md
+++ b/docs/design/README.md
@@ -1,86 +1,159 @@
-# Проєктування системи
+# Проєктування бази даних
+## Модель бізнес-об'єктів
-Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/).
-
-В markdown-файлі використовується опис діаграми
-
-```md
-
-
@startuml
-participant Client
+entity Role
+entity Role.id
+entity Role.name
+
+entity User
+entity User.id
+entity User.nickname
+entity User.email
+entity User.password
+entity User.roleId
+
+entity Survey
+entity Survey.id
+entity Survey.name
+entity Survey.startDate
+entity Survey.endDate
+
+entity AssignedSurvey
+entity AssignedSurvey.surveyId
+entity AssignedSurvey.userId
+
+entity Question
+entity Question.id
+entity Question.description
+entity Question.number
+entity Question.survey
+
+entity Answer
+entity Answer.id
+entity Answer.option
+entity Answer.questionId
+
+entity Statistic
+entity Statistic.id
+entity Statistic.surveyId
+
+Role.id --r-* Role
+Role.name --r-* Role
+
+User.id --u-* User
+User.nickname --u-* User
+User.password --u-* User
+User.email --u-* User
+User.roleId --u-* User
+
+Survey.id --d-* Survey
+Survey.name --d-* Survey
+Survey.startDate --d-* Survey
+Survey.endDate --d-* Survey
+
+AssignedSurvey.surveyId --d-* AssignedSurvey
+AssignedSurvey.userId --d-* AssignedSurvey
+
+Question.id --d-* Question
+Question.description --d-* Question
+Question.number --d-* Question
+Question.survey --d-* Question
+
+Answer.id --u-* Answer
+Answer.option --u-* Answer
+Answer.questionId --u-* Answer
+
+Statistic.id --u-* Statistic
+Statistic.surveyId --u-* Statistic
+
+User "0,*" -l- "1" Role
+Survey "0,*" -- "1" User
+Survey "1" -l- "1,3" Question
+Survey "1" -r- "0,*" AssignedSurvey
+Question "1,3" -- "1" Answer
+Survey "1" -- "1" Statistic
-participant SR as "Service Registry"
-
-participant Service
-
-Service -> SR : register
-SR -> SR
-SR --> Service
-...
+@enduml
-SR -> Service: heartbeat
-SR <-- Service: health
-...
+
-Client -> SR: find
-Client <-- SR: service endpoint
-Client -> Service: request
-Client <-- Service: response
+
+@startuml
+entity Role {
+id: INT
+name: TEXT
+}
+
+entity User {
+id: INT
+nickname: TEXT
+email: TEXT
+password: TEXT
+roleId: INT
+}
+
+entity Survey {
+id: INT
+name: TEXT
+startDate: DATE
+endDate: DATE
+}
+
+entity AssignedSurvey {
+surveyId: INT
+userId: INT
+}
+
+entity Question {
+id: INT
+description: TEXT
+number: NUMBER
+surveyId: INT
+}
+
+entity Answer {
+id: INT
+option: TEXT
+questionId: INT
+}
+
+entity Statistic {
+id: INT
+surveyId: INT
+}
+
+User "0," -d- "1" Role : roleId
+User "0," -l- "1" AssignedSurvey : userId
+Survey "1" -l- "1,3" Question : surveyId
+Survey "1" -u- "0,*" AssignedSurvey : surveyId
+Question "1,3" -- "1" Answer : questionId
+Survey "1" -- "1" Statistic : surveyId
@enduml
-
-```
+
-яка буде відображена наступним чином
+## Реляційна схема
-
-@startuml
-
- @startuml
-
-participant Client
-
-participant SR as "Service Registry"
-
-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
-
-
-
-@enduml
-
-
-
-
+
+
\ No newline at end of file
diff --git a/docs/design/relational_schema.png b/docs/design/relational_schema.png
new file mode 100644
index 00000000..650383d0
Binary files /dev/null and b/docs/design/relational_schema.png differ
diff --git a/docs/requirements/README.md b/docs/requirements/README.md
index b56ec92f..434a19f0 100644
--- a/docs/requirements/README.md
+++ b/docs/requirements/README.md
@@ -1,25 +1,4 @@
-# Розроблення вимог до системи
+# Розроблення загальних вимог до системи
-## Основні визначення
-
-*[Розділ містить визначення термінів та скорочень, які використовуються при аналізі предметної області.]*
-
-## Підходи та способи вирішення завдання
-
-*[Розділ містить опис підходів, моделей та способів вирішення завдання.]*
-
-## Порівняльна характеристика існуючих засобів вирішення завдання
-
-*[Розділ містить опис існуючих програм, інформаційних систем, сервісів, тощо, призначених для вирішення
-завдання. Дається порівняльна характеристика властивостей FURPS:*
-- *Functionality (функциональні вимоги)*
-- *Usability (вимоги до зручності роботи)*
-- *Reliability (вимоги до надійності)*
-- *Performance (вимоги до продуктивності)*
-- *Supportability (вимоги до підтримки)*
-
- *(у вигляді таблиці).]*
-
-## Висновки
-
-*[Робляться висновки щодо доцільності розробки нової або модифікації існуючої інформаційної системи, необхідності та способів інтеграції з системами(сервісами) третіх сторін, тощо.]*
\ No newline at end of file
+- [Аналіз предметної області](/requirements/state-of-the-art.md)
+- [Запити зацікавлених осіб](/requirements/stakeholders-needs.md)
\ No newline at end of file
diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md
new file mode 100644
index 00000000..99d7395c
--- /dev/null
+++ b/docs/requirements/stakeholders-needs.md
@@ -0,0 +1,275 @@
+# Запити зацікавлених осіб
+
+## Вступ
+
+Цей розділ містить інформацію для тих, хто зацікавлений у знайомстві з проєктом.
+Тут задокументовано інформацію про цільову аудиторію продукту, визначення, пов'язані з розробкою якісного
+ПЗ, [характеристику процесів опитування експертів](#характеристика-процесів-опитування), а також сформульовано вимоги
+щодо:
+
+- [Функціональності](#функціональність)
+- [Практичності](#практичність)
+- [Надійності](#надійність)
+- [Продуктивності](#продуктивність)
+- [Експлуатаційної придатності](#експлуатаційна-придатність)
+
+## Мета
+
+Дослідження цільової аудиторії продукту, аналіз вимог та запитів від різних груп зацікавлених осіб, а також визначення
+вимог до функціональності, практичності, надійності, продуктивності та зручності використання для створення сучасного і
+зручного програмного забезпечення для керування проєктами.
+
+## Контекст
+
+У цьому документі описується загальний порядок роботи з комерційними та некомерційними проєктами на
+основі [наведених нижче прикладів](#характеристика-ділових-процесів) і висвітлюються всі переваги нашого інструменту.
+
+## Основні визначення та скорочення
+
+[Метод опитування експертів](#Метод опитування експертів) - також відомий як метод експертних оцінок або метод Delphi, є
+технікою збору інформації, яка передбачає залучення фахівців у певній галузі для отримання надійних прогнозів, оцінок
+або рекомендацій.
+
+[ISO 9126](https://what.com.ua/iakist-programnogo-zabezpechen/4/) - є міжнародним стандартом для оцінки якості
+продукту (ПЗ). Він розділений на чотири частини, в яких розглядаються наступні теми:
+
+- Зовнішні показники
+- Внутрішні показники
+- Модель якості
+- Показники якості програмного забезпечення
+
+[FURPS](https://www.dstu.dp.ua/Portal/Data/3/19/3-19-kl26.pdf) - це абревіатура, яка характеризує:
+
+- функціональність (**F**unctionality)
+- практичність (**U**sability)
+- надійність (**R**eliability)
+- продуктивність (**P**erformance)
+- експлуатаційну придатність (**S**upportability)
+
+ програмного забезпечення комп’ютерних систем і також використовується для визначення багатьох пов’язаних систем і
+ послуг.
+
+[UML (Unified Modeling Language)](https://uk.wikipedia.org/wiki/Unified_Modeling_Language) - невід'ємною частиною
+уніфікованого процесу розробки програмного забезпечення. UML є мовою широкого профілю, це відкритий стандарт, що
+використовує графічні позначення для створення абстрактної моделі системи, яка називається UML-моделлю.
+
+Інші визначення знаходяться [тут](/requirements/state-of-the-art.md).
+
+### Посилання
+
+1. [Зацікавлені сторони (особи)](https://uk.wikipedia.org/wiki/%D0%97%D0%B0%D1%86%D1%96%D0%BA%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D1%96_%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%B8)
+2. [Бізнес-процеси](https://pidru4niki.com/1471121353661/ekonomika/analiz_biznes-protsesiv_pidpriyemstva)
+3. [ISO 9126](https://what.com.ua/iakist-programnogo-zabezpechen/4/)
+4. [FURPS](https://www.dstu.dp.ua/Portal/Data/3/19/3-19-kl26.pdf)
+5. [UML (Unified Modeling Language)](https://uk.wikipedia.org/wiki/Unified_Modeling_Language)
+
+## Короткий зміст
+
+- [Характеристика процесів опитування](#характеристика-процесів-опитування)
+ - [Login the User](#Login)
+ - [Logout the User](#Logout_User)
+ - [Passing a Survey](#TakeSurvey)
+ - [Editing Answers](#EditAnswers)
+ - [Creating a Survey](#CreateSurvey)
+ - [Edit Survey](#EditSurvey)
+ - [Assign Survey](#AssignSurvey)
+ - [Unassign Survey From Expert](#UnassignSurveyFromExpert)
+ - [View Statistics](#ViewStatistics)
+ - [Filter By Name](#FilterByName)
+ - [Add Question](#AddQuestion)
+ - [Remove Question](#RemoveQuestion)
+ - [Remove Survey](#RemoveSurvey)
+
+## Характеристика процесів опитування
+
+Для ефективного управління процесом опитування, потрібно розуміти, як працює сама система
+**_Зовнішнім фактором_**, тобто користувачем є:
+
+- **Експерт** - це особа, яка в нашому випадку проходить опитування. Таким чином відповідає на певні запитання
+
+**_Внутрішніми факторами_**, тобто управляючим є:
+
+- **Адміністратор** - це особа, яка може керувати опитуваннями та експертами.
+
+---
+
+Для оптимального співробітництва між бізнес-акторами, бізнес-робітниками та системою складено наступні бізнес-сценарії:
+
+| ID: | **Login** |
+|:----------------------|:---------------------------------------------------------------------------------------|
+| **Назва** | Авторизувати користувача |
+| **Учасники** | Система, користувач |
+| **Передумови** | Користувач зареєстрований, користувач не увійшов в обліковий запис |
+| **Результат** | Користувач увійшов в обліковий запис |
+| **Виключні ситуації** | EX02.01 Облікового доступу користувача не існує
EX02.02 Користувач ввів хибні дані |
+
+| ID: | **Logout_User** |
+|:----------------------|:----------------------------------------------------------------|
+| **Назва** | Вийти з облікового запису |
+| **Учасники** | Система, користувач |
+| **Передумови** | Користувач зареєстрований, користувач увійшов в обліковий запис |
+| **Результат** | Користувач вийшов з облікового запису |
+| **Виключні ситуації** | Відсутні |
+
+| ID: | **TakeSurvey** |
+|:----------------------|:----------------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Проходження опитування експертом |
+| **Учасники** | Система, експерт |
+| **Передумови** | Користувач зареєстрований як експерт, опитування доступне для проходження |
+| **Результат** | Експерт надав відповіді на всі питання опитування; Відповіді експерта збережені в системі; Результати опитування зараховані |
+| **Виключні ситуації** | EX02.01: Опитування вже пройдено, EX02.02: Експерт не має права проходити опитування. |
+
+| ID: | **EditAnswers** |
+|:----------------------|:--------------------------------------------------------------------------------------------------------|
+| **Назва** | Редагування експертом своїх відповідей на опитування |
+| **Учасники** | Система, експерт |
+| **Передумови** | Експерт авторизований в системі, Опитування, на яке експерт надав відповіді, доступне для редагування |
+| **Результат** | Експерт відредагував свої відповіді на опитування; Відредаговані відповіді експерта збережені в системі |
+| **Виключні ситуації** | EX03.01: Опитування більше не доступне для редагування.
+
+| ID: | **CreateSurvey** |
+|:----------------------|:----------------------------------------------------------------------------------------|
+| **Назва** | Створення опитування адміністратором |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі |
+| **Результат** | Адміністратор створив нове опитування, Опитування доступне користувачам для проходження |
+| **Виключні ситуації** | EX04.01: Опитування з такою назвою вже існує |
+
+| ID: | **EditSurvey** |
+|:----------------------|:------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Редагування опитування адміністратором |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі, Опитування, яке адміністратор хоче відредагувати, доступне для редагування |
+| **Результат** | Адміністратор успішно відредагував опитування, Зміни внесені до опитування в базі даних |
+| **Виключні ситуації** | EX05.01: Опитування більше не доступне для редагування |
+
+| ID: | **AssignSurvey** |
+|:----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Призначення опитування експерту |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі,
Опитування, яке адміністратор хоче призначити, доступне для призначення,
Експерт, якому адміністратор хоче призначити опитування, зареєстрований в системі |
+| **Результат** | Опитування успішно призначено експерту, Експерт бачить призначене опитування в списку опитувань |
+| **Виключні ситуації** | EX06.01: Експерт вже призначений до цього опитування |
+
+| ID: | **UnassignSurveyFromExpert** |
+|:----------------------|:-------------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Зняти опитування з експерта |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі,
Опитування доступне для редагування,
Експерт призначений до опитування |
+| **Результат** | Опитування успішно знято з обраного експерта, Експерт не бачить опитування в списку опитувань |
+| **Виключні ситуації** | EX07.01: Експерт не призначений до цього опитування. |
+
+| ID: | **ViewStatistics** |
+|:----------------------|:------------------------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Перегляд адміністратором статистики відповідей на опитування |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі,
Опитування, для якого адміністратор хоче переглянути статистику, доступне для перегляду |
+| **Результат** | Адміністратор успішно переглянув статистику відповідей на вибране опитування |
+| **Виключні ситуації** | EX08.01: Опитування більше не доступне для перегляду статистики |
+
+| ID: | **FilterByName** |
+|:----------------------|:------------------------------------------------------------|
+| **Назва** | Пошук опитування за назвою |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі |
+| **Результат** | Адміністратор успішно знайшов опитування за вказаною назвою |
+| **Виключні ситуації** | EX09.01: Опитувань з такою назвою не знайдено. |
+
+| ID: | **AddQuestion** |
+|:----------------------|:---------------------------------------------------------------------------|
+| **Назва** | Додавання нового питання до опитування |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі, Опитування доступне для редагування |
+| **Результат** | Адміністратор успішно додав нове питання до опитування |
+| **Виключні ситуації** | EX10.01: Опитування більше не доступне для редагування. |
+
+| ID: | **RemoveQuestion** |
+|:----------------------|:---------------------------------------------------------------------------|
+| **Назва** | Додавання нового питання до опитування |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі, Опитування доступне для редагування |
+| **Результат** | Адміністратор успішно видалив питання з опитування |
+| **Виключні ситуації** | EX11.01: Опитування більше не доступне для редагування. |
+
+| ID: | **RemoveSurvey** |
+|:----------------------|:---------------------------------------------------------------------------|
+| **Назва** | Видалення опитування |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі, Опитування доступне для редагування |
+| **Результат** | Адміністратор успішно видалив опитування |
+| **Виключні ситуації** | EX12.01: Опитування більше не доступне для редагування. |
+
+## Короткий огляд продукту
+
+Система організації та управління опитуваннями експертів - це комплекс інструментів і методів, які допомагають збирати,
+аналізувати та інтерпретувати думки та думки експертів з певної галузі знань.
+
+Основні категорії користувачів системи:
+
+* Експерт - користувач, який може відповідати на певні запитання під час опитування.
+* Адміністратор - це особа, яка контролює проходження опитування.
+
+## Функціональність
+
+Функціональні вимоги системи представлені через інтерфейси для різних типів користувачів. Це дозволяє визначити, які
+можливості доступні для кожної категорії користувачів, аналізувати їх взаємодію та чітко встановлювати межі системи, щоб
+забезпечити необхідний функціонал для виконання окремих завдань.
+
+### Інтерфейс експерта
+
+Інтерфейс експерта представляє собою базовий набір функцій системи для користувача.
+
+* увійти в обліковий запис
+* вийти з облікового запису
+* проходження опитування експертом
+* редагування своїх відповідей на опитування
+
+### Інтерфейс адміністратора системи
+
+Інтерфейс адміністратора передбачає ширші можливості керування системою.
+
+* створення опитування
+* редагування опитування
+* призначення опитування експерту
+* зняти опитування з експерта
+* перегляд статистики відповідей на опитування
+* пошук опитування за назвою
+* додавання нового питання до опитування
+* видалення нового питання до опитування
+* видалення опитування
+
+## Практичність
+
+- Простий мінімалістичний дизайн інтерфейсу, інтуїтивність
+- Зрозуміла та приємна до вивчення документація, яка при цьому покриває всі можливості сервісу
+- Підтримка використання гарячих клавіш
+- Можливість бекапів (повернення видалених даних і відновлення доступу до аккаунту)
+- Використання графічних методів відображення прогресу опитування есперта (схеми, графіки, діаграми)
+- Можливість відновлення паролю
+- Адаптивніть під різні роздільні здатності дисплеїв
+
+## Надійність
+
+- Авторизація користувачів
+- Чітке розділення можливостей користувачів відповідно до їх ролі
+- Система повідомлення адміністраторів про проблеми в роботі опитування
+- Регулярне створення резервних копій даних
+- Автоматичний блок надмірної та/або незвичної активності
+- Стійкість до високого трафіку
+
+## Продуктивність
+
+- Швидкий обмін даними
+- Ефективне використання оперативної пам'яті, інтернет трафіку тощо
+- Використання облачних сервісів
+- Використання багатопоточності
+- Гнучке налаштування лімітів використовуваних ресурсів кожного проєкту окремо
+- Висока пропускна здатність
+
+## Експлуатаційна придатність
+
+- Постійна технічна підтримка сервісу, швидкий зворотній зв'язок
+- Низький поріг входження для апаратного та програмного забезпечення
+- Постійне впровадження оновлень
+- Активне тестування
+- Готовність до роботи в екстримальних умовах
diff --git a/docs/requirements/state-of-the-art.md b/docs/requirements/state-of-the-art.md
new file mode 100644
index 00000000..839dec8f
--- /dev/null
+++ b/docs/requirements/state-of-the-art.md
@@ -0,0 +1,201 @@
+# Аналіз предметної області
+
+## Вступ
+
+*У цьому розділі ми поглибимо наше розуміння предметної області, пов'язаної з організацією та управлінням опитуваннями
+експертів. Ми розглянемо ключові визначення, різноманітні підходи та методи вирішення завдань, а також проведемо
+порівняльний аналіз існуючих інструментів управління експертними опитуваннями.*
+
+*Цей аналіз допоможе нам краще зрозуміти потреби та вимоги користувачів у сфері опитування експертів, а також визначити
+оптимальні підходи та інструменти для досягнення поставлених цілей. В результаті ми зможемо розробити більш ефективну та
+зручну систему для організації та проведення експертних опитувань.*
+
+## Основні визначення
+
+### Експертне опитування
+
+Експертне опитування – це метод збору й обробки думок фахівців (експертів) з певної галузі з метою отримання
+узагальнених оцінок, прогнозів чи рекомендацій щодо складних проблем, які неможливо вирішити лише за допомогою
+традиційних методів дослідження.[[1]](#link1)
+
+### Експерт
+
+Експерт - висококваліфікований спеціаліст, який має вищу освіту, відповідну кваліфікацію і професійні знання з
+питань, що досліджуються, виконує службові обов'язки, пов'язані з провадженням діяльності у відповідній галузі,
+безпосередньо проводить експертизу та несе персональну відповідальність за достовірність і повноту аналізу,
+обґрунтованість висновків відповідно до завдання на проведення експертизи.[[2]](#link2)
+
+### Основні характеристики експерту
+
+Показники екпертного потенціалу [[2]](#link2):
+
+- Значний досвід роботи
+- Високий рівень інтелекту
+- Престижна освіта
+- Активна наукова діяльність
+- Існування публікацій у престижних виданнях
+- Визнання колег
+- Високий особистий статус
+
+### Переваги та недоліки експертного опитування
+
+Переваги [[3]](#link3):
+
+- Дозволяє отримати інформацію з проблем, які неможливо дослідити традиційними методами.
+- Забезпечує різнобічне й неупереджене освітлення проблеми.
+- Може використовуватися для прогнозування й оцінки ризиків.
+- Сприяє кращому розумінню складних проблем.
+
+Недоліки:
+
+- Результати опитування залежать від компетентності й об'єктивності експертів.
+- Можливі упередження з боку експертів.
+- Висока вартість проведення опитування.
+
+### Застосування експертних опитувань
+
+Експертне опитування використовується в різних галузях, таких як [[4]](#link4):
+
+- Наука й техніка: Прогнозування науково-технічного прогресу, оцінка перспектив розвитку галузей науки й техніки,
+ розробка нових продуктів і технологій.
+- Економіка: Оцінка перспектив розвитку галузей економіки, визначення ризиків інвестиційних проектів, розробка
+ економічних прогнозів.
+- Соціологія: Вивчення суспільної думки, оцінка соціальних проблем, прогнозування соціальних змін.
+- Управління: Прийняття управлінських рішень, оцінка ефективності діяльності підприємств та організацій, розробка
+ стратегій розвитку.
+
+## Підходи до проведення експертного опитування
+
+Існує декілька підходів до проведення експертного опитування, які можна використовувати залежно від мети дослідження,
+наявних ресурсів та інших факторів. [[5]](#link5)
+
+- Кількісний підхід: Цей підхід використовується, коли важливо отримати кількісні дані, наприклад, оцінки експертів
+ щодо ймовірності певної події або важливості певного фактора. Для збору даних використовуються анкети, що містять
+ закриті питання з фіксованими варіантами відповідей.
+- Якісний підхід: Цей підхід використовується, коли важливо отримати більш глибоке розуміння думок експертів, їхні
+ міркування та аргументи. Для збору даних використовуються інтерв'ю, фокус-групи або інші методи, що дозволяють
+ експертам вільно висловлювати свої думки.
+- Комбінований підхід: Цей підхід поєднує в собі елементи кількісного й якісного підходів. Він може бути корисним,
+ коли необхідно отримати як кількісні дані, так і більш детальне розуміння думок експертів.
+### Способи проведення експертного опитування
+
+Класифікація:
+
+Існує декілька класифікацій видів експертного опитування, але найпоширенішою є класифікація за способом проведення [[6]](#link6):
+
+- Анкетування: Експертам надається анкета з чітко сформульованими питаннями, на які вони дають письмові відповіді.
+ Цей метод є найпростішим й найдешевшим, але він не дозволяє отримати глибоке розуміння думок експертів.
+- Інтерв'ю: Експертів опитують у формі усного інтерв'ю, яке може бути вільним або структурованим. Цей метод дозволяє
+ отримати більш детальну інформацію, адже експерти мають можливість пояснити свої думки й аргументувати свої позиції.
+- Метод Дельфі: Експерти послідовно й анонімно отримують результати опитування інших експертів, що дає їм можливість
+ скоригувати свої початкові оцінки. Цей метод використовується для зменшення впливу упередженостей й отримання більш
+ консенсусної думки експертів.
+- Метод колективної генерації ідей: Експерти збираються разом, щоб обговорити проблему й виробити спільні ідеї та
+ рішення. Цей метод може бути корисним для генерування нових й нестандартних ідей.
+
+### Вибір методу опитування
+
+Вибір методу опитування залежить від мети дослідження, наявних ресурсів та інших факторів. Важливо враховувати такі
+аспекти[[7]](#link7):
+
+- Кількість експертів: Якщо вам потрібно опитувати велику кількість експертів, то анкетування може бути найкращим
+ вибором. Якщо ж вам потрібно опитувати лише декілька експертів, то інтерв'ю може бути більш продуктивним.
+- Необхідний рівень деталізації: Якщо вам потрібна детальна інформація, то інтерв'ю або метод Дельфі можуть бути
+ кращими виборами. Якщо ж вам достатньо загальної інформації, то анкетування може бути достатнім.
+- Наявність бюджету: Інтерв'ю й метод Дельфі можуть бути більш дорогими, ніж анкетування, адже вони потребують
+ більше часу й ресурсів.
+
+### Анкетування: опис, методи, переваги та недоліки
+
+Анкетування - це метод збору інформації шляхом опитування респондентів за допомогою анкет. Анкети - це письмові
+набори запитань, на які респонденти дають відповіді. Цей метод використовується для вивчення думок, поглядів, поведінки
+та інших характеристик людей[[8]](#link8).
+
+Методи анкетування
+
+Існує два основних методи анкетування:
+
+- Очне анкетування: Респонденти заповнюють анкети в присутності інтерв'юера. Цей метод дозволяє інтерв'юеру
+ контролювати
+ процес заповнення анкети й ставити уточнюючі запитання.
+- Заочне анкетування: Респонденти заповнюють анкети самостійно, без присутності інтерв'юера. Цей метод може бути
+ більш
+ зручним для респондентів, але він не дозволяє інтерв'юеру контролювати процес заповнення анкети.
+
+## Порівняльна характеристика існуючих засобів вирішення завдання
+
+**[SurveyMonkey](https://www.surveymonkey.com/)** — Це популярна платформа для опитування, яка пропонує безкоштовний та
+платний плани. SurveyMonkey має широкий спектр функцій, які дозволяють створювати складні опитування, збирати дані та
+аналізувати результати.
+
+**[Google Forms](https://www.google.com/forms/)** — Це безкоштовна платформа для опитування від Google. Google Forms має
+простіший інтерфейс користувача, ніж SurveyMonkey, але він все одно пропонує широкий спектр функцій.
+
+**[Qualtrics](https://www.qualtrics.com/)** — Це потужна платформа для опитування, яка пропонує широкий спектр функцій,
+включаючи можливість створювати розгалужені опитування, використовувати логіку опитування та збирати мультимедійні дані.
+Qualtrics має платні плани.
+
+**[Alchemer](https://www.alchemer.com/)** — це платна платформа опитувань, яка пропонує широкий спектр функцій,
+включаючи можливість створювати анкети, збирати відповіді, аналізувати дані та багато іншого.
+
+🟢 - критерій виконано
+🟠 - критерій виконано не повністю
+🔴 - критерій не виконано
+
+| Властивості | Наша система | SurveyMonkey | Google Forms | Qualtrics | Alchemer |
+|--------------------------------|:------------:|:------------:|:------------:|:---------:|:--------:|
+| **Функціональні вимоги** | | | | | |
+| Створення опитування | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| Збір даних | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| Аналіз даних | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| **Вимоги до зручності роботи** | | | | | |
+| Інтерфейс користувача | 🟢 | 🟠 | 🟠 | 🟢 | 🟢 |
+| Створення опитування | 🟢 | 🟢 | 🟢 | 🟢 | 🟠 |
+| Налаштування дизайну | 🟢 | 🟢 | 🔴 | 🔴 | 🟢 |
+| Зручність аналізу | 🟢 | 🟠 | 🟢 | 🟢 | 🟢 |
+| Підтримка мов | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| **Вимоги до надійності** | | | | | |
+| Захист даних | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| Резервне копіювання даних | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| Доступність | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| Відновлення після збоїв | 🟢 | 🟢 | 🟠 | 🟢 | 🟢 |
+| Безпека | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| **Вимоги до продуктивності** | | | | | |
+| Швидкість створення опитування | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| Швидкість збору даних | 🟢 | 🟢 | 🟢 | 🔴 | 🟢 |
+| Час обробки даних | 🟢 | 🟢 | 🟢 | 🟢 | 🟠 |
+| Масштабованість | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| Пропускна здатність | 🟢 | 🟢 | 🟢 | 🟢 | 🟠 |
+| **Вимоги до підтримки** | | | | | |
+| Ресурси самообслуговування | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+| Підтримка електронною поштою | 🟢 | 🟢 | 🔴 | 🟢 | 🟢 |
+| Підтримка чату | 🟢 | 🟢 | 🔴 | 🟢 | 🟢 |
+| Години роботи підтримки | 🟢 | 🟢 | 🟢 | 🟠 | 🟢 |
+| Мови підтримки | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
+
+## Висновки
+
+Система організації та управління опитуваннями експертів має важливе значення для аналізу бізнес-процесів та вивчення
+вимог ринку. Серед наведених систем найбільш привабливим варіантом для вирішення цієї задачі є "SurveyMonkey",
+незважаючи на деякі його недоліки. Серед цих недоліків можна відзначити складний інтерфейс та обмеження на проведення
+опитувань серед великої кількості людей лише у платній версії. З цими обмеженнями на увазі, розробка власної системи, де
+клієнти можуть отримувати доступ до опитувань безкоштовно, має сенс.
+
+## Посилання
+
+1.
+ Експертне опитування
+2.
+ Експерт
+3.
+ Переваги та недоліки експертного опитування
+4.
+ Застосування експертних опитувань
+5.
+ Підходи до проведення експертного опитування
+6.
+ Способи проведення експертного опитування
+7.
+ Вибір методу опитування
+8.
+ Анкетування: опис, методи, переваги та недоліки
diff --git a/docs/software/README.md b/docs/software/README.md
index 2362239d..bac3f339 100644
--- a/docs/software/README.md
+++ b/docs/software/README.md
@@ -1,3 +1,157 @@
# Реалізація інформаційного та програмного забезпечення
+```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 db_course
+-- -----------------------------------------------------
+
+-- -----------------------------------------------------
+-- Schema db_course
+-- -----------------------------------------------------
+CREATE SCHEMA IF NOT EXISTS `db_course` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;
+USE `db_course` ;
+
+-- -----------------------------------------------------
+-- Table `db_course`.`survey`
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS `db_course`.`survey` ;
+
+CREATE TABLE IF NOT EXISTS `db_course`.`survey` (
+`id` INT NOT NULL AUTO_INCREMENT,
+`name` VARCHAR(255) NOT NULL,
+`startDate` DATE NOT NULL,
+`endDate` DATE NOT NULL,
+PRIMARY KEY (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8mb4
+COLLATE = utf8mb4_0900_ai_ci;
+
+
+-- -----------------------------------------------------
+-- Table `db_course`.`question`
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS `db_course`.`question` ;
+
+CREATE TABLE IF NOT EXISTS `db_course`.`question` (
+`id` INT NOT NULL AUTO_INCREMENT,
+`description` TEXT NOT NULL,
+`number` INT NOT NULL,
+`surveyId` INT NULL DEFAULT NULL,
+PRIMARY KEY (`id`),
+INDEX `surveyId` (`surveyId` ASC) VISIBLE,
+CONSTRAINT `question_ibfk_1`
+FOREIGN KEY (`surveyId`)
+REFERENCES `db_course`.`survey` (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8mb4
+COLLATE = utf8mb4_0900_ai_ci;
+
+
+-- -----------------------------------------------------
+-- Table `db_course`.`answer`
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS `db_course`.`answer` ;
+
+CREATE TABLE IF NOT EXISTS `db_course`.`answer` (
+`id` INT NOT NULL AUTO_INCREMENT,
+`option` TEXT NOT NULL,
+`questionId` INT NULL DEFAULT NULL,
+PRIMARY KEY (`id`),
+INDEX `questionId` (`questionId` ASC) VISIBLE,
+CONSTRAINT `answer_ibfk_1`
+FOREIGN KEY (`questionId`)
+REFERENCES `db_course`.`question` (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8mb4
+COLLATE = utf8mb4_0900_ai_ci;
+
+
+-- -----------------------------------------------------
+-- Table `db_course`.`role`
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS `db_course`.`role` ;
+
+CREATE TABLE IF NOT EXISTS `db_course`.`role` (
+`id` INT NOT NULL AUTO_INCREMENT,
+`name` VARCHAR(255) NOT NULL,
+PRIMARY KEY (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8mb4
+COLLATE = utf8mb4_0900_ai_ci;
+
+
+-- -----------------------------------------------------
+-- Table `db_course`.`user`
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS `db_course`.`user` ;
+
+CREATE TABLE IF NOT EXISTS `db_course`.`user` (
+`id` INT NOT NULL AUTO_INCREMENT,
+`nickname` VARCHAR(255) NOT NULL,
+`email` VARCHAR(255) NOT NULL,
+`password` VARCHAR(255) NOT NULL,
+`roleId` INT NULL DEFAULT NULL,
+PRIMARY KEY (`id`),
+INDEX `roleId` (`roleId` ASC) VISIBLE,
+CONSTRAINT `user_ibfk_1`
+FOREIGN KEY (`roleId`)
+REFERENCES `db_course`.`role` (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8mb4
+COLLATE = utf8mb4_0900_ai_ci;
+
+
+-- -----------------------------------------------------
+-- Table `db_course`.`assignedsurvey`
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS `db_course`.`assignedsurvey` ;
+
+CREATE TABLE IF NOT EXISTS `db_course`.`assignedsurvey` (
+`surveyId` INT NOT NULL,
+`userId` INT NOT NULL,
+PRIMARY KEY (`surveyId`, `userId`),
+INDEX `userId` (`userId` ASC) VISIBLE,
+CONSTRAINT `assignedsurvey_ibfk_1`
+FOREIGN KEY (`surveyId`)
+REFERENCES `db_course`.`survey` (`id`),
+CONSTRAINT `assignedsurvey_ibfk_2`
+FOREIGN KEY (`userId`)
+REFERENCES `db_course`.`user` (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8mb4
+COLLATE = utf8mb4_0900_ai_ci;
+
+
+-- -----------------------------------------------------
+-- Table `db_course`.`statistic`
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS `db_course`.`statistic` ;
+
+CREATE TABLE IF NOT EXISTS `db_course`.`statistic` (
+`id` INT NOT NULL AUTO_INCREMENT,
+`surveyId` INT NULL DEFAULT NULL,
+PRIMARY KEY (`id`),
+INDEX `surveyId` (`surveyId` ASC) VISIBLE,
+CONSTRAINT `statistic_ibfk_1`
+FOREIGN KEY (`surveyId`)
+REFERENCES `db_course`.`survey` (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8mb4
+COLLATE = utf8mb4_0900_ai_ci;
+
+
+SET SQL_MODE=@OLD_SQL_MODE;
+SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
+SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
+```
diff --git a/docs/use cases/README.md b/docs/use cases/README.md
new file mode 100644
index 00000000..0c24c5a0
--- /dev/null
+++ b/docs/use cases/README.md
@@ -0,0 +1,580 @@
+# Модель прецедентів
+
+## Загальна схема
+
+
+
+@startuml
+
+actor "Користувач" as User
+actor "Експерт" as Expert
+actor "Адміністратор" as Admin
+
+Expert --u-|> User
+Admin --u-|> Expert
+
+usecase "Login\nВхід у систему" as Login
+usecase "Registration\nРеєстрація у системі" as Registration
+
+usecase "TakeSurvey\nПроходити опитування" as TakeSurvey
+usecase "EditAnswers\nРедагувати відповіді" as EditAnswers
+
+usecase "CreateSurvey\nСтворювати опитування" as CreateSurvey
+usecase "EditSurvey\nРедагувати опитування" as EditSurvey
+usecase "AssignSurvey\Призначати опитування" as AssignSurvey
+usecase "ViewStatistics\nПереглядати статистику" as ViewStatistics
+
+User -d-> Login
+User -l-> Registration
+
+Expert -u-> TakeSurvey
+Expert -l-> EditAnswers
+
+Admin -d-> CreateSurvey
+Admin -r-> EditSurvey
+Admin -l-> AssignSurvey
+Admin -u-> ViewStatistics
+
+@enduml
+
+
+
+## Схема використання для Користувача
+
+
+
+@startuml
+
+actor "Користувач" as User
+
+usecase "Login\nВхід у систему" as Login
+usecase "Registration\nРеєстрація у системі" as Registration
+
+User --> Login
+User --> Registration
+Login .u.> RecoveryPassword
+Registration .u.> RegistrationWithEmail
+@enduml
+
+
+## Схема використання для Експерта
+
+
+
+@startuml
+
+actor "Експерт" as Expert
+
+usecase "TakeSurvey\nПроходити опитування" as TakeSurvey
+usecase "EditAnswers\nРедагувати відповіді" as EditAnswers
+usecase "SaveAnswers\nЗберегти опитування" as SaveAnswers
+
+Expert -r-> TakeSurvey
+Expert -l-> EditAnswers
+TakeSurvey .u.> SaveAnswers
+
+@enduml
+
+
+
+## Схема використання для Адміністратора
+
+
+
+@startuml
+
+actor "Адміністратор" as Admin
+
+usecase "CreateSurvey\n Створювати опитування" as CreateSurvey
+usecase "EditSurvey\n Редагувати опитування" as EditSurvey
+usecase "AssignSurvey\ Призначати опитування" as AssignSurvey
+usecase "ViewStatistics\n Переглядати статистику" as ViewStatistics
+
+usecase "AddQuestion\n Додати питання" as AddQuestion
+usecase "RemoveQuestion\ Видалити питання" as RemoveQuestion
+usecase "RemoveSurvey\ Видалити опитування" as RemoveSurvey
+usecase "UnassignSurveyFromExpert\n Знімати опитування з експерту" as UnassignSurveyFromExpert
+usecase "FilterByName\n Пошук опитування за назвою" as FilterByName
+
+Admin -u-> CreateSurvey
+Admin -d-> EditSurvey
+Admin -l-> AssignSurvey
+Admin -r-> ViewStatistics
+
+CreateSurvey <. AddQuestion : Extends
+EditSurvey <.d. RemoveQuestion : Extends
+EditSurvey <.r. RemoveSurvey : Extends
+AssignSurvey <.l. UnassignSurveyFromExpert : Extends
+ViewStatistics <.r. FilterByName : Extends
+
+@enduml
+
+
+
+## Сценарії використання
+
+### Зареєструвати користувача
+
+| ID: | **Registration** |
+|:----------------------|:--------------------------------------------------------------------------|
+| **Назва** | Зареєструвати користувача |
+| **Учасники** | Система, користувач |
+| **Передумови** | Користувач незареєстрований |
+| **Результат** | Створено новий обліковий запис |
+| **Виключні ситуації** | EX01.01 Обліковий запис вже існує
EX.01.02 Користував ввів хибні дані |
+
+@startuml
+
+|Користувач|
+start;
+: Натискає на кнопку реєстрації;
+
+|Система|
+: Відкриває форму для реєстрації;
+
+|Користувач|
+: Вводить дані для реєстрації;
+: Підтверджує дані "Зареєструватися"
+(можлива EX01.01, EX.01.02);
+
+|Система|
+: Заносить дані користувача в базу даних;
+: Створює новий обліковий запис;
+
+|Користувач|
+: stop;
+@enduml
+
+### Авторизувати користувача
+
+| ID: | **Login** |
+|:----------------------|:---------------------------------------------------------------------------------------|
+| **Назва** | Авторизувати користувача |
+| **Учасники** | Система, користувач |
+| **Передумови** | Користувач зареєстрований, користувач не увійшов в обліковий запис |
+| **Результат** | Користувач увійшов в обліковий запис |
+| **Виключні ситуації** | EX02.01 Облікового доступу користувача не існує
EX02.02 Користувач ввів хибні дані |
+
+@startuml
+
+|Користувач|
+start;
+:Користувач натискає на кнопку авторизації;
+:Користувач вводить данні;
+:Користувач підтверджує дані
+(можлива EX.02.01 EX02.02);
+
+|Система|
+:Система дає запит до бази даних;
+:Перевіряє наявність облікового запису користувача в системі;
+:Надає доступ до особистого кабінету користувача;
+:Завантажує користувачу головну сторінку;
+
+|Користувач|
+:Користувач увійшов в обліковий запис;
+
+stop;
+
+@enduml
+
+### Вийти з облікового запису
+
+| ID: | **Logout_User** |
+|:----------------------|:----------------------------------------------------------------|
+| **Назва** | Вийти з облікового запису |
+| **Учасники** | Система, користувач |
+| **Передумови** | Користувач зареєстрований, користувач увійшов в обліковий запис |
+| **Результат** | Користувач вийшов з облікового запису |
+| **Виключні ситуації** | Відсутні |
+
+@startuml
+
+|Користувач|
+start;
+: Переходить на особисту сторінку;
+: \tНатискає кнопку\n"Вихід з облікового запису";
+
+|Система|
+: \tБлокує користувачу доступ\nдо особистого кабінету;
+
+|Користувач|
+: Користувач бачить сторінку авторізації;
+stop;
+
+@enduml
+
+### Проходити опитування
+
+| ID: | **TakeSurvey** |
+|:----------------------|:----------------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Проходження опитування експертом |
+| **Учасники** | Система, експерт |
+| **Передумови** | Користувач зареєстрований як експерт, опитування доступне для проходження |
+| **Результат** | Експерт надав відповіді на всі питання опитування; Відповіді експерта збережені в системі; Результати опитування зараховані |
+| **Виключні ситуації** | EX02.01: Опитування вже пройдено, EX02.02: Експерт не має права проходити опитування. |
+|
+
+@startuml
+
+|Експерт|
+start;
+: Авторизується в системі;
+: Вибирає доступне опитування;
+
+|Система|
+: Відкриває опитування;
+: Відображає питання;
+
+|Експерт|
+: Відповідає на питання;
+: Відправляє відповіді "Надіслати"
+(можлива EX02.01, EX02.02);
+
+|Система|
+: Зберігає відповіді експерта;
+: Зараховує результати опитування;
+
+|Експерт|
+: stop;
+
+@enduml
+
+### Редагувати опитування
+
+| ID: | **EditAnswers** |
+|:----------------------|:--------------------------------------------------------------------------------------------------------|
+| **Назва** | Редагування експертом своїх відповідей на опитування |
+| **Учасники** | Система, експерт |
+| **Передумови** | Експерт авторизований в системі, Опитування, на яке експерт надав відповіді, доступне для редагування |
+| **Результат** | Експерт відредагував свої відповіді на опитування; Відредаговані відповіді експерта збережені в системі |
+| **Виключні ситуації** | EX03.01: Опитування більше не доступне для редагування. |
+|
+
+@startuml
+
+|Експерт|
+start;
+: Вибирає опитування;
+: Переглядає свої відповіді;
+: Вибирає відповідь для редагування;
+: Вносить зміни до відповіді;
+: Зберігає зміни "Зберегти" (можлива EX03.01);
+
+|Система|
+: Зберігає відредаговані відповіді експерта;
+
+|Експерт|
+: stop;
+
+@enduml
+
+### Створювати опитування
+
+| ID: | **CreateSurvey** |
+|:----------------------|:----------------------------------------------------------------------------------------|
+| **Назва** | Створення опитування адміністратором |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі |
+| **Результат** | Адміністратор створив нове опитування, Опитування доступне користувачам для проходження |
+| **Виключні ситуації** | EX04.01: Опитування з такою назвою вже існує |
+
+@startuml
+|Адміністратор|
+: start;
+: Відкриває форму створення опитування;
+: Вводить назву та опис опитування;
+: Додає питання;
+: Вводить варіанти відповідей;
+: Встановлює дату початку та закінчення опитування;
+: Натискає кнопку "Створити" (можлива EX04.01);
+
+|Система|
+: Створює опитування в базі даних;
+: Відображає створене опитування;
+
+|Адміністратор|
+: Переглядає опитування;
+: Редагує опитування (за бажанням);
+: Закриває форму створення опитування;
+
+|Адміністратор|
+: stop;
+@enduml
+
+### Редагувати опитування
+
+| ID: | **EditSurvey** |
+|:----------------------|:------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Редагування опитування адміністратором |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі, Опитування, яке адміністратор хоче відредагувати, доступне для редагування |
+| **Результат** | Адміністратор успішно відредагував опитування, Зміни внесені до опитування в базі даних |
+| **Виключні ситуації** | EX05.01: Опитування більше не доступне для редагування |
+
+@startuml
+
+|Адміністратор|
+start;
+: Відкриває список опитувань;
+: Вибирає опитування для редагування;
+: Відкриває опитування;
+: Вносить зміни до назви, опису, питань, варіантів відповідей, дати початку/закінчення;
+: Натискає кнопку "Зберегти" (можлива EX05.01);
+
+|Система|
+: Зберігає відредаговані дані опитування;
+: Відображає відредаговане опитування;
+
+|Адміністратор|
+: Переглядає відредаговане опитування;
+: Редагує опитування далі (за бажанням);
+: Закриває форму редагування;
+
+|Адміністратор|
+: stop;
+@enduml
+
+### Призначення опитування експерту
+
+| ID: | **AssignSurvey** |
+|:----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Призначення опитування експерту |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі,
Опитування, яке адміністратор хоче призначити, доступне для призначення,
Експерт, якому адміністратор хоче призначити опитування, зареєстрований в системі |
+| **Результат** | Опитування успішно призначено експерту, Експерт бачить призначене опитування в списку опитувань |
+| **Виключні ситуації** | EX06.01: Експерт вже призначений до цього опитування |
+
+@startuml
+
+|Адміністратор|
+start;
+: Відкриває список опитувань;
+: Вибирає опитування для призначення;
+: Відкриває список експертів;
+: Вибирає експерта;
+: Натискає кнопку "Призначити" (можлива EX06.01);
+
+|Система|
+: Перевіряє доступність експерта;
+: Призначає опитування експерту;
+: Відправляє експерту повідомлення про призначення;
+
+|Адміністратор|
+: Переглядає список призначених експертів;
+: Закриває форму призначення;
+
+|Адміністратор|
+: stop;
+@enduml
+
+### Зняти опитування з експерта
+
+| ID: | **UnassignSurveyFromExpert** |
+|:----------------------|:-------------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Зняти опитування з експерта |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі,
Опитування доступне для редагування,
Експерт призначений до опитування |
+| **Результат** | Опитування успішно знято з обраного експерта, Експерт не бачить опитування в списку опитувань |
+| **Виключні ситуації** | EX07.01: Експерт не призначений до цього опитування. |
+
+@startuml
+
+|Адміністратор|
+
+start;
+: Авторизується в системі;
+: Відкриває список опитувань;
+: Вибирає опитування;
+: Переглядає список призначених експертів;
+: Вибирає експерта;
+: Натискає кнопку "Зняти" (можлива EX08.01);
+
+|Система|
+: Знімає опитування з експерта;
+: Видаляє зняте опитцвання зі списку опитувань експерта;
+
+|Адміністратор|
+: Переглядає оновлений список призначених експертів;
+: Закриває форму редагування;
+
+|Адміністратор|
+: stop;
+@enduml
+
+### Перегляд адміністратором статистики відповідей на опитування
+
+| ID: | **ViewStatistics** |
+|:----------------------|:------------------------------------------------------------------------------------------------------------------------------------|
+| **Назва** | Перегляд адміністратором статистики відповідей на опитування |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі,
Опитування, для якого адміністратор хоче переглянути статистику, доступне для перегляду |
+| **Результат** | Адміністратор успішно переглянув статистику відповідей на вибране опитування |
+| **Виключні ситуації** | EX08.01: Опитування більше не доступне для перегляду статистики |
+
+@startuml
+
+|Адміністратор|
+start;
+: Авторизується в системі;
+: Відкриває список опитувань;
+: Вибирає опитування для перегляду статистики;
+
+|Система|
+: Відображає статистику відповідей на опитування:
+: Кількість відповідей;
+: Відсотки відповідей на кожне питання;
+
+|Адміністратор|
+: Закриває вікно зі статистикою;
+
+|Адміністратор|
+: stop;
+@enduml
+
+### Пошук опитування за назвою
+
+| ID: | **FilterByName** |
+|:----------------------|:------------------------------------------------------------|
+| **Назва** | Пошук опитування за назвою |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі |
+| **Результат** | Адміністратор успішно знайшов опитування за вказаною назвою |
+| **Виключні ситуації** | EX09.01: Опитувань з такою назвою не знайдено. |
+
+@startuml
+
+|Адміністратор|
+start;
+: Відкриває форму пошуку;
+: Вводить назву опитування;
+: Натискає кнопку "Пошук";
+
+|Система|
+: Шукає опитування за вказаною назвою;
+: Відображає список знайдених опитувань;
+
+|Адміністратор|
+: Вибирає опитування зі списку (якщо знайдено);
+: Переглядає результати пошуку;
+: Закриває форму пошуку;
+
+|Адміністратор|
+: stop;
+@enduml
+
+### Додавання нового питання до опитування
+
+| ID: | **AddQuestion** |
+|:----------------------|:---------------------------------------------------------------------------|
+| **Назва** | Додавання нового питання до опитування |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі, Опитування доступне для редагування |
+| **Результат** | Адміністратор успішно додав нове питання до опитування |
+| **Виключні ситуації** | EX10.01: Опитування більше не доступне для редагування. |
+
+@startuml
+
+|Адміністратор|
+start;
+: Відкриває список опитувань;
+: Вибирає опитування для редагування;
+: Відкриває форму додавання питання;
+: Вводить текст питання;
+: Вводить варіанти відповідей;
+: Натискає кнопку "Додати" (можлива EX10.01);
+
+|Система|
+: Додає нове питання до опитування;
+: Відображає оновлене опитування;
+
+|Адміністратор|
+: Переглядає оновлене опитування;
+: Редагує опитування далі (за бажанням);
+: Закриває форму додавання питання;
+
+|Адміністратор|
+: stop;
+@enduml
+
+### Видалення питання до опитування
+
+| ID: | **RemoveQuestion** |
+|:----------------------|:---------------------------------------------------------------------------|
+| **Назва** | Додавання нового питання до опитування |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі, Опитування доступне для редагування |
+| **Результат** | Адміністратор успішно видалив питання з опитування |
+| **Виключні ситуації** | EX11.01: Опитування більше не доступне для редагування. |
+
+@startuml
+
+|Адміністратор|
+start;
+: Відкриває список опитувань;
+: Вибирає опитування для редагування;
+: Відкриває опитування;
+: Вибирає питання для видалення;
+: Натискає кнопку "Видалити" (можлива EX11.01);
+
+|Система|
+: Видаляє питання з опитування;
+: Відображає оновлене опитування;
+
+|Адміністратор|
+: Переглядає оновлене опитування;
+: Редагує опитування далі (за бажанням);
+: Закриває форму додавання питання;
+
+|Адміністратор|
+: stop;
+@enduml
+
+### Видалення опитування
+
+| ID: | **RemoveSurvey** |
+|:----------------------|:---------------------------------------------------------------------------|
+| **Назва** | Видалення опитування |
+| **Учасники** | Система, Адміністратор |
+| **Передумови** | Адміністратор авторизований в системі, Опитування доступне для редагування |
+| **Результат** | Адміністратор успішно видалив опитування |
+| **Виключні ситуації** | EX12.01: Опитування більше не доступне для редагування. |
+
+@startuml
+
+|Адміністратор|
+start;
+: Відкриває список опитувань;
+: Вибирає опитування для видалення;
+: Натискає кнопку "Видалити" (можлива EX12.01);
+
+|Система|
+: Перевіряє, чи можна видалити опитування;
+: Видаляє опитування;
+
+|Адміністратор|
+: Переглядає оновлений список опитувань;
+
+|Адміністратор|
+: stop;
+
+@enduml
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 99fc92d4..37ddf23b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5 +1,5 @@
{
- "name": "dis-edu",
+ "name": "edu_db_labs_group1",
"version": "2.1.0",
"lockfileVersion": 1,
"requires": true,
@@ -1767,39 +1767,11 @@
"glob-to-regexp": "^0.3.0"
}
},
- "@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "dependencies": {
- "@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true
- }
- }
- },
"@nodelib/fs.stat": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
"integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw=="
},
- "@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "requires": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- }
- },
"@sindresorhus/is": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
@@ -1878,27 +1850,6 @@
"@babel/types": "^7.3.0"
}
},
- "@types/debug": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
- "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
- "dev": true,
- "requires": {
- "@types/ms": "*"
- }
- },
- "@types/extend": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz",
- "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw==",
- "dev": true
- },
- "@types/github-slugger": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@types/github-slugger/-/github-slugger-1.3.0.tgz",
- "integrity": "sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g==",
- "dev": true
- },
"@types/glob": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz",
@@ -1946,26 +1897,11 @@
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
"integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ=="
},
- "@types/mdast": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
- "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==",
- "dev": true,
- "requires": {
- "@types/unist": "*"
- }
- },
"@types/minimatch": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
},
- "@types/ms": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
- "dev": true
- },
"@types/node": {
"version": "16.7.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.6.tgz",
@@ -1988,12 +1924,6 @@
"integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
"dev": true
},
- "@types/unist": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
- "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==",
- "dev": true
- },
"@types/yargs": {
"version": "16.0.4",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
@@ -2766,12 +2696,6 @@
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
},
- "arg": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz",
- "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==",
- "dev": true
- },
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
@@ -3161,12 +3085,6 @@
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
"integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
},
- "bail": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz",
- "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==",
- "dev": true
- },
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -3868,12 +3786,6 @@
"lodash": "^4.17.15"
}
},
- "ccount": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz",
- "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==",
- "dev": true
- },
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -3890,24 +3802,6 @@
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true
},
- "character-entities": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz",
- "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==",
- "dev": true
- },
- "character-entities-legacy": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz",
- "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==",
- "dev": true
- },
- "character-reference-invalid": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz",
- "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==",
- "dev": true
- },
"chart.js": {
"version": "2.9.4",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz",
@@ -4225,12 +4119,6 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
},
- "comment-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.2.4.tgz",
- "integrity": "sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw==",
- "dev": true
- },
"common-sequence": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz",
@@ -5782,15 +5670,6 @@
"zepto": "^1.2.0"
}
},
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
"dom-converter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -6430,15 +6309,6 @@
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
"dev": true
},
- "fastq": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz",
- "integrity": "sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==",
- "dev": true,
- "requires": {
- "reusify": "^1.0.4"
- }
- },
"faye-websocket": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
@@ -6742,12 +6612,6 @@
"assert-plus": "^1.0.0"
}
},
- "github-slugger": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz",
- "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==",
- "dev": true
- },
"glob": {
"version": "7.1.7",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
@@ -7504,22 +7368,6 @@
}
}
},
- "is-alphabetical": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz",
- "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==",
- "dev": true
- },
- "is-alphanumerical": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz",
- "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==",
- "dev": true,
- "requires": {
- "is-alphabetical": "^2.0.0",
- "is-decimal": "^2.0.0"
- }
- },
"is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -7631,12 +7479,6 @@
"has-tostringtag": "^1.0.0"
}
},
- "is-decimal": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz",
- "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==",
- "dev": true
- },
"is-descriptor": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
@@ -7688,12 +7530,6 @@
"is-extglob": "^2.1.1"
}
},
- "is-hexadecimal": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz",
- "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==",
- "dev": true
- },
"is-installed-globally": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
@@ -9928,157 +9764,6 @@
"walk-back": "^5.0.0"
}
},
- "jsdoc-md": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/jsdoc-md/-/jsdoc-md-11.0.2.tgz",
- "integrity": "sha512-HIQL3tJ4vpCCDmSZR9XuwfuKPVRMroXAs3smbf6vygnYevibjSqqzTEJ6bWBVke8plHkLs1nHwKt4F+ClgVZ/A==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.14.5",
- "@babel/core": "^7.15.0",
- "arg": "^5.0.0",
- "comment-parser": "^1.2.3",
- "doctrine": "^3.0.0",
- "github-slugger": "^1.3.0",
- "globby": "^12.0.0",
- "kleur": "^4.1.4",
- "mdast-util-inject": "^1.1.0",
- "remark-behead": "^2.3.3",
- "remark-gfm": "^2.0.0",
- "remark-parse": "^10.0.0",
- "remark-stringify": "^10.0.0",
- "remark-toc": "^8.0.0",
- "trim-newlines": "^4.0.2",
- "unified": "^10.1.0",
- "unist-util-remove-position": "^4.0.1"
- },
- "dependencies": {
- "@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true
- },
- "array-union": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz",
- "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==",
- "dev": true
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "requires": {
- "path-type": "^4.0.0"
- }
- },
- "fast-glob": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
- "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- }
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "globby": {
- "version": "12.0.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz",
- "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==",
- "dev": true,
- "requires": {
- "array-union": "^3.0.1",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.7",
- "ignore": "^5.1.8",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
- }
- },
- "ignore": {
- "version": "5.1.8",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
- "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
- "dev": true
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "kleur": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz",
- "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==",
- "dev": true
- },
- "micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- }
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- },
- "slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "dev": true
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- }
- }
- },
"jsdoc-parse": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.0.1.tgz",
@@ -10405,12 +10090,6 @@
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
},
- "lodash.iteratee": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.iteratee/-/lodash.iteratee-4.7.0.tgz",
- "integrity": "sha1-vkF32yiajMw8CZDx2ya1si/BVUw=",
- "dev": true
- },
"lodash.kebabcase": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
@@ -10466,12 +10145,6 @@
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz",
"integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw=="
},
- "longest-streak": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz",
- "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==",
- "dev": true
- },
"lower-case": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
@@ -10594,12 +10267,6 @@
"resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz",
"integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA=="
},
- "markdown-table": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz",
- "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==",
- "dev": true
- },
"marked": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz",
@@ -10621,291 +10288,60 @@
"safe-buffer": "^5.1.2"
}
},
- "mdast-util-find-and-replace": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.1.0.tgz",
- "integrity": "sha512-1w1jbqAd13oU78QPBf5223+xB+37ecNtQ1JElq2feWols5oEYAl+SgNDnOZipe7NfLemoEt362yUS15/wip4mw==",
- "dev": true,
+ "mdn-data": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
+ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
+ },
+ "mdurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
"requires": {
- "escape-string-regexp": "^5.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^4.0.0"
- },
- "dependencies": {
- "escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true
- },
- "unist-util-is": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
- "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
- "dev": true
- },
- "unist-util-visit-parents": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz",
- "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
- }
- }
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
}
},
- "mdast-util-from-markdown": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.0.tgz",
- "integrity": "sha512-uj2G60sb7z1PNOeElFwCC9b/Se/lFXuLhVKFOAY2EHz/VvgbupTQRNXPoZl7rGpXYL6BNZgcgaybrlSWbo7n/g==",
- "dev": true,
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "merge-source-map": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
+ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
"requires": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "mdast-util-to-string": "^3.0.0",
- "micromark": "^3.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "parse-entities": "^3.0.0",
- "unist-util-stringify-position": "^3.0.0"
+ "source-map": "^0.6.1"
},
"dependencies": {
- "mdast-util-to-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz",
- "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==",
- "dev": true
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
- "mdast-util-gfm": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-1.0.0.tgz",
- "integrity": "sha512-JY4qImsTqivQ0Gl3qvdaizCpomFaNrHnjEhNjNNKeNEA5jZHAJDYu1+yO4V9jn4/ti8GrKdAScaT4F71knoxsA==",
- "dev": true,
- "requires": {
- "mdast-util-gfm-autolink-literal": "^1.0.0",
- "mdast-util-gfm-strikethrough": "^1.0.0",
- "mdast-util-gfm-table": "^1.0.0",
- "mdast-util-gfm-task-list-item": "^1.0.0"
- }
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
},
- "mdast-util-gfm-autolink-literal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.1.tgz",
- "integrity": "sha512-dCUDNYXCytIonTHIUOZXp5S3FWd1XAt6IVH1fBfH6BbUF9U+9m1T9XllfHPvKJCccKNI+0RlYmQJ0rfMTDxEtA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "ccount": "^2.0.0",
- "mdast-util-find-and-replace": "^2.0.0",
- "micromark-util-character": "^1.0.0"
- }
- },
- "mdast-util-gfm-strikethrough": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz",
- "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.3",
- "mdast-util-to-markdown": "^1.0.0"
- }
- },
- "mdast-util-gfm-table": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz",
- "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==",
- "dev": true,
- "requires": {
- "markdown-table": "^3.0.0",
- "mdast-util-to-markdown": "^1.0.0"
- }
- },
- "mdast-util-gfm-task-list-item": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz",
- "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.3",
- "mdast-util-to-markdown": "^1.0.0"
- }
- },
- "mdast-util-inject": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz",
- "integrity": "sha1-2wa4tYW+lZotzS+H9HK6m3VvNnU=",
- "dev": true,
- "requires": {
- "mdast-util-to-string": "^1.0.0"
- }
- },
- "mdast-util-to-markdown": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.1.tgz",
- "integrity": "sha512-yj0UexEfdH0Zqw9CztzC5+J6OZKgCY6K0ommn56SBlPKIV3NGqk1Wo/zw1Q0e/kHb50wmQ8O9cwbOl7vmaJjxg==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-to-string": "^3.0.0",
- "parse-entities": "^3.0.0",
- "unist-util-visit": "^4.0.0",
- "zwitch": "^2.0.0"
- },
- "dependencies": {
- "mdast-util-to-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz",
- "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==",
- "dev": true
- },
- "unist-util-is": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
- "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
- "dev": true
- },
- "unist-util-visit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz",
- "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^5.0.0"
- }
- },
- "unist-util-visit-parents": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz",
- "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
- }
- }
- }
- },
- "mdast-util-to-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
- "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
- "dev": true
- },
- "mdast-util-toc": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-6.1.0.tgz",
- "integrity": "sha512-0PuqZELXZl4ms1sF7Lqigrqik4Ll3UhbI+jdTrfw7pZ9QPawgl7LD4GQ8MkU7bT/EwiVqChNTbifa2jLLKo76A==",
- "dev": true,
- "requires": {
- "@types/extend": "^3.0.0",
- "@types/github-slugger": "^1.0.0",
- "@types/mdast": "^3.0.0",
- "extend": "^3.0.0",
- "github-slugger": "^1.0.0",
- "mdast-util-to-string": "^3.1.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit": "^3.0.0"
- },
- "dependencies": {
- "mdast-util-to-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz",
- "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==",
- "dev": true
- },
- "unist-util-is": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
- "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
- "dev": true
- },
- "unist-util-visit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz",
- "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^4.0.0"
- }
- },
- "unist-util-visit-parents": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz",
- "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
- }
- }
- }
- },
- "mdn-data": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
- "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="
- },
- "mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
- },
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
- },
- "memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
- "requires": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
- }
- },
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
- },
- "merge-source-map": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
- "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
- "requires": {
- "source-map": "^0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
- }
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
},
"mermaid": {
"version": "8.12.0",
@@ -10928,312 +10364,6 @@
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
- "micromark": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.5.tgz",
- "integrity": "sha512-QfjERBnPw0G9mxhOCkkbRP0n8SX8lIBLrEKeEVceviUukqVMv3hWE4AgNTOK/W6GWqtPvvIHg2Apl3j1Dxm6aQ==",
- "dev": true,
- "requires": {
- "@types/debug": "^4.0.0",
- "debug": "^4.0.0",
- "micromark-core-commonmark": "^1.0.1",
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-combine-extensions": "^1.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-encode": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-sanitize-uri": "^1.0.0",
- "micromark-util-subtokenize": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.1",
- "parse-entities": "^3.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "micromark-core-commonmark": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.1.tgz",
- "integrity": "sha512-vEOw8hcQ3nwHkKKNIyP9wBi8M50zjNajtmI+cCUWcVfJS+v5/3WCh4PLKf7PPRZFUutjzl4ZjlHwBWUKfb/SkA==",
- "dev": true,
- "requires": {
- "micromark-factory-destination": "^1.0.0",
- "micromark-factory-label": "^1.0.0",
- "micromark-factory-space": "^1.0.0",
- "micromark-factory-title": "^1.0.0",
- "micromark-factory-whitespace": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-classify-character": "^1.0.0",
- "micromark-util-html-tag-name": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-subtokenize": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.1",
- "parse-entities": "^3.0.0"
- }
- },
- "micromark-extension-gfm": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-1.0.0.tgz",
- "integrity": "sha512-OjqbQPL1Vec/4l5hnC8WnMNmWwgrT9JvzR2udqIGrGKecZsdwY9GAWZ5482CuD12SXuHNj8aS8epni6ip0Pwog==",
- "dev": true,
- "requires": {
- "micromark-extension-gfm-autolink-literal": "^1.0.0",
- "micromark-extension-gfm-strikethrough": "^1.0.0",
- "micromark-extension-gfm-table": "^1.0.0",
- "micromark-extension-gfm-tagfilter": "^1.0.0",
- "micromark-extension-gfm-task-list-item": "^1.0.0",
- "micromark-util-combine-extensions": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-extension-gfm-autolink-literal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz",
- "integrity": "sha512-t+K0aPK32mXypVTEKV+WRfoT/Rb7MERDgHZVRr56NXpyQQhgMk72QnK4NljYUlrgbuesH+MxiPQwThzqRDIwvA==",
- "dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-sanitize-uri": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-extension-gfm-strikethrough": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.1.tgz",
- "integrity": "sha512-fzGYXWz9HPWH1uHqYwdyR8XpEtuoYVHUjTdPQTnl3ETVZOQe1NXMwE3RA7AMqeON52hG+kO9g1/P1+pLONBSMQ==",
- "dev": true,
- "requires": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-classify-character": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-extension-gfm-table": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.0.tgz",
- "integrity": "sha512-OATRuHDgEAT/aaJJRSdU12V+s01kNSnJ0jumdfLq5mPy0F5DkR3zbTSFLH4tjVYM0/kEG6umxIhHY62mFe4z5Q==",
- "dev": true,
- "requires": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-extension-gfm-tagfilter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz",
- "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==",
- "dev": true,
- "requires": {
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-extension-gfm-task-list-item": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.0.tgz",
- "integrity": "sha512-3tkHCq1NNwijtwpjYba9+rl1yvQ4xYg8iQpUAfTJRyq8MtIEsBUF/vW6B9Gh8Qwy1hE2FmpyHhP4jnFAt61zLg==",
- "dev": true,
- "requires": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-factory-destination": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz",
- "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==",
- "dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-factory-label": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz",
- "integrity": "sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww==",
- "dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-factory-space": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz",
- "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==",
- "dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-factory-title": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz",
- "integrity": "sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA==",
- "dev": true,
- "requires": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-factory-whitespace": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz",
- "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==",
- "dev": true,
- "requires": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-util-character": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz",
- "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==",
- "dev": true,
- "requires": {
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-util-chunked": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz",
- "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==",
- "dev": true,
- "requires": {
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "micromark-util-classify-character": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz",
- "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==",
- "dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-util-combine-extensions": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz",
- "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==",
- "dev": true,
- "requires": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-util-decode-numeric-character-reference": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz",
- "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==",
- "dev": true,
- "requires": {
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "micromark-util-encode": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz",
- "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==",
- "dev": true
- },
- "micromark-util-html-tag-name": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz",
- "integrity": "sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g==",
- "dev": true
- },
- "micromark-util-normalize-identifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz",
- "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==",
- "dev": true,
- "requires": {
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "micromark-util-resolve-all": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz",
- "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==",
- "dev": true,
- "requires": {
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-util-sanitize-uri": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz",
- "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==",
- "dev": true,
- "requires": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-encode": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "micromark-util-subtokenize": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz",
- "integrity": "sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ==",
- "dev": true,
- "requires": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "micromark-util-symbol": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz",
- "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==",
- "dev": true
- },
- "micromark-util-types": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz",
- "integrity": "sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==",
- "dev": true
- },
"micromatch": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -11913,20 +11043,6 @@
"safe-buffer": "^5.1.1"
}
},
- "parse-entities": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz",
- "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==",
- "dev": true,
- "requires": {
- "character-entities": "^2.0.0",
- "character-entities-legacy": "^2.0.0",
- "character-reference-invalid": "^2.0.0",
- "is-alphanumerical": "^2.0.0",
- "is-decimal": "^2.0.0",
- "is-hexadecimal": "^2.0.0"
- }
- },
"parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -12851,12 +11967,6 @@
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
},
- "queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
- },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -13121,64 +12231,6 @@
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk="
},
- "remark-behead": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/remark-behead/-/remark-behead-2.3.3.tgz",
- "integrity": "sha512-quY6Of8Bwj4pgrG/Qce6a/sMMzFc0XxbfeYko+mPjOScIB+TKw3T0Y2GUcIEL8+xbQgAnCylkPQNt9haCEWK9w==",
- "dev": true,
- "requires": {
- "unist-util-find": "^1.0.1",
- "unist-util-find-all-after": "^3.0.1",
- "unist-util-find-all-before": "^2.0.5",
- "unist-util-find-all-between": "^2.0.0",
- "unist-util-visit": "^2.0.3"
- }
- },
- "remark-gfm": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-2.0.0.tgz",
- "integrity": "sha512-waIv4Tjcd2CTUDxKRYzuPyIHw1FoX4H2GjXAzXV9PxQWb+dU4fJivd/FZ+nxyzPARrqTjMIkwIwPoWNbpBhjcQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-gfm": "^1.0.0",
- "micromark-extension-gfm": "^1.0.0",
- "unified": "^10.0.0"
- }
- },
- "remark-parse": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz",
- "integrity": "sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-from-markdown": "^1.0.0",
- "unified": "^10.0.0"
- }
- },
- "remark-stringify": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.0.tgz",
- "integrity": "sha512-3LAQqJ/qiUxkWc7fUcVuB7RtIT38rvmxfmJG8z1TiE/D8zi3JGQ2tTcTJu9Tptdpb7gFwU0whRi5q1FbFOb9yA==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.0.0",
- "unified": "^10.0.0"
- }
- },
- "remark-toc": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/remark-toc/-/remark-toc-8.0.0.tgz",
- "integrity": "sha512-chuNL5FNQL3tj9i/JxQn9yczmaQi7BMj8ml7z79+pMqy4HDNRMv/ST52zYugbLX08bISsUCTdKZ9Nrqii3qYqw==",
- "dev": true,
- "requires": {
- "@types/mdast": "^3.0.0",
- "mdast-util-toc": "^6.0.0",
- "unified": "^10.0.0"
- }
- },
"remove-trailing-separator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
@@ -13366,12 +12418,6 @@
"resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
"integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs="
},
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
- },
"rgb-regex": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
@@ -13404,15 +12450,6 @@
"resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz",
"integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g=="
},
- "run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "requires": {
- "queue-microtask": "^1.2.2"
- }
- },
"run-queue": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
@@ -14744,18 +13781,6 @@
"punycode": "^2.1.1"
}
},
- "trim-newlines": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz",
- "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==",
- "dev": true
- },
- "trough": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz",
- "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==",
- "dev": true
- },
"tty-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
@@ -14889,35 +13914,6 @@
"resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
"integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg=="
},
- "unified": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz",
- "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "bail": "^2.0.0",
- "extend": "^3.0.0",
- "is-buffer": "^2.0.0",
- "is-plain-obj": "^4.0.0",
- "trough": "^2.0.0",
- "vfile": "^5.0.0"
- },
- "dependencies": {
- "is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true
- },
- "is-plain-obj": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz",
- "integrity": "sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==",
- "dev": true
- }
- }
- },
"union-value": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
@@ -14963,171 +13959,6 @@
"crypto-random-string": "^2.0.0"
}
},
- "unist-util-find": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unist-util-find/-/unist-util-find-1.0.2.tgz",
- "integrity": "sha512-ft06UDYzqi9o9RmGP0sZWI/zvLLQiBW2/MD+rW6mDqbOWDcmknGX9orQPspfuGRYWr8eSJAmfsBcvOpfGRJseA==",
- "dev": true,
- "requires": {
- "lodash.iteratee": "^4.5.0",
- "unist-util-visit": "^1.1.0"
- },
- "dependencies": {
- "unist-util-visit": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
- "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
- "dev": true,
- "requires": {
- "unist-util-visit-parents": "^2.0.0"
- }
- }
- }
- },
- "unist-util-find-all-after": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz",
- "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==",
- "dev": true,
- "requires": {
- "unist-util-is": "^4.0.0"
- },
- "dependencies": {
- "unist-util-is": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
- "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
- "dev": true
- }
- }
- },
- "unist-util-find-all-before": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/unist-util-find-all-before/-/unist-util-find-all-before-2.0.5.tgz",
- "integrity": "sha512-lYakZyw3trON5qbsOsmtRARZTyKcQN8pkoMKLy558Nt8WhlqGAnRSD9qLrISkMKbS+0nhj8LiebgoheUtQXOZw==",
- "dev": true,
- "requires": {
- "unist-util-is": "^4.0.0"
- },
- "dependencies": {
- "unist-util-is": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
- "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
- "dev": true
- }
- }
- },
- "unist-util-find-all-between": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-find-all-between/-/unist-util-find-all-between-2.1.0.tgz",
- "integrity": "sha512-OCCUtDD8UHKeODw3TPXyFDxPCbpgBzbGTTaDpR68nvxkwiVcawBqMVrokfBMvUi7ij2F5q7S4s4Jq5dvkcBt+w==",
- "dev": true,
- "requires": {
- "unist-util-find": "^1.0.1",
- "unist-util-is": "^4.0.2"
- },
- "dependencies": {
- "unist-util-is": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
- "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
- "dev": true
- }
- }
- },
- "unist-util-is": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
- "dev": true
- },
- "unist-util-remove-position": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.1.tgz",
- "integrity": "sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- },
- "dependencies": {
- "unist-util-is": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
- "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
- "dev": true
- },
- "unist-util-visit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz",
- "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^5.0.0"
- }
- },
- "unist-util-visit-parents": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz",
- "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
- }
- }
- }
- },
- "unist-util-stringify-position": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz",
- "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0"
- }
- },
- "unist-util-visit": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
- "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0",
- "unist-util-visit-parents": "^3.0.0"
- },
- "dependencies": {
- "unist-util-is": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
- "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
- "dev": true
- },
- "unist-util-visit-parents": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
- "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0"
- }
- }
- }
- },
- "unist-util-visit-parents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
- "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
- "dev": true,
- "requires": {
- "unist-util-is": "^3.0.0"
- }
- },
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -15412,36 +14243,6 @@
"extsprintf": "^1.2.0"
}
},
- "vfile": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz",
- "integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile-message": "^3.0.0"
- },
- "dependencies": {
- "is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true
- }
- }
- },
- "vfile-message": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz",
- "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==",
- "dev": true,
- "requires": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0"
- }
- },
"vm-browserify": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
@@ -16497,12 +15298,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz",
"integrity": "sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g="
- },
- "zwitch": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.2.tgz",
- "integrity": "sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==",
- "dev": true
}
}
}
diff --git a/package.json b/package.json
index a4dc595a..6a583791 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,13 @@
{
- "name": "dis-edu",
+ "name": "edu_db_labs_group1",
"version": "2.1.0",
"main": "index.js",
"description": "Databases course work template",
- "repository": "https://github.com/boldak/dis-edu",
+ "repository": "https://github.com/Oksuzova/db-course-theme1",
"author": "Andrey Boldak ",
"license": "ECL 2.0",
"scripts": {
- "test":"jest",
+ "test": "jest",
"docs:api": "jsdoc2md src/**/*.js > docs/api/README.md",
"docs:dev": "npm run docs:api && npx vuepress dev docs",
"docs:build": "npm run docs:api && npx vuepress build docs",
@@ -23,5 +23,4 @@
"jest": "^27.1.0",
"jsdoc-to-markdown": "^7.0.1"
}
-
}
diff --git a/publish.sh b/publish.sh
index 8dcaea4c..787f3bda 100644
--- a/publish.sh
+++ b/publish.sh
@@ -20,6 +20,6 @@ git commit -m 'deploy'
# git push -f git@github.com:boldak/.github.io.git master
# if you are deploying to https://.github.io/
-git push -f https://github.com/boldak/dis-edu.git master:gh-pages
+git push -f https://github.com/Oksuzova/db-course-theme1.git master:gh-pages
cd -