diff --git a/README.md b/README.md
index bfd470aa6..bada6caab 100644
--- a/README.md
+++ b/README.md
@@ -1,69 +1,26 @@
+**Виконали:**
-# Шаблон репозиторію для виконання курсової роботи з дисципліни "Бази даних"
+*студент 2-го курсу, групи ІМ-24* **Волковський Микита nikitavolkovskyi@gmail.com, @HiImNikk**
-## Як використовувати
+*студентка 2-го курсу, групи ІМ-24* **Голубенко Анастасія golubenkoanastasya@gmail.com, @anasteishat**
-В цьому репозиторії знаходиться шаблон для виконання курсової роботи.
+*студент 2-го курсу, групи ІМ-24* **Дідур Вадим vadimdidur20@gmail.com, @hirsukyosyp**
-Для виконання курсової роботи необхідно зробити ```fork``` цього репозіторію, склонувати вже власний репозіторій та розміщувати документацію у відповідних діректоріях ```./docs```.
+*студентка 2-го курсу, групи ІМ-24* **Іванова Дар`я dasharikong@gmail.com, @MyOleg**
-В цьому файлі необхідно вказати назву проекту. Коротку загальну характеристику
-проекту, контактні дані виконавця, посилання на репо співвиконавців(за необхідністю).
+*студент 2-го курсу, групи ІМ-24* **Коваленко Владислав kovalenkov222@gmail.com, @Vostokus**
+*студент 2-го курсу, групи ІМ-24* **Козак Богдан bkozak04@gmail.com, @bifynok**
-Шаблон публікування курсової роботи підготовлено з використанням [VuePress](https://vuepress.vuejs.org/), та стартера
-[FriendlyUser/vuepress-theme-cool-starter](https://github.com/FriendlyUser/vuepress-theme-cool-starter).
-Щоб опублікувати проект у Github Pages, налаштовуємо Github Pages (гілка ```gh-pages```), змінюємо файл ```./publish.sh```
+**Керівник**
-```sh
+*доцент кафедри ОТ ФІОТ, к.т.н., доцент* **Андрій БОЛДАК**
-#!/usr/bin/env sh
+[НТУУ "КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ імені ІГОРЯ СІКОРСЬКОГО](https://kpi.ua/)
-# abort on errors
-set -e
+[Факультет інформатики та обчислювальної техніки](https://fiot.kpi.ua/)
-# build
-npm run docs:build
+[Кафедра обчислювальної техніки](https://comsys.kpi.ua/)
-# navigate into the build output directory
-cd docs/.vuepress/dist
-
-# if you are deploying to a custom domain
-# echo 'www.example.com' > CNAME
-
-git init
-git add -A
-git commit -m 'deploy'
-
-# if you are deploying to https://.github.io
-# 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//dis-edu.git master:gh-pages
-
-cd -
-
-```
-
-Потім запускаємо
-
-```bash
- npm run publish
-```
-
-Для відлагодження документації в локальному режимі запускаємо
-
-```bash
- npm run docs:dev
-```
-
-Доступ до локально опублікованої версії [http://localhost:3030](http://localhost:3030)
-
-
-## Додаткова інформація
-
-- [Теми проєктів](./guidelines/themes.md)
-- [Методичні вказівки](./guidelines/guidelines.md)
-
-***Happy learning! Happy coding!***
+Київ
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index ccba6f175..9050c2a13 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -15,7 +15,7 @@ module.exports = {
}]
],
port: 3030,
- base: '/docs/',
+ base: '/Media-content-analysis-system_DB/',
theme: 'cool',
// dest: 'dist',
head: [
@@ -76,7 +76,7 @@ module.exports = {
lastUpdated: 'Останнє оновлення', // string | boolean
// Assumes GitHub. Can also be a full GitLab url.
- repo: 'https://github.com/boldak/edu-db-cw',
+ repo: 'https://github.com/Rembqq/Media-content-analysis-system_DB',
// Customising the header label
// Defaults to "GitHub"/"GitLab"/"Bitbucket" depending on `themeConfig.repo`
repoLabel: 'Github',
@@ -95,7 +95,7 @@ module.exports = {
// editLinkText: 'Ви можете покращити цю сторінку'
},
- title: 'Назва проєкту',
+ title: 'Система аналізу медіа-контенту',
description: 'Курсова робота з дисципліни "Бази даних"',
configureWebpack: {
resolve: {
@@ -112,4 +112,4 @@ module.exports = {
md.use(require('markdown-it-admonition'))
}
}
-}
\ No newline at end of file
+}
diff --git a/docs/README.md b/docs/README.md
index 9c28efeb0..2c80363de 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -3,13 +3,22 @@ home: true
actionText: Розпочати →
actionLink: /intro/
-footer: "ECL 2.0 Licensed | Copyright © [YYYY] [Your Name]"
+footer: "ECL 2.0 Licensed | Copyright © [2023] [Nikita Volkovskyi]"
---
+**Виконали:**
-**Виконав(-ла):**
+*студент 2-го курсу, групи ІМ-24* **Волковський Микита nikitavolkovskyi@gmail.com, @HiImNikk**
-*студент(-ка) 2-го курсу, групи (шифр групи)* **[ім’я ПРІЗВИЩЕ] [Посилання email, tg, fb]**
+*студентка 2-го курсу, групи ІМ-24* **Голубенко Анастасія golubenkoanastasya@gmail.com, @anasteishat**
+
+*студент 2-го курсу, групи ІМ-24* **Дідур Вадим vadimdidur20@gmail.com, @hirsukyosyp**
+
+*студентка 2-го курсу, групи ІМ-24* **Іванова Дар`я dasharikong@gmail.com, @MyOleg**
+
+*студент 2-го курсу, групи ІМ-24* **Коваленко Владислав kovalenkov222@gmail.com, @Vostokus**
+
+*студент 2-го курсу, групи ІМ-24* **Козак Богдан bkozak04@gmail.com, @bifynok**
**Керівник**
diff --git a/docs/design/README.md b/docs/design/README.md
index 25658a9fd..9cd128ab3 100644
--- a/docs/design/README.md
+++ b/docs/design/README.md
@@ -1,7 +1,79 @@
# Проєктування бази даних
-В рамках проекту розробляється:
-- модель бізнес-об'єктів
-- ER-модель
-- реляційна схема
+## Модель бізнес-об'єктів
+
+@startuml
+
+ entity User <> #6f91c7
+ entity User.id <> #e9f2d5
+ entity User.nickname <> #e9f2d5
+ entity User.email <> #e9f2d5
+ entity User.password <> #e9f2d5
+
+ User *-r- User.id
+ User *-d- User.nickname
+ User *-d- User.email
+ User *-l- User.password
+
+ entity Access <> #6f91c7
+ entity Access.id <>
+
+ Access *-- Access.id
+
+ entity Role <> #6f91c7
+ entity Role.name <> #d7dbb4
+ entity Role.description <> #d7dbb4
+
+ User "0,*"--"1,1" Access
+ Access "1,1"--"0,*" Role
+
+ Role *-d- Role.description
+ Role *-d- Role.name
+
+ entity MentionReport <> #6f91c7
+ entity MentionReport.id <> #b9bd9d
+ entity MentionReport.description <> #b9bd9d
+ entity MentionReport.creationDate <> #b9bd9d
+ entity MentionReport.title <> #b9bd9d
+
+ User "1,1"-u-"0,*" MentionReport
+
+ MentionReport *-u- MentionReport.id
+ MentionReport *-u- MentionReport.description
+ MentionReport *-u- MentionReport.creationDate
+ MentionReport *-l- MentionReport.title
+
+ entity ResultData <> #6f91c7
+ entity ResultData.id <> #dbce9e
+ entity ResultData.mentions <> #dbce9e
+ entity ResultData.mentionedAt <> #dbce9e
+ entity ResultData.source <> #dbce9e
+ entity ResultData.body <> #dbce9e
+
+ MentionReport "1,1"--"0,*" ResultData
+
+ ResultData *-r- ResultData.id
+ ResultData *-u- ResultData.mentions
+ ResultData *-u- ResultData.mentionedAt
+ ResultData *-d- ResultData.source
+ ResultData *-l- ResultData.body
+
+ entity PubRequest <> #6f91c7
+ entity PubRequest.date <> #cfb899
+ entity PubRequest.name <> #cfb899
+
+ User "1,1"-u-"0,*" PubRequest
+ PubRequest *-u- PubRequest.date
+ PubRequest *-d- PubRequest.name
+
+ entity PubReview <> #6f91c7
+ entity PubReview.status <> #cfa899
+
+ User "1,1"--"0,*" PubReview
+ PubReview "0,*"--"1,1" PubRequest
+ PubReview *-r- PubReview.status
+
+
+
+@enduml
diff --git a/docs/requirements/stakeholders-needs.md b/docs/requirements/stakeholders-needs.md
index ffc98a729..24c447202 100644
--- a/docs/requirements/stakeholders-needs.md
+++ b/docs/requirements/stakeholders-needs.md
@@ -2,85 +2,216 @@
## Вступ
-*[Вступ повинен містити короткий огляд всього документу.]*
+Запити зацікавлених осіб представляють собою потреби та бажання користувачів аналізу медіа-контенту. Цими користувачами, як правило, виступають різні комерційні компанії, відомі особистості, політичні та громадські організації, маркетингові агенства і т.п.
### Мета
-*[Визначення мети цієї сукупності вимог. Зазвичай такою метою є створення та впровадження
- інформаційної системи відповідного призначення.]*
+Метою створення системи аналізу медіа-контенту являє собою використання медійної інформації в різних цілях організацій чи певних людей. Наприклад: різні бренди використовують цю систему для моніторингу своєї репутації серед клієнтів та відстежування досягнень або невдач своїх конкурентів; політичні організації можуть використовувати систему для відслідковування реакції народу на ту чи іншу політичні кампанії; знаменитості можуть спостерігати за тим, як їх обговорюють в соціальних мережах або новинах. Також цю систему можна використовувати для протидії дезінформації.
### Контекст
-*[Короткий опис того, з якими проектами пов'язаний цей документ, на що він впливає.]*
-
+У цьому документі розписані різні сценарії та їх складові: учасники, передумови, результати та виключні ситуації. В кожному сценарії вказано його унікальне ім'я та послідовність дій, які виконуються під час його експлуатації. Також в документі розповідається про користувачів і їх ролі в цій системі, ще описано фукнкціональність системи та вимоги до неї. Суть цього документу заключається в поясненні взаємодії системи аналізу медіа-контенту з користувачами та її можливостей у сфері аналізу медіа-контенту.
### Основні визначення та скорочення
-*[Розділ містить визначення всіх термінів та скорочень, необхідних для правильного
-тлумачення вимог. Можна зробити посилання на документ, в якому поданий аналіз предметної області.]*
-
-
-### Посилання
-
-*[Розділ містить повний список всіх документів, про які згадується.]*
-
-
-## Короткий зміст
-
-*[Розділ містить опис того, про що йдеться в еій частині цього документу, що залишилася.
-Також тут описана структура документу.]*
+[Система](https://uk.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0) - множина взаємопов'язаних елементів, що утворюють єдине ціле, взаємодіють із середовищем та між собою, і мають мету.
-## Характеристика ділових процесів
+Зацікавлені особи - фізичні чи юридичні особи, що мають інтерес до системи, використуватимуть її у своїх цілях.
-*[В цьому розділі визначаються зовнішні фактори, що впливають на бізнес (бізнес-актори),
-та внутрішні фактори (робітники), дається загальна характеристика діяльності бізнес-акторів
-та робітників, яка здійснюється за допомогою бізнесу.*
+Запити зацікавлених осіб - запити, що формують вимоги до системи, можливості та потенціал її використання.
-*Дається опис бізнес-сценаріїв взаємодії бізнес-акторів, робітників і, можливо, інформаційної системи за допомогою наступної
-специфікації:*
+Актор - те, що взаємодіє із системою як зовнішній чинник(зазвичай користувачі).
-
-***ID:***
-
-***НАЗВА:***
-
-***УЧАСНИКИ:***
+Робітник - те, що взаємодія із системою як внутрішній чинник.
-***ПЕРЕДУМОВИ:***
+Гість - користувач, що використовує певний обмежений набір функцій системи без створення облікового запису. Наприклад: перегляд головного меню, використання довідки FAQ, створення облікового запису тощо.
-***РЕЗУЛЬТАТ:***
+[FAQ,ЧаПи](https://uk.wikipedia.org/wiki/FAQ) - підбірка часто задаваних питань на певну тему та відповідей на них, яка створюється переважно для того, щоб не треба було постійно відповідати на одні й ті ж запитання.
-***ВИКЛЮЧНІ СИТУАЦІЇ:***
+Зареєстрований користувач - користувач, що зареєстрував обліковий засіб і може використовувати всі функції, доступні для зареєстрованих користувачів.
-***ОСНОВНИЙ СЦЕНАРІЙ:***
+Адміністратор - користувач, якому крім функцій зареєстрованого користувача доступні функції керування системою та обліковими засобами користувачів.
-*Кількість сценаріїв визначається у відповідності до специфіки завдання та необхідного
-рівня деталізації (зазвичай, 5-6 сценаріїв).*
+Реєстраційні дані - електронна пошта та пароль.
-## Короткий огляд продукту
+Ел.пошта - електронна пошта.
-*[Визначається границя системи та категорії її користувачів. Дається загальна характеристика категорій користувачів
-системи]*
+* Інші визначення розміщені в документі **[Аналіз предметної області](https://github.com/Rembqq/Media-content-analysis-system_DB/blob/master/docs/requirements/state-of-the-art.md#%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%96-%D0%B2%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F)**
-*[Нижче йде опис FURPS:]*
+### Посилання
-## Функціональність
-
-*[Functionality (функциональні вимоги)]*
-
-## Практичність
-
-*[Usability (вимоги до зручності роботи)]*
-
-## Надійність
-
-*[Reliability (вимоги до надійності)]*
-
-## Продуктивність
+1. [Система](https://uk.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0)
-*[Performance (вимоги до продуктивності)]*
+2. [FAQ](https://uk.wikipedia.org/wiki/FAQ)
-## Експлуатаційна придатність
+## Короткий зміст
-*[Supportability (вимоги до підтримки)]*
+1. [Характеристика ділових процесів](#usercases)
+2. [Короткий огляд продукту](#productpreview)
+3. [Функціональність](#functionality)
+4. [Практичність](#usability)
+5. [Надійність](#reliability)
+6. [Продуктивність](#performance)
+7. [Експлуатаційна придатність](#supportability)
+
+## Характеристика ділових процесів
+
+| **ID:** | USER_REGISTRATION|
+|-|-|
+| **НАЗВА:** | Створення нового облікового запису користувача|
+| **УЧАСНИКИ:** | Користувач, система|
+| **ПЕРЕДУМОВИ:** | Користувач не має облікового запису в системі|
+| **РЕЗУЛЬТАТ:** | Система створює новий обліковий запис та фіксує у ньому реєстраційні дані користувача|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Користувач ввів неіснуючу або зареєстровану електронну пошту - WRONG_EMAIL|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Користувач натискає "Створити обліковий запис" на головній сторінці
2. Система виводить користувачеві форму для реєстрації
3. Користувач вводить реєстраційні дані
4. Користувач натискає кнопку "Створити обліковий запис"
5. Система перевіряє наявність облікового запису з такою ел. поштою(можливий WRONG_EMAIL)
6. Система створює новий обліковий запис
7. Система перенаправляє користувача у створений обліковий запис. |
+
+| ID: | USER_DELETE|
+|-|-|
+| **НАЗВА**: | Видалення облікового запису користувача|
+| **УЧАСНИКИ**: | Користувач, система|
+| **ПЕРЕДУМОВИ**: | Користувач має обліковий запис|
+| **РЕЗУЛЬТАТ**: | Система видаляє обліковий запис користувача та стирає його реєстраційні дані|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Облікового запису не існує - NON_EXISTENT_ACCOUNT|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Користувач переходить в особистий кабінет
2. Користувач натискає кнопку "Видалити обліковий запис"
3. Система запитує підтвердження на видалення облікового запису
4. Користувач натискає "Видалити"
5. Система перевіряє існування облікового запису(можливий NON_EXISTENT_ACCOUNT)
6. Система видаляє обліковий запис та стирає його реєстраційні дані
7. Cистема перенаправляє користувача у головне вікно |
+
+| ID: | USER_LOGIN|
+|-|-|
+| **НАЗВА**: | Авторизація користувача в обліковий запис|
+| **УЧАСНИКИ**: | Користувач, система|
+| **ПЕРЕДУМОВИ**: | Користувач має обліковий запис|
+| **РЕЗУЛЬТАТ**: | Система авторизує користувача в обліковий запис|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Користувач ввів неіснуючу електронну пошту - WRONG_EMAIL
Користувач ввів неправильний пароль - WRONG_PASSWORD|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Користувач натискає "Авторизуватися" в головному вікні
2. Система виводить користувачу форму для вводу ел.пошти та паролю
3. Користувач вводить авторизаційні дані та натискає "Вхід"
4. Cистема перевіряє введені користувачем дані(можливі WRONG_EMAIL,WRONG_PASSWORD)
5. Система авторизує користувача|
+
+| ID: | USER_GET_INFO|
+|-|-|
+| НАЗВА: | Отримання інформації про згадки користувачем|
+| УЧАСНИКИ: | Користувач, система|
+| ПЕРЕДУМОВИ: | Користувач має обліковий запис|
+| РЕЗУЛЬТАТ: | Система виводить користувачеві інформацію про згадки в інтернеті|
+| ВИКЛЮЧНІ СИТУАЦІЇ: | Користувач ввів неіснуючий ресурс чи бренд - NON_EXISTENT_BRAND|
+| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Користувач преходить в особистий кабінет
2. Користувач натискає на владку "Згадки" в особистому кабінеті
3. Користувач вводить бренд і натискає "пошук"
4. Cистема перевіряє правильність вводу бренду(можливий NON_EXISTENT_BRAND)
5. Система зберігає обраний бренд у списку пошуку
6. Система обробляє інформацію про згадки та виводить її користувачеві|
+
+
+| ID: |EDITOR_UPLOAD_DATA|
+|-|-|
+| НАЗВА: |Завантаження даних на сайт |
+| УЧАСНИКИ: | Редактор, система|
+| ПЕРЕДУМОВИ: | Редактор має права на завантаження даних|
+| РЕЗУЛЬТАТ: |Дані завантажено на сайт|
+| ВИКЛЮЧНІ СИТУАЦІЇ |Формат файлу не підтримується - WRONG_FILE_FORMAT |
+| ОСНОВНИЙ СЦЕНАРІЙ: |1. Редактор входить в панель редагування сайту
2. Редактор вибирає опцію на панелі керування "Завантажити данні"
3. Редактор обирає потрібний файл з даними
4. Система перевіряє формат файлу(можливий WRONG_FILE_FORMAT)
5. Редактор натискає кнопку підтвердження |
+
+| ID: |EDITOR_UPDATE_DATA|
+|-|-|
+| НАЗВА: |Оновлення існуючих даних на сайті |
+| УЧАСНИКИ: | Редактор, система|
+| ПЕРЕДУМОВИ: |Редактор має права на редагування даних|
+| РЕЗУЛЬТАТ: |Існуючі дані оновлено на сайті|
+| ВИКЛЮЧНІ СИТУАЦІЇ |Обрані дані вже існують - DATA_ALREADY_EXIST |
+| ОСНОВНИЙ СЦЕНАРІЙ: |1. Редактор входить в панель редагування сайту
2. Редактор вибирає данні для оновлення
3. Система перевіряє наявність даних( можливо DATA_ALREADY_EXIST)
4. Редактор редагує потрібні данні
5. Редактор підтверджує оновлення|
+
+| ID: |EDITOR_DELETE_DATA|
+|-|-|
+| НАЗВА: |Видалення даних з сайту |
+| УЧАСНИКИ: | Редактор, система|
+| ПЕРЕДУМОВИ: |Редактор має права на редагування даних|
+| РЕЗУЛЬТАТ: |Дані видалено з сайту|
+| ВИКЛЮЧНІ СИТУАЦІЇ |Обрані дані відсутні на сайті - DATA_NOT_EXIST|
+| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Редактор входить в панель редагування сайту
2. Редактор вибирає данні для видалення
3. Система перевіряє наявність даних (можливо DATA_NOT_EXIST)
4. Редактор підтверджує видалення|
+
+
+| **ID:** |ADMIN_BLOCK_USER|
+|-|-|
+| **НАЗВА:** | Блокування користувача на сайті|
+| **УЧАСНИКИ:** | Адміністратор, система|
+| **ПЕРЕДУМОВИ:** | Адміністратор має права доступу до управління користувачами|
+| **РЕЗУЛЬТАТ:** | Обліковий запис користувача заблоковано|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Обліковий запис користувача не існує - NON_EXISTENT_ACCOUNT|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Адміністратор входить в панель керування
2. Адміністратор вибирає користувача для блокування
3. Система перевіряє наявність користувача. (можливо NON_EXISTENT_ACCOUNT)
4. Адміністратор блокує користувача |
+
+| **ID:** |ADMIN_GRANT_EDIT_PERMISSION|
+|-|-|
+| **НАЗВА:** | Надання користувачу права на редагування|
+| **УЧАСНИКИ:** | Адміністратор, система|
+| **ПЕРЕДУМОВИ:** | Адміністратор має права на редагування прав|
+| **РЕЗУЛЬТАТ:** | Користувач отримав права на редагування|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Користувача не знайдено в системі - NON_EXISTENT_ACCOUNT|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Адміністратор входить в панель керування
2. Адміністратор вибирає користувача для надання прав
3. Система перевіряє наявність користувача. (можливо NON_EXISTENT_ACCOUNT)
4. Адміністратор надає користувачу права на редагування|
+
+| **ID:** |ADMIN_DATA_REVIEW|
+|-|-|
+| **НАЗВА:** | Перевірка даних, запропонованих редактором для публікації |
+| **УЧАСНИКИ:** | Адміністратор, система|
+| **ПЕРЕДУМОВИ:** | Адміністратор має права на публікацію. Редактор запропонував дані для публікаці|
+| **РЕЗУЛЬТАТ:** | Дані підтверджено для публікації або відхилено|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Дані не відповідають вимогам сайту - DATA_NON_COMPLIANT|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Система надсилає адміністратору повідомлення про нові дані, запропоновані для публікації
2. Адміністратор відкриває перегляд даних
3. Адміністратор перевіряє якість, відповідність стандартам та зміст даних
4. Адміністратор або підтверджує дані для публікації, або відхиляє їх(можливий DATA_NON_COMPLIANT)|
+
+## Короткий огляд продукту
+
+MCAnalyzer - cистема аналізу медіа контенту призначена для автоматизованого аналізу та обробки медіа контенту, такого як текст, зображення, відео, аудіо тощо, з метою витягнення цінної інформації та підтримки прийняття рішень.
+Наша система має 3 категорії користувачів - клієнти(споживають контент, всю інформацію зібрану системою), редактори(як правило, системи аналізу виконують багато завдань автоматично, проте редактори грають важливу роль у керуванні контентом, розширенням функціоналу, перевірці точності та якості аналізу), адміністратори(конфігурація та управління системою, моніторинг і підтримка, додавання видалення користувачів).
+
+MCAnalyzer охоплює багато сфер діяльності від ЗМІ, журналістики, криміналістики до медицини, фінансів та публічній безпеці.
+
+## Функціональність
+
+|**Користувач** |
+|-------------------------------------------------------|
+| Створення та експлуатація облікового запису. |
+| Пошук та фільтрація джерел інформації. |
+| Надання графічної репрезентації отриманих даних. |
+| Порівняння аналізів даних. |
+| Отримання інформації про згадки користувача. |
+| Експортування звіту про аналіз джерела. |
+| З'єднання з адміністраторами та технічною підтримкою. |
+
+|**Редактор** |
+|-------------------------------------------------------|
+| Оновлення існуючих даних. |
+| Завантаження нових даних. |
+| Видалення даних. |
+
+|**Адміністратор** |
+|------------------------------------------------------------|
+| Блокування користувача. |
+| Надання користувачу права на редагування. |
+| Забезпечення безпеки системи та даних користувачів. |
+| Підтримка користувачів. |
+| Перевірка даних, запропонованих редактором для публікації. |
+
+
+## Практичність
+
+- Зручний та зрозумілий у використанні інтерфейс.
+- Наповнена база даних.
+- Велика кількість інструемнтів фільтрування та знаходження даних.
+- Можливість завантаження звіту в зручному форматі.
+
+## Надійність
+
+Надійність є ключовим фактором для забезпечння успішного функціонування системи. Тому надійність нашої системи MCAnalyzer забезпечується наступними вимогами:
+- регулярне тестування та валідація
+- запобігання втраті даних, а саме створення резервного копіювання та відновлення даних
+- забезпечення захисту від несанкціонованого доступу та вторгнень в систему аналізу медіа-контенту
+- захист зібраних та оброблених даних
+
+## Продуктивність
+
+Продуктивність системи забезпечується наступними вимогами:
+- Раціональне викорситання ресурсів.
+- Суворе стеження за дотриманням правил організації та управління системою.
+- Моніторинг продуктивності системи і бази даних.
+- Підтримка та оптимізація системи і бази даних.
+
+## Експлуатаційна придатність
+
+Експлуатаційна придатність системи аналізу медіа-контенту визначає, наскільки легко та зручно систему можна використовувати і підтримувати. MCAnalyzer включає в себе такі вимоги експлуатаційної придатності:
+- **Швидкість та продуктивність**: Забезпечення швидкості та ефективності аналізу медіа-контенту для користувачів. Система оптимізована для обробки великих обсягів даних.
+- **Моніторинг та керування**: Забезпечення можливості відстеження стану системи та її компонентів, а також можливість керування та налаштування параметрів роботи системи.
+- **Підтримка і оновлення**: Забезпечення механізмів підтримки та регулярних оновлень для виправлення помилок, вдосконалення функціональності та забезпечення сумісності з новими технологіями.
+- **Масштабованість**: Здатність системи адаптуватися до зростаючих потреб та обсягів роботи шляхом додавання нових ресурсів та компонентів.
+- **Технічна підтримка**: Команда технічної підтримки створена для користувачів системи задля вирішення будь-яких проблем.
+- **Планування майбутнього розвитку**: система має плани майбутнього розвитку, для забезпечення її ефективності та актуальності у майбутньому.
diff --git a/docs/requirements/state-of-the-art.md b/docs/requirements/state-of-the-art.md
index fb397cf0e..cae7083f7 100644
--- a/docs/requirements/state-of-the-art.md
+++ b/docs/requirements/state-of-the-art.md
@@ -2,33 +2,211 @@
## Вступ
-*[Вступ повинен містити короткий огляд всього документу.]*
+У цьому документі:
+* 1)Описані основні визначення та терміни, що стосуються предметної області.
+* 2)Розглянуто та описано основні способи вирішення задачі, що стосуються даної предметної області.
+* 3)Виконана порівняльна характеристика існуючих засобів вирішення задачі, та порівняння їх з нашою системою.
+* 4)Зроблені відповідні висновки щодо рішення про створення нової системи, чи модифікації\інтеграції вже існуючих систем.
+* 5)Залишені посилання на використані в ході роботи джерела.
## Основні визначення
-*[Розділ містить визначення термінів та скорочень, які використовуються при аналізі предметної області.]*
+[Інформаці́йне напо́внення сайту, контент](https://uk.wikipedia.org/wiki/%D0%86%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D0%B9%D0%BD%D0%B5_%D0%BD%D0%B0%D0%BF%D0%BE%D0%B2%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D1%83) — це інформація чи досвід, який направлений на кінцевих користувачів чи аудиторію, яку розробник складає самостійно або копіює з дотриманням чинного законодавства.
+
+[Медіаконтент](http://repository.hneu.edu.ua/bitstream/123456789/29180/1/%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%BA%D0%BE%D0%B2%D0%B0_%D0%9A%D0%B0%D1%80i%D0%BD%D0%B0._%D0%A2%D0%B5%D0%B7%D0%B8.pdf) – це змістовно значуще наповнення цифрових ресурсів, що інтегрує різну за формою подання та кодування інформацію (текстову, графічну, аудіовізуальну тощо), орієнтовану на задоволення соціальних, інформаційних та емоційних потреб людини.
+
+[Засоби масової інформації(ЗМІ)](https://vue.gov.ua/%D0%97%D0%B0%D1%81%D0%BE%D0%B1%D0%B8_%D0%BC%D0%B0%D1%81%D0%BE%D0%B2%D0%BE%D1%97_%D1%96%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D1%97_(%D0%97%D0%9C%D0%86)), мас-медіа — платформи і канали, які збирають, обробляють та поширюють інформацію для масових та локальних аудиторій, використовуючи різноманітні технічні засоби. Мас-медіа є основним засобом пропаганди.
+
+[Соціа́льні ме́діа](https://uk.wikipedia.org/wiki/%D0%A1%D0%BE%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D1%96_%D0%BC%D0%B5%D0%B4%D1%96%D0%B0) — вид масмедіа, ряд онлайнових технологій на принципах Веб 2.0, завдяки яким споживачі контенту через свої дописи стають його співавторами і можуть взаємодіяти, співпрацювати, спілкуватися, ділитися інформацією або брати участь у будь-якій інший соціальній активності із теоретично усіма іншими користувачами певного сервісу.
+
+[Веб 2.0](https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1_2.0) - інформаційні технології, які дозволяють користувачам створювати та поширювати власний контент у всесвітній павутині.
+
+[Контент-аналіз](https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82-%D0%B0%D0%BD%D0%B0%D0%BB%D1%96%D0%B7) — якісно-кількісний метод вивчення документів(чи інших джерел інформації), який характеризується об'єктивністю висновків і строгістю процедури та полягає у квантифікаційній обробці тексту з подальшою інтерпретацією результатів. Предметом контент-аналізу можуть бути як проблеми соціальної дійсності, котрі висловлюються чи навпаки приховуються у документах(чи інших джерелах інформації), так і внутрішні закономірності самого об'єкта дослідження. Популярність контент-аналізу ґрунтується на тому, що цей метод дозволяє виміряти людську поведінку (якщо вважати, що вербальна поведінка є її формою). На відміну від опитувань, контент-аналіз вимірює не те, що люди говорять, що зробили чи зроблять, а те, що вони справді зробили.
+Виділяють два основних типи контент-аналізу: кількісний і якісний. Якщо кількісний аналіз націлений на виявлення частоти окремих тем, слів або символів, що містяться у тексті, то якісний аналіз пов'язаний з фіксуванням нетривіальних висловлювань, мовних інтонацій з розумінням цінності змісту повідомлення.
+
+
+Інтелектуальний аналіз тексту ([text mining](https://uk.wikipedia.org/wiki/%D0%86%D0%BD%D1%82%D0%B5%D0%BB%D0%B5%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D1%96%D0%B7_%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83)) — напрям інтелектуального аналізу даних (англ. Data Mining) та штучного інтелекту, метою якого є отримання інформації з колекцій текстових документів, ґрунтуючись на застосуванні ефективних, у практичному плані, методів машинного навчання та обробки природної мови. Інтелектуальний аналіз тексту використовує всі ті ж підходи до перероблювання інформації, що й інтелектуальний аналіз даних, однак різниця між цими напрямками проявляється лише в кінцевих методах, а також у тому, що інтелектуальний аналіз даних має справу зі сховищами та базами даних, а не електронними бібліотеками та корпусами текстів.
+
+
+Добува́ння да́них ([data mining](https://uk.wikipedia.org/wiki/%D0%94%D0%BE%D0%B1%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%B4%D0%B0%D0%BD%D0%B8%D1%85)), глиби́нний ана́ліз да́них — процес напівавтоматичного аналізу великих баз даних з метою пошуку корисних фактів. Зазвичай поділяють на задачі класифікації, моделювання та прогнозування.
+На сучасних підприємствах, в дослідницьких проєктах або в інтернеті утворюються великі обсяги даних. Глибинний аналіз даних здійснюється автоматично шляхом застосування методів математичної статистики, штучних нейронних мереж, теорії нечітких множин або генетичних алгоритмів. Метою аналізу є виявлення правил та закономірностей, наприклад, статистичних подій. Так, наприклад, можливо виявити зміни у поведінці клієнтів або груп клієнтів для покращення стратегії підприємства.
+
+
+[Шту́чний інтеле́кт](https://uk.wikipedia.org/wiki/%D0%A8%D1%82%D1%83%D1%87%D0%BD%D0%B8%D0%B9_%D1%96%D0%BD%D1%82%D0%B5%D0%BB%D0%B5%D0%BA%D1%82) — розділ комп'ютерної лінгвістики та інформатики, який швидко розвивається, і зосереджений на розробці інтелектуальних машин, здатних виконувати завдання, які зазвичай потребують людського інтелекту. Ці завдання можуть варіюватися від простих дій, як-от розпізнавання мови чи зображень, до більш складних завдань, як-от ігри чи водіння автомобіля.
+
+Природна мова - мова спілкування людей, що з'явилася та розвивалася природнім шляхом.
+
+
+[Інформація](https://uk.wikipedia.org/wiki/%D0%86%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D1%8F) - відомості незалежно від форми їх подання.
+
+### Характеристики інформації:
+1)Суб'єктивність
+Цінність і корисність інформації суб'єктивні, оскільки те, що є інформацією для однієї людини, може не бути інформацією для іншої.
+
+2)Актуальність
+Здатність інформації відповідати вимогам сьогодення (поточного часу або певного часового періоду). Інформація хороша лише в тому випадку, якщо вона значуща для особи, яка приймає рішення.
+
+3)Своєчасність
+Інформація має бути надана відповідній особі у відповідний час і у відповідному місці. Вона має містити дійсні на момент запиту дані, щоб сприяти формуванню правильних висновків та прийняттю ефективних рішень.
+
+4)Достовірність
+Здатність інформації об'єктивно відбивати процеси та явища, що відбуваються в навколишньому світі. Інформація не повинна містити помилок, оскільки помилкова інформація може призвести до неправильних висновків та хибних рішень.
+
+5)Релевантність
+Надана інформація має відповідати темі запиту. Інформація не має мати додаткових небажаних відомостей, які можуть заплутати тих, хто приймає рішення.
+
+6)Коректність подання
+Інформація має бути у правильному форматі, щоб бути корисною для особи, яка приймає рішення.
+
+7)Повнота
+Інформація вважається повною, якщо особа, яка приймає рішення, може задовільно вирішити проблему, використовуючи цю інформацію.
+
+8)Доступність
+Інформація є марною, якщо вона не є легкодоступною для осіб, які приймають рішення, у бажаному форматі, коли вона потрібна.
+
+9)Надійність
+Інформація має бути достовірною протягом певного встановленого періоду часу, коли зроблені на її основі висновки або прийняті рішення є правильними.
+
+
+[Джерело інформаційного матеріалу](https://uk.wikipedia.org/wiki/%D0%94%D0%B6%D0%B5%D1%80%D0%B5%D0%BB%D0%BE_%D1%96%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D1%96%D0%B0%D0%BB%D1%83), також вихідний матеріал — об'єкт або суб'єкт, який надає інформацію. Являє собою матеріал, з якого отримані інформація або ідеї.
+
+За послідовністю,є 3 типи джерел:
+
+-первинні: містять оригінальну, нову інформацію, незміннe з моменту її створення. Сюди відносять наукові роботи, патенти, промови людей, енциклопедії, словники тощо.
+
+-вторинні: частіше за все це аналіз, узагальнення, оцінка або інтерпритація первинного джерела. Журналістські статті, відео, онлайн трансляції тощо
+
+-[третинні](https://uk.wikipedia.org/wiki/%D0%A2%D1%80%D0%B5%D1%82%D0%B8%D0%BD%D0%BD%D0%B5_%D0%B4%D0%B6%D0%B5%D1%80%D0%B5%D0%BB%D0%BE_%D1%96%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D1%97): об'єднує інформацію з 2 попередніх. Являє собою огляд відомої інформації з певної проблеми, що відображає особисту думку автора, основану на проведеному аналізі численних джерел літератури без посилання на ці джерела, зустрічається в підручниках, енциклопедіях, довідниках, онлайн порталах.
+
## Підходи та способи вирішення завдання
+### Підходи до аналізу текстової інформації
+**Очищення та передпроцесинг тексту**
+
+**Токенізація:**
+Це процес розбиття тексту на окремі токени або слова. Токени - це основні одиниці тексту, з якими буде працювати модель.
+
+**Стеммінг та лематизація:** Обидва ці методи використовуються для зменшення слів до їх базової форми. Стеммінг обрізає слова до їхнього кореня, тоді як лематизація перетворює слова в їхні леми (словники).
+
+**Видалення стоп-слів:** Стоп-слова - це слова, які не мають великого семантичного значення і можуть бути видалені, щоб зменшити обсяг тексту без втрати інформації.
+
+**Обрізка та векторизація тексту:** Обрізка може включати видалення надмірних прогалин або символів. Векторизація перетворює текстові дані у числовий формат, наприклад, за допомогою методів "мішка слів" або TF-IDF.
+
+
+
+Аналіз тексту [[1]](#link1)
-*[Розділ містить опис підходів, моделей та способів вирішення завдання.]*
+### Аналіз зображень та відео:
+
+**Розпізнавання облич та об'єктів:** Використання алгоритмів комп'ютерного зору для ідентифікації та аналізу облич, об'єктів та сцен в зображеннях та відео.
+
+**Виявлення аномалій та артефактів:** Виявлення аномалій, помилок або неправильних елементів у зображеннях та відео.
+
+
+
+Аналіз зображень та відео [[2]](#link2)
+
+### Визначення типу даних (структуровані, напівструктуровані, неструктуровані)
+
+**Робота зі структурованими даними:** Структуровані дані зазвичай зберігаються у табличному форматі, де дані організовані у рядки та стовпці. Це полегшує їх обробку і аналіз за допомогою баз даних і алгоритмів машинного навчання. Прикладами можуть бути імена, адреси, номери телефонів, дати тощо.
+
+**Робота з напівструктурованими даними:** Напівструктуровані дані мають певну організацію, але не відповідають повністю структурованим даним. Наприклад, файли XML, JSON і HTML мають структуру, але можуть містити змінну кількість полів та інформації.
+
+**Робота з неструктурованими даними:** Неструктуровані дані не мають попередньо визначеного формату і можуть включати тексти з соціальних мереж, огляди продуктів, аудіо- та відеофайли, зображення та інше. Обробка таких даних вимагає спеціальних методів і алгоритмів аналізу.
+
+
+
+Різниця структурованих даних від неструктурованих [[3]](#link3)
+
+### Використання методів обробки природної мови (NLP)
+
+**Токенізація і частиномовна розмітка (Part-of-Speech tagging):** Токенізація розбиває текст на слова або фрази, а розмітка визначає частини мови (іменник, дієслово, прикметник і т. д.) для кожного токена. Це допомагає в розумінні семантики тексту.
+
+**Категоризація тексту (Text Categorization):** Це завдання включає класифікацію текстових документів на основі їхнього змісту. Наприклад, визначення жанру статті або класифікація писем як спаму чи неспаму.
+
+**Аналіз настроїв (Sentiment Analysis):** Цей метод визначає тон і настрій тексту, зазвичай вказуючи, чи є він позитивним, негативним або нейтральним.
+
+
+
+Як працює NLP [[4]](#link4)
+
+### Географічний аналіз та обробка метаданих:
+
+**Геолокаційний аналіз:** Використання географічної інформації для аналізу та візуалізації розподілу медіа контенту за місцезнаходженням.
+
+**Аналіз часу та динаміки:** Виявлення та аналіз змін в медіа контенті з плином часу.
+
+
+
+Система географічного аналізу [[5]](#link5)
## Порівняльна характеристика існуючих засобів вирішення завдання
-*[Розділ містить опис існуючих програм, інформаційних систем, сервісів, тощо, призначених для вирішення
-завдання. Дається порівняльна характеристика властивостей FURPS:*
-- *Functionality (функциональні вимоги)*
-- *Usability (вимоги до зручності роботи)*
-- *Reliability (вимоги до надійності)*
-- *Performance (вимоги до продуктивності)*
-- *Supportability (вимоги до підтримки)*
+Роздивимось найпопулярніші інструменти для аналізу медіа контенту:
+
+- [Semantrum](https://promo.semantrum.net/uk/main-ua/)
+- [Brand24](https://brand24.com/)
+- [YouScan](https://youscan.io/)
+- [Meltwater](https://www.meltwater.com/)
+
+*Градація:* 🔴(*Погано*) - 🟡(*Терпимо*) - 🟢(*Добре*)
- *(у вигляді таблиці).]*
+| Вимоги | Критерії | Semantrum | Brand24 | YouScan | MeltWater |Наша сисетма|
+| ------ | -------- |:---------:|:-------:|:-------:|:---------:|:----------:|
+| *Functionality* |
+|| Особистий кабінет|🟢|🟢|🟢|🟢|🟢|
+|| Візуалізація даних|🟢|🟢|🟢|🟢|🟢|
+|| Моніторинг соц. мереж |🟢|🟢|🟢|🟢|🟢|
+|| Моніторинг ЗМІ |🟢|🟢|🟢|🟢|🟢|
+|| Сповіщення |🟢|🟢|🟢|🟢|🔴|
+| *Usability* |
+|| Комфортність інтерфейсу |🟡|🟢|🟢|🟢|🟢|
+|| Мови |UA, EN, RU|EN|EN, UA, ES, PT|EN, DE, FR, NL, FI, JA, ZH|EN, UA|
+|| Ціна |315$/міс.|99$/міс.|Ціна залежить від кількості використаних функцій|Ціна договірна|Безкоштовно|
+|| Демо-доступ |7 днів|14 днів|1 місяць|Відсутній(🔴)|Відсутній(🔴)|
+| *Reliability* |
+|| Відомі бренди серед клієнтів |🟢|🟡|🟢|🟢|🔴|
+|| Захист даних |🟢|🟢|🟢|🟢|🟢|
+| *Performance* |
+|| Швидкість обробки інформації |🟡|🟢|🟢|🟢|🟡|
+|| Оптимізація інтерфейсу |🟡|🟢|🟡|🟢|🟡|
+| *Supportability* |
+|| Служба підтримки |🟢|🟢|🟢|🟢|🔴|
+|| FAQ |🟢|🟢|🟢|🟢|🟡|
## Висновки
-*[Робляться висновки щодо доцільності розробки нової або модифікації існуючої інформаційної системи, необхідності та способів інтеграції з системами(сервісами) третіх сторін, тощо.]*
+Розробка нової або модифікація існуючої інформаційної системи аналізу медіа-контенту є обгрунтованим і важливим завданням у сучасному світі, оскільки медіа-контент здійснює вплив на багато сфер життя, включаючи журналістику, маркетинг, дослідження ринку, моніторинг громадської думки та багато інших. Система аналізу медіа-контенту може принести значні переваги для бізнесу чи організації, але вимагає обґрунтованих рішень щодо обсягу функціональності, інтеграції та забезпечення безпеки даних.
+
+Проаналізувавши існуючі популярні інструменти, ми дійшли висновку, що потрібно створити таку інформаційну систему, яка міститиме в собі всі вищезгадані переваги та будуть враховані усі недоліки, а також будуть впроваджені нові функції, які не були реалізовані у наведених прикладах, або були недостатньо ефективними.
## Посилання
-*[Розділ містить повний список всіх документів, про які згадується.]*
+[Контент](https://uk.wikipedia.org/wiki/%D0%86%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D0%B9%D0%BD%D0%B5_%D0%BD%D0%B0%D0%BF%D0%BE%D0%B2%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D1%83)
+
+[Медіаконтент](http://repository.hneu.edu.ua/bitstream/123456789/29180/1/%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%BA%D0%BE%D0%B2%D0%B0_%D0%9A%D0%B0%D1%80i%D0%BD%D0%B0._%D0%A2%D0%B5%D0%B7%D0%B8.pdf)
+
+[ЗМІ](https://vue.gov.ua/%D0%97%D0%B0%D1%81%D0%BE%D0%B1%D0%B8_%D0%BC%D0%B0%D1%81%D0%BE%D0%B2%D0%BE%D1%97_%D1%96%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D1%97_(%D0%97%D0%9C%D0%86))
+
+[Соціальні медіа](https://uk.wikipedia.org/wiki/%D0%A1%D0%BE%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D1%96_%D0%BC%D0%B5%D0%B4%D1%96%D0%B0)
+
+[Веб 2.0](https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1_2.0)
+
+[Контент-аналіз](https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82-%D0%B0%D0%BD%D0%B0%D0%BB%D1%96%D0%B7)
+
+[Інтелектуальний аналіз тексту](https://uk.wikipedia.org/wiki/%D0%86%D0%BD%D1%82%D0%B5%D0%BB%D0%B5%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D1%96%D0%B7_%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83)
+
+[Добування даних](https://uk.wikipedia.org/wiki/%D0%94%D0%BE%D0%B1%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%B4%D0%B0%D0%BD%D0%B8%D1%85)
+
+[Штучний інтелект](https://uk.wikipedia.org/wiki/%D0%A8%D1%82%D1%83%D1%87%D0%BD%D0%B8%D0%B9_%D1%96%D0%BD%D1%82%D0%B5%D0%BB%D0%B5%D0%BA%D1%82)
+
+[Джерело інформаційного матеріалу](https://uk.wikipedia.org/wiki/%D0%94%D0%B6%D0%B5%D1%80%D0%B5%D0%BB%D0%BE_%D1%96%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D1%96%D0%B0%D0%BB%D1%83)
+
+[Третинне джерело інформації](https://uk.wikipedia.org/wiki/%D0%A2%D1%80%D0%B5%D1%82%D0%B8%D0%BD%D0%BD%D0%B5_%D0%B4%D0%B6%D0%B5%D1%80%D0%B5%D0%BB%D0%BE_%D1%96%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D1%96%D1%97)
+
+1. Аналіз тексту
+2. Аналіз зображень та відео
+3. Різниця структурованих даних від неструктурованих
+4. Як працює NLP
+5. Система географічного аналізу
diff --git a/docs/use cases/README.md b/docs/use cases/README.md
index b72b73691..93defe2b2 100644
--- a/docs/use cases/README.md
+++ b/docs/use cases/README.md
@@ -1,149 +1,473 @@
# Модель прецедентів
+## 1. Загальна схема
+
+
+@startuml
-В цьому файлі необхідно перелічити всі документи, розроблені в проекті та дати посилання на них.
+ actor "Адміністратор" as Administrator
+ actor "Редактор" as Editor
+ actor "Користувач" as User
+ actor "Гість" as Guest
-*Модель прецедентів повинна містити загальні оглядові діаграми та специфікації прецедентів.*
+ usecase "Data Review\nПеревірка даних, запропонованих\nредактором для публікації" as UC_8
+ usecase "Block User\nБлокування користувача" as UC_9
+ usecase "Grant Edit Permission\nНадання прав" as UC_10
-Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/).
-В markdown-файлі використовується опис діаграми
+ usecase "Update Data\nОновлення існуючих даних на сайті" as UC_3
+ usecase "Delete Data\nВидалення даних з сайту" as UC_4
+ usecase "Upload Data\nЗавантаження даних на сайт" as UC_6
-```md
-
-
-@startuml
- right header
- Package: UCD_3.0
- end header
+ usecase "User Delete\nВидалення облікового запису користувача" as UC_1
+ usecase "User Get Info\nОтримання інформації про\nзгадки користувачем" as UC_2
- title
- UC_8. Редагувати конфігурацію порталу
- Діаграма прецедентів
- end title
+ usecase "Sign Up\nЗареєстувати обліковий запис" as LOG_IN
+ usecase "Log In\nУвійти в обліковий запис" as SIGN_IN
- actor "Користувач" as User #eeeeaa
-
- package UCD_1{
- usecase "UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa
- }
-
- usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1
- usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2
- usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1
- usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2
-
- package UCD_1 {
- usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa
- }
-
- usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1
- usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2
- usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3
-
+ Administrator -d-> Editor
+ Editor -r-> User
+ User -u-> Guest
+ Administrator -l-> UC_8
+ Administrator -u-> UC_9
+ Administrator -u-> UC_10
- User -> UC_1
- UC_1.1 .u.> UC_1 :extends
- UC_1.2 .u.> UC_1 :extends
- UC_4 .d.> UC_1.2 :extends
- UC_1.2 .> UC_1.2 :extends
- UC_1.2.1 .u.> UC_1.2 :extends
- UC_1.2.2 .u.> UC_1.2 :extends
- UC_1 ..> UC_1.2.2 :extends
+ Editor -d-> UC_3
+ Editor -d-> UC_4
+ Editor -l-> UC_6
+ User -d-> UC_1
+ User -r-> UC_2
- UC_1.1.1 -u-|> UC_1.1
- UC_1.1.2 -u-|> UC_1.1
- UC_1.1.3 -u-|> UC_1.1
-
- right footer
- Аналітичний портал. Модель прецедентів.
- НТУУ КПІ ім.І.Сікорського
- Киів-2020
- end footer
+ Guest -r-> LOG_IN
+ Guest -u-> SIGN_IN
@enduml
**Діаграма прецедентів**
-```
-
-яка буде відображена наступним чином
+## 2. Схема системи для гостя
-
+
@startuml
- right header
- Package: UCD_3.0
- end header
+ actor "Гість" as Guest
+
+ usecase "LOG_IN\nЗареєстувати обліковий запис" as UC_1
+ usecase "SIGN_IN\nУвійти в обліковий запис" as UC_2
+
+ Guest -d-> UC_1
+ Guest -d-> UC_2
- title
- UC_8. Редагувати конфігурацію порталу
- Діаграма прецедентів
- end title
+@enduml
+**Схема можливостей гостя**
- actor "Користувач" as User #eeeeaa
-
- package UCD_1{
- usecase "UC_1\nПереглянути список \nзвітів" as UC_1 #aaeeaa
- }
-
- usecase "UC_1.1\nЗастосувати фільтр" as UC_1.1
- usecase "UC_1.2\nПереглянути метадані \nзвіту" as UC_1.2
- usecase "UC_1.2.1\nДати оцінку звіту" as UC_1.2.1
- usecase "UC_1.2.2\nПереглянути інформацію \nпро авторів звіту" as UC_1.2.2
-
- package UCD_1 {
- usecase "UC_4\nВикликати звіт" as UC_4 #aaeeaa
- }
+
+
+## 3. Схема системи для користувача
+
- usecase "UC_1.1.1\n Використати \nпошукові теги" as UC_1.1.1
- usecase "UC_1.1.2\n Використати \nрядок пошуку" as UC_1.1.2
- usecase "UC_1.1.3\n Використати \nавторів" as UC_1.1.3
+@startuml
+
+ actor "Користувач" as User
+
+ usecase "User Delete\nВидалення облікового\nзапису користувача" as UC_1
+ usecase "User Get Info\nОтримання інформації про\nзгадки" as UC_1.1
+ User -d-> UC_1.1
+ User -d-> UC_1
+
+@enduml
+
+**Схема можливостей користувача**
+
+
+
+## 4. Схема системи для редактора
+
+@startuml
+
+ actor "Редактор" as Editor
- User -> UC_1
- UC_1.1 .u.> UC_1 :extends
- UC_1.2 .u.> UC_1 :extends
- UC_4 .d.> UC_1.2 :extends
- UC_1.2 .> UC_1.2 :extends
- UC_1.2.1 .u.> UC_1.2 :extends
- UC_1.2.2 .u.> UC_1.2 :extends
- UC_1 ..> UC_1.2.2 :extends
+ usecase "Update Data\nОновлення існуючих даних на сайті" as UC_3
+ usecase "Delete Data\nВидалення даних з сайту" as UC_4
+ usecase "Upload Data\nЗавантаження даних на сайт" as UC_6
+ Editor --> UC_3
+ Editor --> UC_4
+ Editor --> UC_6
+
+@enduml
+
+**Схема можливостей редактора**
+
+
+
+## 5. Схема системи для адміністратора
+
- UC_1.1.1 -u-|> UC_1.1
- UC_1.1.2 -u-|> UC_1.1
- UC_1.1.3 -u-|> UC_1.1
+@startuml
+
+ actor "Адміністратор" as Administrator
+
+ usecase "Data Review\nПеревірка даних,\nзапропонованих редактором\nдля публікації" as UC_8
+ usecase "Block User\nБлокування користувача" as UC_9
+ usecase "Grant Edit Permission\nНадання прав" as UC_10
- right footer
- Аналітичний портал. Модель прецедентів.
- НТУУ КПІ ім.І.Сікорського
- Киів-2020
- end footer
+ Administrator -d-> UC_9
+ Administrator -d-> UC_8
+ Administrator -d-> UC_10
@enduml
-**Діаграма прецедентів**
+**Схема можливостей адміністратора**
+
+
+
+## 6. Сценарії використання для незареєстрованого користувача (гостя)
+### Сценарій авторизації користувача
+| ID: | USER_LOGIN|
+|-|-|
+| **НАЗВА**: | Авторизація користувача в обліковий запис|
+| **УЧАСНИКИ**: | Користувач, система|
+| **ПЕРЕДУМОВИ**: | Користувач має обліковий запис|
+| **РЕЗУЛЬТАТ**: | Система авторизує користувача в обліковий запис|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Користувач ввів неіснуючу електронну пошту - WRONG_EMAIL
Користувач ввів неправильний пароль - WRONG_PASSWORD|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Користувач натискає "Авторизуватися" в головному вікні
2. Система виводить користувачу форму для вводу ел.пошти та паролю
3. Користувач вводить авторизаційні дані та натискає "Вхід"
4. Cистема перевіряє введені користувачем дані(можливі WRONG_EMAIL,WRONG_PASSWORD)
5. Система авторизує користувача|
+
+@startuml
+
+|Користувач|
+start;
+:Натискає "Авторизуватися" в головному вікні;
+
+|Система|
+:Виводить користувачу форму \nдля вводу ел.пошти та паролю;
+
+|Користувач|
+:Вводить авторизаційні дані та натискає "Вхід";
+
+|Система|
+:Перевіряє введені користувачем дані
+можливі
+ WRONG_EMAIL
+ WRONG_PASSWORD;
+
+:Авторизує користувача;
+
+|Користувач|
+stop
+
+@enduml
+
+### Сценарій реєстрації у системі
+| **ID:** | USER_REGISTRATION|
+|-|-|
+| **НАЗВА:** | Створення нового облікового запису користувача|
+| **УЧАСНИКИ:** | Користувач, система|
+| **ПЕРЕДУМОВИ:** | Користувач не має облікового запису в системі|
+| **РЕЗУЛЬТАТ:** | Система створює новий обліковий запис та фіксує у ньому реєстраційні дані користувача|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Користувач ввів неіснуючу або зареєстровану електронну пошту - WRONG_EMAIL|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Користувач натискає "Створити обліковий запис" на головній сторінці
2. Система виводить користувачеві форму для реєстрації
3. Користувач вводить реєстраційні дані
4. Користувач натискає кнопку "Створити обліковий запис"
5. Система перевіряє наявність облікового запису з такою ел. поштою(можливий WRONG_EMAIL)
6. Система створює новий обліковий запис
7. Система перенаправляє користувача у створений обліковий запис. |
+
+@startuml
+
+|Користувач|
+start;
+:Натискає "Створити обліковий запис"\nна головній сторінці;
+
+|Система|
+:Виводить користувачеві форму для реєстрації;
+
+|Користувач|
+:Вводить реєстраційні дані;
+:Натискає кнопку "Створити обліковий запис";
+
+|Система|
+:Перевіряє наявність облікового запису з такою ел. поштою
+можливий
+ WRONG_EMAIL;
+
+:Створює новий обліковий запис;
+:Перенаправляє користувача у створений обліковий запис;
+
+|Користувач|
+stop
+
+@enduml
+
+
+## 7. Сценарії використання для зареєстрованого користувача
+### Сценарій видалення облікового запису користувача
+| ID: | USER_DELETE|
+|-|-|
+| **НАЗВА**: | Видалення облікового запису користувача|
+| **УЧАСНИКИ**: | Користувач, система|
+| **ПЕРЕДУМОВИ**: | Користувач має обліковий запис|
+| **РЕЗУЛЬТАТ**: | Система видаляє обліковий запис користувача та стирає його реєстраційні дані|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Облікового запису не існує - NON_EXISTENT_ACCOUNT|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Користувач переходить в особистий кабінет
2. Користувач натискає кнопку "Видалити обліковий запис"
3. Система запитує підтвердження на видалення облікового запису
4. Користувач натискає "Видалити"
5. Система перевіряє існування облікового запису(можливий NON_EXISTENT_ACCOUNT)
6. Система видаляє обліковий запис та стирає його реєстраційні дані
7. Cистема перенаправляє користувача у головне вікно |
+
+@startuml
+
+|Користувач|
+start;
+:Переходить в особистий кабінет;
+:Натискає кнопку "Видалити обліковий запис";
+
+|Система|
+:Запитує підтвердження на видалення\nоблікового запису;
+
+|Користувач|
+:Натискає "Видалити";
+
+|Система|
+:Перевіряє існування облікового запису
+можливий
+ NON_EXISTENT_ACCOUNT;
+
+:Видаляє обліковий запис та стирає його реєстраційні дані ;
+:Перенаправляє користувача у головне вікно;
+
+|Користувач|
+stop
+
+@enduml
+
+### Сценарії отримання інформації про згадки користувачем
+| ID: | USER_GET_INFO|
+|-|-|
+| НАЗВА: | Отримання інформації про згадки користувачем|
+| УЧАСНИКИ: | Користувач, система|
+| ПЕРЕДУМОВИ: | Користувач має обліковий запис|
+| РЕЗУЛЬТАТ: | Система виводить користувачеві інформацію про згадки в інтернеті|
+| ВИКЛЮЧНІ СИТУАЦІЇ: | Користувач ввів неіснуючий ресурс чи бренд - NON_EXISTENT_BRAND|
+| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Користувач преходить в особистий кабінет
2. Користувач натискає на владку "Згадки" в особистому кабінеті
3. Користувач вводить бренд і натискає "пошук"
4. Cистема перевіряє правильність вводу бренду(можливий NON_EXISTENT_BRAND)
5. Система зберігає обраний бренд у списку пошуку
6. Система обробляє інформацію про згадки та виводить її користувачеві|
+
+@startuml
+
+|Користувач|
+start;
+:Переходить в особистий кабінет;
+:Натискає на владку "Згадки" в особистому кабінеті;
+:Вводить бренд і натискає "пошук";
+
+
+|Система|
+:Перевіряє правильність вводу бренду
+можливий
+ NON_EXISTENT_BRAND;
+
+:Зберігає обраний бренд у списку пошуку;
+:Обробляє інформацію про згадки\nта виводить її користувачеві;
+
+|Користувач|
+stop
+
+@enduml
+
+## 8. Сценарії використання для редактора системи
+### Сценарій завантаження даних
+| ID: |EDITOR_UPLOAD_DATA|
+|-|-|
+| НАЗВА: |Завантаження даних на сайт |
+| УЧАСНИКИ: | Редактор, система|
+| ПЕРЕДУМОВИ: | Редактор має права на завантаження даних|
+| РЕЗУЛЬТАТ: |Дані завантажено на сайт|
+| ВИКЛЮЧНІ СИТУАЦІЇ |Формат файлу не підтримується - WRONG_FILE_FORMAT |
+| ОСНОВНИЙ СЦЕНАРІЙ: |1. Редактор входить в панель редагування сайту
2. Редактор вибирає опцію на панелі керування "Завантажити данні"
3. Редактор обирає потрібний файл з даними
4. Система перевіряє формат файлу(можливий WRONG_FILE_FORMAT)
5. Редактор натискає кнопку підтвердження |
+
+@startuml
+
+|Редактор|
+start;
+:Входить в панель редагування сайту;
+:Вибирає опцію на панелі керування "Завантажити данні";
+:Обирає потрібний файл з даними;
+
+|Система|
+:Перевіряє формат файлу
+можливо
+WRONG_FILE_FORMAT;
+
+|Редактор|
+:Натискає кнопку підтвердження;
+stop
+
+@enduml
+
+### Сценарій оновлення даних
+| ID: |EDITOR_UPDATE_DATA|
+|-|-|
+| НАЗВА: |Оновлення існуючих даних на сайті |
+| УЧАСНИКИ: | Редактор, система|
+| ПЕРЕДУМОВИ: |Редактор має права на редагування даних|
+| РЕЗУЛЬТАТ: |Існуючі дані оновлено на сайті|
+| ВИКЛЮЧНІ СИТУАЦІЇ |Обрані дані вже існують - DATA_ALREADY_EXIST |
+| ОСНОВНИЙ СЦЕНАРІЙ: |1. Редактор входить в панель редагування сайту
2. Редактор вибирає данні для оновлення
3. Система перевіряє наявність даних( можливо DATA_ALREADY_EXIST)
4. Редактор редагує потрібні данні
5. Редактор підтверджує оновлення|
+
+@startuml
+|Редактор|
+start;
+:Входить в панель редагування сайту;
+:Вибирає данні для оновлення;
+
+|Система|
+:Перевіряє наявність даних
+можливо
+ DATA_ALREADY_EXIST;
+
+|Редактор|
+:Редагує потрібні данні;
+:Підтверджує оновлення;
+stop
+
+@enduml
+
+### Сценарій видалення даних
+| ID: |EDITOR_DELETE_DATA|
+|-|-|
+| НАЗВА: |Видалення даних з сайту |
+| УЧАСНИКИ: | Редактор, система|
+| ПЕРЕДУМОВИ: |Редактор має права на редагування даних|
+| РЕЗУЛЬТАТ: |Дані видалено з сайту|
+| ВИКЛЮЧНІ СИТУАЦІЇ |Обрані дані відсутні на сайті - DATA_NOT_EXIST|
+| ОСНОВНИЙ СЦЕНАРІЙ: | 1. Редактор входить в панель редагування сайту
2. Редактор вибирає данні для видалення
3. Система перевіряє наявність даних (можливо DATA_NOT_EXIST)
4. Редактор підтверджує видалення|
+
+@startuml
+|Редактор|
+start;
+:Входить в панель редагування сайту;
+:Вибирає данні для видалення;
+
+|Система|
+:Перевіряє наявність даних
+можливо
+ DATA_ALREADY_EXIST;
+
+|Редактор|
+:Підтверджує редагування;
+stop
+
+@enduml
+
+## 9. Сценарій використання адміністратора
+### Сценарій блокування користувача
+| **ID:** |ADMIN_BLOCK_USER|
+|-|-|
+| **НАЗВА:** | Блокування користувача на сайті|
+| **УЧАСНИКИ:** | Адміністратор, система|
+| **ПЕРЕДУМОВИ:** | Адміністратор має права доступу до управління користувачами|
+| **РЕЗУЛЬТАТ:** | Обліковий запис користувача заблоковано|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Обліковий запис користувача не існує - NON_EXISTENT_ACCOUNT|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Адміністратор входить в панель керування
2. Адміністратор вибирає користувача для блокування
3. Система перевіряє наявність користувача. (можливо NON_EXISTENT_ACCOUNT)
4. Адміністратор блокує користувача |
+
+@startuml
+
+|Адміністратор|
+start;
+:Входить в панель керування;
+:Вибирає користувача для блокування;
+
+|Система|
+:Перевіряє наявність користувача
+можливо
+ NON_EXISTENT_ACCOUNT;
+
+|Адміністратор|
+:Блокує користувача;
+stop
+
+@enduml
+
+### Сценарій надання користувачу права на редагування
+| **ID:** |ADMIN_GRANT_EDIT_PERMISSION|
+|-|-|
+| **НАЗВА:** | Надання користувачу права на редагування|
+| **УЧАСНИКИ:** | Адміністратор, система|
+| **ПЕРЕДУМОВИ:** | Адміністратор має права на редагування прав|
+| **РЕЗУЛЬТАТ:** | Користувач отримав права на редагування|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Користувача не знайдено в системі - NON_EXISTENT_ACCOUNT|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Адміністратор входить в панель керування
2. Адміністратор вибирає користувача для надання прав
3. Система перевіряє наявність користувача. (можливо NON_EXISTENT_ACCOUNT)
4. Адміністратор надає користувачу права на редагування|
+
+@startuml
+
+|Адміністратор|
+start;
+:Входить в панель керування;
+:Вибирає користувача для надання прав;
+
+|Система|
+:Перевіряє наявність користувача
+можливо
+ NON_EXISTENT_ACCOUNT;
+
+|Адміністратор|
+:Надає користувачу права на редагування;
+stop
+
+@enduml
+
+### Сценарій перевірки даних, запропонованих редактором
+| **ID:** |ADMIN_DATA_REVIEW|
+|-|-|
+| **НАЗВА:** | Перевірка даних, запропонованих редактором для публікації |
+| **УЧАСНИКИ:** | Адміністратор, система|
+| **ПЕРЕДУМОВИ:** | Адміністратор має права на публікацію. Редактор запропонував дані для публікаці|
+| **РЕЗУЛЬТАТ:** | Дані підтверджено для публікації або відхилено|
+| **ВИКЛЮЧНІ СИТУАЦІЇ:** | Дані не відповідають вимогам сайту - DATA_NON_COMPLIANT|
+| **ОСНОВНИЙ СЦЕНАРІЙ:** | 1. Система надсилає адміністратору повідомлення про нові дані, запропоновані для публікації
2. Адміністратор відкриває перегляд даних
3. Адміністратор перевіряє якість, відповідність стандартам та зміст даних
4. Адміністратор або підтверджує дані для публікації, або відхиляє їх(можливий DATA_NON_COMPLIANT)|
+
+@startuml
+
+
+|Адміністратор|
+start;
+
+|Система|
+:Надсилає адміністратору повідомлення про\nнові дані, запропоновані для публікації;
+
+|Адміністратор|
+:Відкриває перегляд даних;
+:Перевіряє якість, відповідність\nстандартам та зміст даних;
+:Або підтверджує дані для
+публікації, або відхиляє їх
+можливий
+ DATA_NON_COMPLIANT;
+
+stop
+
+@enduml
diff --git a/package.json b/package.json
index 8d66fd314..b4a3c78a8 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,10 @@
{
- "name": "dis-edu",
+ "name": "Media-content-analysis-system_DB",
"version": "2.1.0",
"main": "index.js",
"description": "Databases course work template",
- "repository": "https://github.com/boldak/dis-edu",
- "author": "Andrey Boldak ",
+ "repository": "https://github.com/Rembqq/Media-content-analysis-system_DB",
+ "author": "Nikita Volkovskyi ",
"license": "ECL 2.0",
"scripts": {
"docs:dev": "npx vuepress dev docs",
diff --git a/publish.sh b/publish.sh
index 8dcaea4ce..3170a8a6d 100644
--- a/publish.sh
+++ b/publish.sh
@@ -20,6 +20,7 @@ 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://Rembqq.github.io/Media-content-analysis-system_DB
+git push -f https://github.com/Rembqq/Media-content-analysis-system_DB master:gh-pages
cd -