93 Commits

Author SHA1 Message Date
hasslesstech 302fd36c34 Merge pull request 'Лаб №4: додавання ER-моделі' (#40) from shmuliar into master
Reviewed-on: #40
2024-05-19 12:48:13 +03:00
hasslesstech 9feddb6bac лаб4: додав типи даних полів посилання на BE-моделі 2024-05-19 12:43:34 +03:00
hasslesstech 941c5be8f3 лаб4: додав ER-модель та оновив попередні лабораторні 2024-05-19 12:39:09 +03:00
hasslesstech 577e565552 Merge pull request 'лаб4: BE-модель' (#39) from shmuliar into master
Reviewed-on: #39
2024-05-19 10:41:12 +03:00
hasslesstech c70ddad444 лаб4: додав use-case-файли для керування посиланнями та оновив всі попередні лаби 2024-05-19 10:33:14 +03:00
hasslesstech 3dc979873b Оновлення гілки 2024-05-02 11:11:26 +03:00
hasslesstech 6fdb3b9072 Merge pull request 'table-generator: розробив аналоги основних інструментів мовою Python 3' (#37) from shmuliar-use-case into master
Reviewed-on: #37
2024-05-02 11:10:55 +03:00
hasslesstech 2c392feee6 лаб4: додав на BE-модель інформацію про посилання 2024-04-30 22:32:06 +03:00
hasslesstech 9b538c7d8e лаб4: додав BE-модель 2024-04-30 22:06:45 +03:00
hasslesstech 28fd966167 table-generator: прибрав зайвий закоментований код з інструментів 2024-04-30 19:44:15 +03:00
hasslesstech 47a3e33c03 table-generator: переробив ключові інструменти автоматичного поєднання файлів мовою python 2024-04-30 19:40:26 +03:00
hasslesstech 61f9f6e5e0 Merge pull request 'table-generator: додав підтримку автоматичної конвертації use-case-файлів у Activity-діаграми (додаток до лаб. роботи №3)' (#36) from shmuliar-use-case into master
Reviewed-on: #36
Reviewed-by: Rhinemann <andreyfrog26@gmail.com>
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-28 18:07:41 +03:00
hasslesstech a5cef512ce Оновлення гілки 2024-04-28 18:07:29 +03:00
hasslesstech 6de002b175 Merge pull request 'Лаб №3: виконав решту завдань' (#35) from shmuliar into master
Reviewed-on: #35
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-28 18:06:51 +03:00
hasslesstech 1da2840938 table-generator: додав activities.md та каталог activities/ до .gitignore 2024-04-28 15:51:25 +03:00
hasslesstech 688e2a7984 Додав правильну назву проєкту 2024-04-28 15:21:47 +03:00
hasslesstech 02e4da8050 table-generator: додав підтримку автоматичної конвертації use-case-файлів у Activity-діаграми (для автоматизації підтримки лаб. роботи №3) 2024-04-28 15:17:31 +03:00
hasslesstech 0ae26a6d0a лаб3: додав решту необхідних компонентів 2024-04-28 15:14:36 +03:00
hasslesstech e1499383d1 Покращив вигляд бокової панелі 2024-04-28 11:46:28 +03:00
hasslesstech 53734e9998 Merge pull request 'Added a use case diagram' (#34) from shved into master
Reviewed-on: #34
Reviewed-by: ІО-23 Шмуляр Олег <hasslesstech@noreply.localhost>
2024-04-28 11:25:23 +03:00
Rhinemann b1b595e61b Fixed the quotation marks 2024-04-23 22:16:08 +03:00
Rhinemann fd12ac3cd4 Added a use case diagram 2024-04-23 20:25:38 +03:00
hasslesstech 6ed051bf95 Merge pull request 'Лаб №2: організував файли правильним чином' (#33) from shmuliar into master
Reviewed-on: #33
2024-04-21 18:52:17 +03:00
hasslesstech ba7444fc49 лаб2: додав загальний файл-вказівник на першу та другу лабораторні роботи 2024-04-21 18:48:23 +03:00
hasslesstech 4607ce75cd лаб2: перемістив файл першої лаб. роботи 2024-04-21 18:35:44 +03:00
hasslesstech 47f3cbc26c Merge pull request 'utils/table-generator: додав автоматичну генерацію суцільного файлу з таблицями' (#32) from shmuliar-use-case into master
Reviewed-on: #32
2024-04-21 18:33:07 +03:00
hasslesstech 21beb456e0 Оновлення гілки 2024-04-21 18:32:24 +03:00
hasslesstech 1ec1bbbfed Merge pull request 'Лаб №2: переніс use-case-таблиці в основний файл' (#31) from shmuliar into master
Reviewed-on: #31
2024-04-21 18:31:38 +03:00
hasslesstech 02394beba0 utils/table-generator: додав суцільний файл з таблицями до .gitignore 2024-04-21 16:34:40 +03:00
hasslesstech b253eb8f0f utils/table-generator: додав автоматичну генерацію суцільного файлу з таблицями 2024-04-21 16:01:34 +03:00
hasslesstech 68500e9451 лаб2: переніс use-case-таблиці в основний файл 2024-04-21 15:55:17 +03:00
hasslesstech 3bdaf3674f Незначні виправлення 2024-04-21 15:37:40 +03:00
hasslesstech 1c31f64954 Merge pull request 'лаб2: заповнив незроблені частини' (#30) from shmuliar-short-desc into master
Reviewed-on: #30
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-21 15:24:54 +03:00
hasslesstech e9ea10d36e Оновлення гілки 2024-04-21 15:24:21 +03:00
hasslesstech fbbaeb9c3f Merge pull request 'лаб2: додав решту характеристик FURPS' (#29) from shmuliar into master
Reviewed-on: #29
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-21 15:22:54 +03:00
hasslesstech a912a73926 лаб2: додав короткий опис продукту та логотип 2024-04-20 12:51:59 +03:00
hasslesstech 5aaf3ce928 Оновлення гілки 2024-04-20 11:42:56 +03:00
hasslesstech c00659062c Merge pull request 'Лаб №2: вступ' (#28) from bodnar into master
Reviewed-on: #28
Reviewed-by: hasslesstech <user1@109.86.70.81>
2024-04-20 11:41:49 +03:00
Andrii f5abbf5274 оновлення гілки 2024-04-20 11:38:01 +03:00
hasslesstech 1600aa6653 лаб2: додав решту характеристик FURPS 2024-04-20 11:27:28 +03:00
Andrii ef0ebef4c3 Лаб №2: вступ 2024-04-14 19:07:41 +03:00
hasslesstech c3bbc47f6b Merge pull request 'Лаб №2: додав опис системи за критерієм функціональності' (#25) from shmuliar into master
Reviewed-on: #25
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-14 18:51:58 +03:00
hasslesstech 86f27e99fd Оновив гілку для злиття 2024-04-14 18:48:08 +03:00
hasslesstech 0f68887e2f Merge pull request 'Лаб2: додав use-case-файли' (#26) from shmuliar-use-case into master
Reviewed-on: #26
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-04-14 18:46:07 +03:00
hasslesstech 5da6368aae лаб2: додав папку готових таблиць use-case-ів до .gitignore 2024-04-04 16:15:19 +03:00
hasslesstech f2751a8604 лаб2: додав скрипти для зручнішої роботи з use-case-таблицями 2024-04-04 16:13:40 +03:00
hasslesstech a53cdb334d лаб2: додав 12 файлів use-case-ів 2024-04-04 16:12:45 +03:00
hasslesstech 05f9376a90 лаб2: додав підтримку аргументу --destination у програму для генерації таблиць та покращив її вивід 2024-04-04 16:11:33 +03:00
hasslesstech efe128fd59 лаб №2: додав опис системи за критерієм функціональності 2024-03-24 18:37:14 +02:00
hasslesstech 9f296dcccd Merge pull request 'додав скрипт форматування таблиць для лаб №2' (#23) from shmuliar-table-converter into master
Reviewed-on: #23
Reviewed-by: Misha1tigr <misha1tigr@gmail.com>
2024-03-24 17:14:12 +02:00
hasslesstech e9d104f53a utils/table-generator/convert.py: додав захист від повторної обробки файлів таблиць та виправив декілька помилок 2024-03-24 16:35:21 +02:00
hasslesstech b8f1e590e7 utils/table-generator/convert.py: додав автоматичне очищення поля ID use-case-ів від сторонніх шляхів 2024-03-24 15:11:53 +02:00
hasslesstech 06b52b1efc utils/table-generator/convert.py: вказав кодування UTF-8 для роботи з файлами 2024-03-24 15:08:03 +02:00
hasslesstech d67567d304 додав скрипт форматування таблиць для лаб №2 2024-03-24 14:19:31 +02:00
hasslesstech 8b5812ac91 Merge pull request 'лаб2: додав файл шаблону для другої лаб роботи' (#22) from shmuliar into master
Reviewed-on: #22
2024-03-23 20:16:22 +02:00
hasslesstech acada2851d лаб2: додав файл шаблону для другої лаб роботи 2024-03-23 20:13:51 +02:00
hasslesstech 2332744679 Merge pull request 'Лаб №1: оптимізація структури тексту' (#20) from shmuliar into master
Reviewed-on: #20
Reviewed-by: Misha1tigr <misha1tigr@gmail.com>
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-03-16 10:25:27 +02:00
hasslesstech 605b898358 лаб1: виправив пунктуаційну помилку 2024-03-15 10:06:06 +02:00
hasslesstech dfa280a6b2 лаб1: скоротив опис наявних сервісів та перемістив їх у розділ порівняння наявних засобів із нашим 2024-03-15 10:02:48 +02:00
hasslesstech e31c1eab09 Merge pull request 'лаб1: додав літературу' (#19) from shmuliar into master
Reviewed-on: #19
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
Reviewed-by: Misha1tigr <misha1tigr@gmail.com>
2024-03-14 16:09:02 +02:00
hasslesstech 35c3276a5c лаб1: додав літературу 2024-03-14 12:49:54 +02:00
hasslesstech 0b2e555a36 Merge pull request 'Written a conclusion' (#18) from shved into master
Reviewed-on: #18
Reviewed-by: hasslesstech <user1@109.86.70.81>
Reviewed-by: Misha1tigr <misha1tigr@gmail.com>
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-03-14 12:46:42 +02:00
Rhinemann bba0246d8d Written a conclusion 2024-03-14 12:33:38 +02:00
Rhinemann 6dde82e6fb Revert "Written a conclusion"
This reverts commit 5d1eb939da.
2024-03-14 12:31:40 +02:00
Rhinemann 5d1eb939da Written a conclusion 2024-03-14 12:14:25 +02:00
hasslesstech b7d6da08d3 Merge pull request 'лаб1: прибрав повторюваний текст' (#16) from bodnar into master
Reviewed-on: #16
Reviewed-by: Misha1tigr <misha1tigr@gmail.com>
Reviewed-by: hasslesstech <user1@109.86.70.81>
2024-03-13 20:39:54 +02:00
Andrii 0fda5ae979 лаб1: прибрав повторюваний текст 2024-03-12 21:50:28 +02:00
hasslesstech f97a9cb026 Merge pull request 'Лаб1: порівняльна характеристика існуючих засобів вирішення завдання' (#12) from shmuliar into master
Reviewed-on: #12
Reviewed-by: Misha1tigr <misha1tigr@gmail.com>
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-03-12 21:34:13 +02:00
hasslesstech 947fb51d4c Merge remote-tracking branch 'origin/master' into shmuliar 2024-03-12 21:26:26 +02:00
hasslesstech c7447675c5 Merge pull request 'лаб1: зробив секцію з основними визначеннями' (#14) from korbut into master
Reviewed-on: #14
Reviewed-by: hasslesstech <user1@109.86.70.81>
Reviewed-by: IO-23 Andrii Bodnar <bodnarandrew123@gmail.com>
2024-03-12 21:25:09 +02:00
Misha1tigr 86a25aefda лаб1: зробив секцію з основними визначеннями 2024-03-07 21:46:23 +02:00
hasslesstech 614f0151a7 лаб1: порівняльна характеристика існуючих засобів вирішення завдання: виділив критерії FURPS напівжирним шрифтом 2024-03-07 17:24:23 +02:00
hasslesstech 6456470407 лаб1: порівняльна характеристика існуючих засобів вирішення завдання 2024-03-07 17:01:48 +02:00
hasslesstech bf26464b7d Merge branch 'vodyana-temp' 2024-03-07 15:18:05 +02:00
hasslesstech db649f6242 fix merge conflict 2024-03-07 15:17:17 +02:00
hasslesstech ffe289e0c3 Merge pull request 'Лаб1: Підходи та способи вирішення завдання' (#10) from bodnar into master
Reviewed-on: #10
Reviewed-by: hasslesstech <user1@109.86.70.81>
Reviewed-by: bacant150 <bacant150@gmail.com>
Reviewed-by: vodyana <vodyanayaviktoria@gmail.com>
Reviewed-by: EugenIO <ievgeniigol@gmail.com>
2024-03-07 14:57:48 +02:00
vodyana ffeb21a811 Лабораторна №1: Додано підходи та методи організації систем організації та опитування експертів (Змінено: посилання) 2024-03-07 14:56:44 +02:00
vodyana 6412576483 Лабораторна №1: Додано підходи та методи організації систем організації та опитування експертів 2024-03-07 14:08:16 +02:00
Andrii ca632cfa55 updating branch 2024-03-06 23:17:39 +02:00
hasslesstech eb76664c04 Merge pull request 'Лаб1: Вступ' (#8) from huranets into master
Reviewed-on: #8
Reviewed-by: hasslesstech <user1@109.86.70.81>
Reviewed-by: Misha1tigr <misha1tigr@gmail.com>
Reviewed-by: Andrii <bodnarandrew123@gmail.com>
Reviewed-by: vodyana <vodyanayaviktoria@gmail.com>
2024-03-06 22:58:38 +02:00
Andrii 1330b8d12a Лаб1: додав посилання на джерело. 2024-03-06 22:17:30 +02:00
Andrii 2afe12b2ac Лаб1: додав методи експертного опитування. 2024-03-06 22:06:16 +02:00
bacant150 eb0973a4e8 Лаб1: Вступ1.2 2024-03-06 20:01:09 +02:00
bacant150 5f0bd3e0d8 Лаб1: Вступ 2024-03-06 19:12:08 +02:00
hasslesstech 32049312c7 Merge pull request 'Update main page in preparation for friday lecture' (#2) from shmuliar into master
Reviewed-on: #2
Reviewed-by: Misha1tigr <misha1tigr@gmail.com>
Reviewed-by: Andrii <bodnarandrew123@gmail.com>
Reviewed-by: bacant150 <bacant150@gmail.com>
2024-02-15 11:28:15 +02:00
dymik739 2f91040834 update local branch to keep up-to-date with master 2024-02-14 10:46:01 +02:00
dymik739 c690328d60 add member names and contact information on the main page of the lab results hosting 2024-02-13 22:47:45 +02:00
hasslesstech 54a3acb9de Merge pull request 'Change links to point to main repo, configure vuepress deployment' (#1) from shmuliar into master
Reviewed-on: #1
2024-02-12 16:20:07 +02:00
dymik739 7f4ec5b4d0 change links to point to main repo, configure vuepress deployment 2024-02-12 16:17:17 +02:00
boldak 4a4631a216 Update package.json 2021-08-30 19:53:11 +03:00
boldak 7d4d95b7ce update readme 2021-08-30 18:57:34 +03:00
boldak 054e8e46c2 initial 2021-08-30 18:54:57 +03:00
boldak a342e62446 Initial commit 2021-08-30 16:52:17 +03:00
143 changed files with 19838 additions and 9873 deletions
+110
View File
@@ -0,0 +1,110 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# utils/table-generator generated files
utils/table-generator/tables/
utils/table-generator/tables.md
utils/table-generator/activities/
utils/table-generator/activities.md
-22
View File
@@ -1,22 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Xpertise</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="icon" href="/edu-dis-labs/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">
<meta name="description" content="Лабораторні роботи з дисципліни "Організація баз даних"">
<link rel="preload" href="/edu-dis-labs/assets/css/0.styles.683d4db1.css" as="style"><link rel="preload" href="/edu-dis-labs/assets/js/app.ef1e786b.js" as="script"><link rel="preload" href="/edu-dis-labs/assets/js/14.2545c1ad.js" as="script"><link rel="prefetch" href="/edu-dis-labs/assets/js/10.e50a5206.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/11.29ee89f8.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/12.0b4fa948.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/13.6b4a3ce8.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/15.0aee5be2.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/16.ae758f43.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/17.b51d0d04.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/18.51ffb2cf.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/19.85d5c25e.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/2.1dcc2d74.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/20.45f25853.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/21.c178c591.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/22.3dfa983e.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/23.58c0e73a.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/24.1862bf96.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/25.d4ca4f91.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/26.a9d31514.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/27.678360d8.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/28.01bbdb4a.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/3.3d08d86c.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/4.4c193c95.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/5.dea68fdd.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/6.6d8c3d51.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/7.9617083c.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/8.53a1b2bd.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/9.1882ecda.js">
<link rel="stylesheet" href="/edu-dis-labs/assets/css/0.styles.683d4db1.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>There's nothing here.</blockquote> <a href="/edu-dis-labs/" class="router-link-active">
Take me home.
</a></div></div><div class="global-ui"><!----></div></div>
<script src="/edu-dis-labs/assets/js/app.ef1e786b.js" defer></script><script src="/edu-dis-labs/assets/js/14.2545c1ad.js" defer></script>
</body>
</html>
+16
View File
@@ -0,0 +1,16 @@
ECL 2.0
Copyright (c) 2021 Andrey Boldak
Licensed under the
Educational Community License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may
obtain a copy of the License at
https://opensource.org/licenses/ECL-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the License for the specific language governing
permissions and limitations under the License.
+62
View File
@@ -0,0 +1,62 @@
# Шаблон репозиторію для виконання лабораторних робіт з дисципліни "Розподілені інформаційні системи"
## Як використовувати
В цьому репозиторії знаходиться шаблон для виконання лабораторних робіт.
Для виконання лабораторних робіт необхідно зробити ```fork``` цього репозіторію, склонувати вже власний репозіторій та розміщувати документацію у відповідних діректоріях ```./docs```.
В цьому файлі необхідно вказати назву проекту. Коротку загальну характеристику
проекту, контактні дані виконавців.
Шаблон публікування підготовлено з використанням [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 {24}
#!/usr/bin/env sh
# abort on errors
set -e
# build
npm run docs:build
# 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://<USERNAME>.github.io
# git push -f git@github.com:boldak/<USERNAME>.github.io.git master
# if you are deploying to https://<USERNAME>.github.io/<REPO>
git push -f https://github.com/<USERNAME>/dis-edu.git master:gh-pages
cd -
```
Потім запускаємо
```bash
npm run publish
```
Для відлагодження документації в локальному режимі запускаємо
```bash
npm run docs:dev
```
Доступ до локально опублікованої версії документації [http://localhost:3030](http://localhost:3030)
***Happy learning! Happy coding!***
-32
View File
@@ -1,32 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Xpertise</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="icon" href="/edu-dis-labs/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">
<meta name="description" content="Лабораторні роботи з дисципліни "Організація баз даних"">
<link rel="preload" href="/edu-dis-labs/assets/css/0.styles.683d4db1.css" as="style"><link rel="preload" href="/edu-dis-labs/assets/js/app.ef1e786b.js" as="script"><link rel="preload" href="/edu-dis-labs/assets/js/2.1dcc2d74.js" as="script"><link rel="preload" href="/edu-dis-labs/assets/js/17.b51d0d04.js" as="script"><link rel="prefetch" href="/edu-dis-labs/assets/js/10.e50a5206.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/11.29ee89f8.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/12.0b4fa948.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/13.6b4a3ce8.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/14.2545c1ad.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/15.0aee5be2.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/16.ae758f43.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/18.51ffb2cf.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/19.85d5c25e.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/20.45f25853.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/21.c178c591.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/22.3dfa983e.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/23.58c0e73a.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/24.1862bf96.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/25.d4ca4f91.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/26.a9d31514.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/27.678360d8.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/28.01bbdb4a.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/3.3d08d86c.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/4.4c193c95.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/5.dea68fdd.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/6.6d8c3d51.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/7.9617083c.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/8.53a1b2bd.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/9.1882ecda.js">
<link rel="stylesheet" href="/edu-dis-labs/assets/css/0.styles.683d4db1.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/edu-dis-labs/" class="home-link router-link-active"><!----> <span class="site-name">Xpertise</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/edu-dis-labs/" class="nav-link">
Початок
</a></div> <a href="http://139.162.162.130:3000/hasslesstech/edu-dis-labs" target="_blank" rel="noopener noreferrer" class="repo-link">
Gitea
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/edu-dis-labs/" class="nav-link">
Початок
</a></div> <a href="http://139.162.162.130:3000/hasslesstech/edu-dis-labs" target="_blank" rel="noopener noreferrer" class="repo-link">
Gitea
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><a href="/edu-dis-labs/intro/" class="sidebar-link">Вступ</a></li><li><section class="sidebar-group collapsable depth-0"><a href="/edu-dis-labs/requirements/" class="sidebar-heading clickable"><span>Розроблення вимог до системи</span> <span class="arrow right"></span></a> <!----></section></li><li><a href="/edu-dis-labs/use-cases/" class="sidebar-link">Розроблення вимог до функціональности системи</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#загальна-схема" class="sidebar-link">Загальна схема</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#схеми-використання-для-окремих-діячів" class="sidebar-link">Схеми використання для окремих діячів</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#сценаріі-використання" class="sidebar-link">Сценарії використання</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#для-гостя" class="sidebar-link">Для гостя</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#для-зареєстрованого-користувача" class="sidebar-link">Для зареєстрованого користувача</a></li></ul></li></ul></li><li><a href="/edu-dis-labs/design/" class="sidebar-link">Проєктування архітектури системи</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/edu-dis-labs/design/#be-модель" class="sidebar-link">BE модель</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/design/#er-модель" class="sidebar-link">ER-модель</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/design/#реляціина-схема" class="sidebar-link">Реляційна схема</a></li></ul></li><li><a href="/edu-dis-labs/software/" class="sidebar-link">Реалізація інформаційного та програмного забезпечення</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/edu-dis-labs/software/#sql-скрипт-для-створення-та-початкового-наповнення-бази-даних" class="sidebar-link">SQL-скрипт для створення та початкового наповнення бази даних</a></li></ul></li><li><a href="/edu-dis-labs/test/" class="sidebar-link">Тестування працездатності системи</a></li><li><a href="/edu-dis-labs/conclusion/" class="sidebar-link">Висновки</a></li><li><a href="/edu-dis-labs/api/" aria-current="page" class="active sidebar-link">API</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Останнє оновлення:</span> <span class="time">8/30/2021, 5:54:57 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/edu-dis-labs/conclusion/" class="prev">
Висновки
</a></span> <!----></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/edu-dis-labs/assets/js/app.ef1e786b.js" defer></script><script src="/edu-dis-labs/assets/js/2.1dcc2d74.js" defer></script><script src="/edu-dis-labs/assets/js/17.b51d0d04.js" defer></script>
</body>
</html>
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

-1
View File
@@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="12" height="13"><g stroke-width="2" stroke="#aaa" fill="none"><path d="M11.29 11.71l-4-4"/><circle cx="5" cy="5" r="4"/></g></svg>

Before

Width:  |  Height:  |  Size: 216 B

File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{566:function(n,o,e){},654:function(n,o,e){"use strict";e.r(o);e(566);var l={name:"Styles"},t=e(34),u=Object(t.a)(l,void 0,void 0,!1,null,null,null);o.default=u.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{619:function(t,a,s){t.exports=s.p+"assets/img/relational_scheme.50c04084.png"},644:function(t,a,s){"use strict";s.r(a);var r=s(34),e=Object(r.a)({},(function(){var t=this,a=t.$createElement,r=t._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"проєктування-бази-даних"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#проєктування-бази-даних"}},[t._v("#")]),t._v(" Проєктування бази даних")]),t._v(" "),r("h2",{attrs:{id:"be-модель"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#be-модель"}},[t._v("#")]),t._v(" BE модель")]),t._v(" "),r("center",{staticStyle:{"border-radius":"4px",border:"1px solid #cfd7e6","box-shadow":"0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025)",padding:"1em"}},[r("img",{attrs:{src:"https://www.plantuml.com/plantuml/svg/VPJBReCm44Nt_Wh4CWeesKTHKYcBI8ZqmQ9TMZ1ghGQ3_4YRlwzji0EswP8vTsRiUoqEN60cP7j52AWWufuSwxgJL2IxtQcipjN7Vk-HN79W5BUW9DNflGe5FURyfsFDGs0LRvBTu1wPFO0yEdPaZMHOa8ukSSAViJgQtlfqkHIdOncHb6h1N64bBnBuEDu_d4MvW5yHNkeLUD_H6YAT5kKtV9KGjXQ4VaVQT5dPZ3-X82tHAyzbvM4sZbvMA3FulwrnscFnDJbfa7gMhMpIA4Xy2j4qL0s6R-Jd6I8NPGmD4Ku8yktAf8AwY29EUT2Ob4NrVjqOysX7NhY6s1f2yqTZe2qvKvDqkzwcQasIRjQhT7vL7xfkzr970RCAjzoDtom8pBiRQdg-cMFTF01jr0_X3m00",alt:"uml diagram"}})]),t._v(" "),r("h2",{attrs:{id:"er-модель"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#er-модель"}},[t._v("#")]),t._v(" ER-модель")]),t._v(" "),r("center",{staticStyle:{"border-radius":"4px",border:"1px solid #cfd7e6","box-shadow":"0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025)",padding:"1em"}},[r("img",{attrs:{src:"https://www.plantuml.com/plantuml/svg/XL9TIyCm57tFhmXzShB1kiqYPPHL6JWedMvzyJ4q5mskQSd7T8Z_tIuDQQspvYavzvvpSWzt9HKHIXS7X80hfauuplDISuMNotMQRRBdACAV2DU7qN2JPkQg9GXE2WZl7-BTLR0O6RGYKhwNWZRex2OOeIydkmDPbJo7GTqZEMWhwWVpsqLNu4c3LApaWm8AFjH5-xqMHpWDSjk13FSCKIt8sRC7C_b8wWXeUBVT9kiujM1Q2xHOwvqm_lPVdD8zX0rATiha1H9MCFMhwITQ4VNQV7K-CyExqBtf-Dh3aqc4FN_iUovCv5BjTpI18PjRlsgN19dH_g1UCfzsoMW5dDQhzmq0",alt:"uml diagram"}})]),t._v(" "),r("h2",{attrs:{id:"реляціина-схема"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#реляціина-схема"}},[t._v("#")]),t._v(" Реляційна схема")]),t._v(" "),r("center",{staticStyle:{"border-radius":"4px",border:"1px solid #cfd7e6","box-shadow":"0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025)",padding:"1em"}},[r("p",[r("img",{attrs:{src:s(619),alt:"relational_schema"}})])])],1)}),[],!1,null,null,null);a.default=e.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{635:function(e,a,t){"use strict";t.r(a);var n={name:"my-component",components:{VueGoodTable:t(85).a},data:function(){return{columns:[{label:"Name",field:"name"},{label:"Age",field:"age",type:"number"},{label:"Created On",field:"createdAt",type:"date",dateInputFormat:"yyyy-mm-dd",dateOutputFormat:"MMM Do yy"},{label:"Percent",field:"score",type:"percentage"}],rows:[{id:1,name:"John",age:20,createdAt:"2011-10-31",score:.03343},{id:2,name:"Jane",age:24,createdAt:"2019-10-31",score:.03343},{id:3,name:"Susan",age:16,createdAt:"2011-10-30",score:.03343},{id:4,name:"Chris",age:55,createdAt:"2011-10-11",score:.03343},{id:5,name:"Dan",age:40,createdAt:"2011-10-21",score:.03343},{id:6,name:"John",age:20,createdAt:"2011-10-31",score:.03343}]}}},r=t(34),o=Object(r.a)(n,(function(){var e=this.$createElement,a=this._self._c||e;return a("div",[a("vue-good-table",{attrs:{columns:this.columns,rows:this.rows}})],1)}),[],!1,null,null,null);a.default=o.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{633:function(t,e,s){"use strict";s.r(e);var n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],o={methods:{getMsg:function(){return n[Math.floor(Math.random()*n.length)]}}},i=s(34),h=Object(i.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-default-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null);e.default=h.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{637:function(t,n,e){"use strict";e.r(n);e(10),e(15),e(17);var i={name:"mermaid",mounted:function(){e.e(27).then(e.t.bind(null,630,7)).then((function(t){t.initialize({startOnLoad:!0}),t.init()}))}},a=e(34),l=Object(a.a)(i,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"mermaid"},[this._t("default")],2)}),[],!1,null,null,null);n.default=l.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{641:function(r,e,t){"use strict";t.r(e);var n=t(34),a=Object(n.a)({},(function(){var r=this,e=r.$createElement,t=r._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("p",[t("strong",[r._v("Виконали:")])]),r._v(" "),t("p",[t("em",[r._v("студенти 2-го курсу, групи ІО-23:")])]),r._v(" "),t("p",[t("em",[r._v("Олег ШМУЛЯР [shmuliar1@ukr.net, "),t("a",{attrs:{href:"https://t.me/dmytrofiot23",target:"_blank",rel:"noopener noreferrer"}},[r._v("@dmytrofiot23"),t("OutboundLink")],1),r._v("]")])]),r._v(" "),t("p",[t("em",[r._v("Андрій БОДНАР [bodnarandrew123@gmail.com, "),t("a",{attrs:{href:"https://t.me/andrux4",target:"_blank",rel:"noopener noreferrer"}},[r._v("@andrux4"),t("OutboundLink")],1),r._v("]")])]),r._v(" "),t("p",[t("em",[r._v("Андрій ШВЕД [andreyfrog26@gmail.com, "),t("a",{attrs:{href:"https://t.me/Rhinemann",target:"_blank",rel:"noopener noreferrer"}},[r._v("@Rhinemann"),t("OutboundLink")],1),r._v("]")])]),r._v(" "),t("p",[t("em",[r._v("Євгеній ГОЛОВАТЕНКО [ievgeniigol@gmail.com, "),t("a",{attrs:{href:"https://t.me/yevholova",target:"_blank",rel:"noopener noreferrer"}},[r._v("@yevholova"),t("OutboundLink")],1),r._v("]")])]),r._v(" "),t("p",[t("em",[r._v("Вікторія ВОДЯНА [vodyanayaviktoria@gmail.com, "),t("a",{attrs:{href:"https://t.me/victoriavodyana",target:"_blank",rel:"noopener noreferrer"}},[r._v("@victoriavodyana"),t("OutboundLink")],1),r._v("]")])]),r._v(" "),t("p",[t("em",[r._v("Михайло КОРБУТ [korbutmykhailo@gmail.com, "),t("a",{attrs:{href:"https://t.me/misha1tigr",target:"_blank",rel:"noopener noreferrer"}},[r._v("@misha1tigr"),t("OutboundLink")],1),r._v("]")])]),r._v(" "),t("p",[t("em",[r._v("Олександр ГУРАНЕЦЬ [bacant150@gmail.com, "),t("a",{attrs:{href:"https://t.me/Bacant150",target:"_blank",rel:"noopener noreferrer"}},[r._v("@Bacant150"),t("OutboundLink")],1),r._v("]")])]),r._v(" "),t("p",[t("strong",[r._v("Керівник")])]),r._v(" "),t("p",[t("em",[r._v("доцент кафедри ОТ ФІОТ, к.т.н., доцент")]),t("span",{attrs:{"padding-right:5em":""}}),r._v(" "),t("strong",[r._v("Андрій БОЛДАК")])]),r._v(" "),t("p",[t("a",{attrs:{href:"https://kpi.ua/",target:"_blank",rel:"noopener noreferrer"}},[r._v('НТУУ "КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ імені ІГОРЯ СІКОРСЬКОГО'),t("OutboundLink")],1)]),r._v(" "),t("p",[t("a",{attrs:{href:"https://fiot.kpi.ua/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Факультет інформатики та обчислювальної техніки"),t("OutboundLink")],1)]),r._v(" "),t("p",[t("a",{attrs:{href:"https://comsys.kpi.ua/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Кафедра обчислювальної техніки"),t("OutboundLink")],1)]),r._v(" "),t("p",[r._v("Київ")])])}),[],!1,null,null,null);e.default=a.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{642:function(t,e,n){"use strict";n.r(e);var s=n(34),l=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);e.default=l.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{643:function(t,n,e){"use strict";e.r(n);var s=e(34),r=Object(s.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"висновки"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#висновки"}},[t._v("#")]),t._v(" Висновки")]),t._v(" "),e("p",[t._v("У висновках наводять оцінку отриманих результатів, можливі галузі його використання. Висновки повинні містити в собі коротку узагальнену оцінку результатів розробки, у\nтому числі і з погляду на їх технічно-економічну ефективність. Необхідно порівняти\nотримані результати усіх характеристик об’єкта проєктування із завданням і з основними показниками сучасних аналогічних об’єктів.")]),t._v(" "),e("p",[t._v("Необхідно вказати яке нове технічне рішення покладене в основу проєкту і у чому її\nпереваги, що нового було запропоновано самим студентом.")]),t._v(" "),e("p",[t._v("На базі отриманих висновків можуть надаватися рекомендації по використанню розробки. Вони повинні\nмати конкретний характер і бути цілком підтверджені проєктом.")])])}),[],!1,null,null,null);n.default=r.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{645:function(t,n,e){"use strict";e.r(n);var s=e(34),r=Object(s.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"вступ"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#вступ"}},[t._v("#")]),t._v(" Вступ")]),t._v(" "),e("p",[t._v("У вступі описується мета роботи і розглядається поставлене завдання з позиції її\nактуальності, значення її розв’язання для тієї предметної області, до якої відноситься\nтема бакалаврського проєкту.")]),t._v(" "),e("p",[t._v("Коротко характеризується сучасний рівень розв’язання\nданого завдання і взаємозв’язок з іншими проєктами по цій тематиці.")]),t._v(" "),e("p",[t._v("Наводяться\nосновні технічні характеристики розробки й очікуваний технічно-економічний ефект\nвід її реалізації.")])])}),[],!1,null,null,null);n.default=r.exports}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{646:function(t,s,e){"use strict";e.r(s);var r=e(34),i=Object(r.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"розроблення-загальних-вимог-до-системи"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#розроблення-загальних-вимог-до-системи"}},[this._v("#")]),this._v(" Розроблення загальних вимог до системи")]),this._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/requirements/state-of-the-art.html"}},[this._v("Аналіз предметної області")])],1),this._v(" "),s("li",[s("RouterLink",{attrs:{to:"/requirements/stakeholders-needs.html"}},[this._v("Запити зацікавлених осіб")])],1)])])}),[],!1,null,null,null);s.default=i.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{647:function(e,r,t){"use strict";t.r(r);var o=t(34),n=Object(o.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("p",[e._v("Серед наявних наразі сервісів порівняймо такі:")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://uk.wikipedia.org/wiki/Google_%D0%A4%D0%BE%D1%80%D0%BC%D0%B8",target:"_blank",rel:"noopener noreferrer"}},[e._v("Google Forms"),t("OutboundLink")],1),e._v(" -\nпрограмне забезпечення для адміністрування опитування, що входить до складу безкоштовного\nвебпакету Google Docs Editors, пропонованого Google. Google Форми доступні лише як вебдодаток.\nДодаток дозволяє користувачам створювати та редагувати опитування в Інтернеті, співпрацюючи з\nіншими користувачами в режимі реального часу.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://en.wikipedia.org/wiki/SurveyMonkey",target:"_blank",rel:"noopener noreferrer"}},[e._v("SurveyMonkey"),t("OutboundLink")],1),e._v(" - компанія, що зокрема пропонує\nхмарне програмне забезпечення задля опитування працівників, клієнтів та інших категорій\nлюдей.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.responsly.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Responsly"),t("OutboundLink")],1),e._v(" - платформа для створення опитувань з можливостями їх\nгенерації за допомогою штучного інтелекту. Має зроблені заздалегідь шаблони для типових\nопитувань та конструктор власних.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.jotform.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Jotform"),t("OutboundLink")],1),e._v(" - це компанія, що надає послуги зі створення онлайн-форм.\nНадає можливість вбудовування оплати безпосередньо у створені форми.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.questionpro.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("QuestionPro"),t("OutboundLink")],1),e._v(" - онлайн-сервіс для створення опитувань з можливістю обирати готові шаблони.")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://www.fillout.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Fillout"),t("OutboundLink")],1),e._v(" - платформа для створення онлайн-форм, що робить акцент на застосуванні штучного інтелекту та розширених можливостях, зокрема отримання платежів та розгалуженій логіці переходів.")])])}),[],!1,null,null,null);r.default=n.exports}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{651:function(t,s,e){"use strict";e.r(s);var n=e(34),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"тестування-працездатності-системи"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#тестування-працездатності-системи"}},[this._v("#")]),this._v(" Тестування працездатності системи")]),this._v(" "),s("p",[s("em",[this._v("В цьому розділі необхідно вказати засоби тестування, навести вихідні коди тестів та результати тестування.")])])])}),[],!1,null,null,null);s.default=r.exports}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{629:function(n,e,t){"use strict";t.r(e),t.d(e,"register",(function(){return o})),t.d(e,"unregister",(function(){return c}));var r;function o(n,e){void 0===e&&(e={});var t=e.registrationOptions;void 0===t&&(t={}),delete e.registrationOptions;var o=function(n){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];e&&e[n]&&e[n].apply(e,t)};"serviceWorker"in navigator&&r.then((function(){Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))?(!function(n,e,t){fetch(n).then((function(r){404===r.status?(e("error",new Error("Service worker not found at "+n)),c()):-1===r.headers.get("content-type").indexOf("javascript")?(e("error",new Error("Expected "+n+" to have javascript content-type, but received "+r.headers.get("content-type"))),c()):a(n,e,t)})).catch((function(n){return i(e,n)}))}(n,o,t),navigator.serviceWorker.ready.then((function(n){o("ready",n)})).catch((function(n){return i(o,n)}))):(a(n,o,t),navigator.serviceWorker.ready.then((function(n){o("ready",n)})).catch((function(n){return i(o,n)})))}))}function i(n,e){navigator.onLine||n("offline"),n("error",e)}function a(n,e,t){navigator.serviceWorker.register(n,t).then((function(n){e("registered",n),n.waiting?e("updated",n):n.onupdatefound=function(){e("updatefound",n);var t=n.installing;t.onstatechange=function(){"installed"===t.state&&(navigator.serviceWorker.controller?e("updated",n):e("cached",n))}}})).catch((function(n){return i(e,n)}))}function c(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(n){n.unregister()})).catch((function(n){return i(emit,n)}))}"undefined"!=typeof window&&(r="undefined"!=typeof Promise?new Promise((function(n){return window.addEventListener("load",n)})):{then:function(n){return window.addEventListener("load",n)}})}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{585:function(t,e,i){},620:function(t,e,i){"use strict";i(585)},634:function(t,e,i){"use strict";i.r(e);var n={name:"Details",props:{title:{type:String,default:"title"},content:{type:String,default:"title"}}},s=(i(620),i(34)),l=Object(s.a)(n,(function(){var t=this.$createElement,e=this._self._c||t;return e("details",[e("summary",[this._v(this._s(this.title))]),this._v(this._s(this.content)+" ")])}),[],!1,null,"5c5bfe02",null);e.default=l.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{590:function(t,e,n){},626:function(t,e,n){"use strict";n(590)},655:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(626),n(34)),p=Object(r.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=p.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{591:function(t,e,a){},627:function(t,e,a){"use strict";a(591)},639:function(t,e,a){"use strict";a.r(e);var n={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted:function(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(a(627),a(34)),s=Object(i.a)(n,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"759a7d02",null);e.default=s.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{592:function(e,t,a){},628:function(e,t,a){"use strict";a(592)},640:function(e,t,a){"use strict";a.r(t);a(90),a(41),a(134),a(135);var o={name:"CodeGroup",data:function(){return{codeTabs:[],activeCodeTabIndex:-1}},watch:{activeCodeTabIndex:function(e){this.activateCodeTab(e)}},mounted:function(){this.loadTabs()},methods:{changeCodeTab:function(e){this.activeCodeTabIndex=e},loadTabs:function(){var e=this;this.codeTabs=(this.$slots.default||[]).filter((function(e){return Boolean(e.componentOptions)})).map((function(t,a){return""===t.componentOptions.propsData.active&&(e.activeCodeTabIndex=a),{title:t.componentOptions.propsData.title,elm:t.elm}})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab:function(e){this.codeTabs.forEach((function(e){e.elm&&e.elm.classList.remove("theme-code-block__active")})),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},n=(a(628),a(34)),c=Object(n.a)(o,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ClientOnly",[a("div",{staticClass:"theme-code-group"},[a("div",{staticClass:"theme-code-group__nav"},[a("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(t,o){return a("li",{key:t.title,staticClass:"theme-code-group__li"},[a("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(t.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?a("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"deefee04",null);t.default=c.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{589:function(n,t,s){},625:function(n,t,s){"use strict";s(589)},638:function(n,t,s){"use strict";s.r(t);var i={name:"pros-cons",props:{intro:{type:String,required:!0},good:{type:Array,default:null},bad:{type:Array,default:null}}},a=(s(625),s(34)),e=Object(a.a)(i,(function(){var n=this,t=n.$createElement,s=n._self._c||t;return s("div",[s("p",{staticClass:"intro"},[n._v("\n "+n._s(n.intro)+"\n ")]),n._v(" "),s("div",{staticClass:"comparison"},[s("div",{staticClass:"comparison__container"},[n._m(0),n._v(" "),s("ul",n._l(n.good,(function(n){return s("li",{key:n,domProps:{innerHTML:n}})})),0)]),n._v(" "),s("div",{staticClass:"comparison__container comparison__container--donts"},[n._m(1),n._v(" "),s("ul",n._l(n.bad,(function(n){return s("li",{key:n,domProps:{innerHTML:n}})})),0)])])])}),[function(){var n=this.$createElement,t=this._self._c||n;return t("div",{staticClass:"comparison__heading"},[t("i",{staticClass:"material-icons blue-text"},[this._v("check")]),this._v("\n Pros\n ")])},function(){var n=this.$createElement,t=this._self._c||n;return t("div",{staticClass:"comparison__heading comparison__heading--donts"},[t("i",{staticClass:"material-icons"},[this._v("close")]),this._v("\n Cons\n ")])}],!1,null,"541222b7",null);t.default=e.exports}}]);
-1
View File
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{566:function(n,o,e){},653:function(n,o,e){"use strict";e.r(o);e(566);var l={name:"Styles"},t=e(34),u=Object(t.a)(l,void 0,void 0,!1,null,null,null);o.default=u.exports}}]);
File diff suppressed because one or more lines are too long
-40
View File
@@ -1,40 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Висновки | Xpertise</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="icon" href="/edu-dis-labs/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">
<meta name="description" content="Лабораторні роботи з дисципліни "Організація баз даних"">
<link rel="preload" href="/edu-dis-labs/assets/css/0.styles.683d4db1.css" as="style"><link rel="preload" href="/edu-dis-labs/assets/js/app.ef1e786b.js" as="script"><link rel="preload" href="/edu-dis-labs/assets/js/2.1dcc2d74.js" as="script"><link rel="preload" href="/edu-dis-labs/assets/js/18.51ffb2cf.js" as="script"><link rel="prefetch" href="/edu-dis-labs/assets/js/10.e50a5206.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/11.29ee89f8.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/12.0b4fa948.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/13.6b4a3ce8.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/14.2545c1ad.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/15.0aee5be2.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/16.ae758f43.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/17.b51d0d04.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/19.85d5c25e.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/20.45f25853.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/21.c178c591.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/22.3dfa983e.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/23.58c0e73a.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/24.1862bf96.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/25.d4ca4f91.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/26.a9d31514.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/27.678360d8.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/28.01bbdb4a.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/3.3d08d86c.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/4.4c193c95.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/5.dea68fdd.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/6.6d8c3d51.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/7.9617083c.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/8.53a1b2bd.js"><link rel="prefetch" href="/edu-dis-labs/assets/js/9.1882ecda.js">
<link rel="stylesheet" href="/edu-dis-labs/assets/css/0.styles.683d4db1.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/edu-dis-labs/" class="home-link router-link-active"><!----> <span class="site-name">Xpertise</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/edu-dis-labs/" class="nav-link">
Початок
</a></div> <a href="http://139.162.162.130:3000/hasslesstech/edu-dis-labs" target="_blank" rel="noopener noreferrer" class="repo-link">
Gitea
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/edu-dis-labs/" class="nav-link">
Початок
</a></div> <a href="http://139.162.162.130:3000/hasslesstech/edu-dis-labs" target="_blank" rel="noopener noreferrer" class="repo-link">
Gitea
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><a href="/edu-dis-labs/intro/" class="sidebar-link">Вступ</a></li><li><section class="sidebar-group collapsable depth-0"><a href="/edu-dis-labs/requirements/" class="sidebar-heading clickable"><span>Розроблення вимог до системи</span> <span class="arrow right"></span></a> <!----></section></li><li><a href="/edu-dis-labs/use-cases/" class="sidebar-link">Розроблення вимог до функціональности системи</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#загальна-схема" class="sidebar-link">Загальна схема</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#схеми-використання-для-окремих-діячів" class="sidebar-link">Схеми використання для окремих діячів</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#сценаріі-використання" class="sidebar-link">Сценарії використання</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#для-гостя" class="sidebar-link">Для гостя</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/use-cases/#для-зареєстрованого-користувача" class="sidebar-link">Для зареєстрованого користувача</a></li></ul></li></ul></li><li><a href="/edu-dis-labs/design/" class="sidebar-link">Проєктування архітектури системи</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/edu-dis-labs/design/#be-модель" class="sidebar-link">BE модель</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/design/#er-модель" class="sidebar-link">ER-модель</a></li><li class="sidebar-sub-header"><a href="/edu-dis-labs/design/#реляціина-схема" class="sidebar-link">Реляційна схема</a></li></ul></li><li><a href="/edu-dis-labs/software/" class="sidebar-link">Реалізація інформаційного та програмного забезпечення</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/edu-dis-labs/software/#sql-скрипт-для-створення-та-початкового-наповнення-бази-даних" class="sidebar-link">SQL-скрипт для створення та початкового наповнення бази даних</a></li></ul></li><li><a href="/edu-dis-labs/test/" class="sidebar-link">Тестування працездатності системи</a></li><li><a href="/edu-dis-labs/conclusion/" aria-current="page" class="active sidebar-link">Висновки</a></li><li><a href="/edu-dis-labs/api/" class="sidebar-link">API</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="висновки"><a href="#висновки" class="header-anchor">#</a> Висновки</h1> <p>У висновках наводять оцінку отриманих результатів, можливі галузі його використання. Висновки повинні містити в собі коротку узагальнену оцінку результатів розробки, у
тому числі і з погляду на їх технічно-економічну ефективність. Необхідно порівняти
отримані результати усіх характеристик об’єкта проєктування із завданням і з основними показниками сучасних аналогічних об’єктів.</p> <p>Необхідно вказати яке нове технічне рішення покладене в основу проєкту і у чому її
переваги, що нового було запропоновано самим студентом.</p> <p>На базі отриманих висновків можуть надаватися рекомендації по використанню розробки. Вони повинні
мати конкретний характер і бути цілком підтверджені проєктом.</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Останнє оновлення:</span> <span class="time">8/30/2021, 5:54:57 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/edu-dis-labs/test/" class="prev">
Тестування працездатності системи
</a></span> <span class="next"><a href="/edu-dis-labs/api/">
API
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/edu-dis-labs/assets/js/app.ef1e786b.js" defer></script><script src="/edu-dis-labs/assets/js/2.1dcc2d74.js" defer></script><script src="/edu-dis-labs/assets/js/18.51ffb2cf.js" defer></script>
</body>
</html>
-36
View File
File diff suppressed because one or more lines are too long
+2
View File
@@ -0,0 +1,2 @@
css
dist
+39
View File
@@ -0,0 +1,39 @@
<template>
<details><summary>{{title}}</summary>{{content}} </details>
</template>
<script>
export default {
name: 'Details',
props: {
title: {
type: String,
default: "title"
},
content: {
type: String,
default: "title"
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="styl">
details {
border-radius: 3px;
background: #EEE;
}
details summary {
font-size: 17px;
vertical-align: top;
background: #333;
color: #FFF;
border-radius: 3px;
/* padding: 5px 10px; */
padding: 5px 0px;
outline: none;
font-weight: bold;
}
</style>
+324
View File
@@ -0,0 +1,324 @@
<template>
<!--container-->
<section class="container">
<!-- transition -->
<transition :duration="{ enter: 500, leave: 300 }" enter-active-class="animated zoomIn" leave-active-class="animated zoomOut" mode="out-in">
<!--questionContainer-->
<div class="questionContainer" v-if="questionIndex<quiz.questions.length" v-bind:key="questionIndex">
<header>
<div class="shell">
<div class="bar" :style="{width: questionIndex/quiz.questions.length*100 + '%' }">
<span>{{(questionIndex/quiz.questions.length)*100}}%</span>
</div>
</div>
</header>
<!--/progress-->
<!-- questionTitle -->
<h2 class="titleContainer title">{{ quiz.questions[questionIndex] && quiz.questions[questionIndex].text }}</h2>
<!-- /questionTitle -->
<!-- quizOptions -->
<div class="optionContainer" v-if="quiz.questions[questionIndex]">
<div class="option" v-for="(response, index) in quiz.questions[questionIndex].responses" @click="selectOption(index)" :class="{ 'is-selected': userResponses[questionIndex] == index}" :key="index">
{{ index | charIndex }}. {{ response.text || "Mpthasdng"}}
</div>
</div>
<!--quizFooter: navigation and progress-->
<footer class="questionFooter">
<!--pagination-->
<nav class="pagination" role="navigation" aria-label="pagination">
<!-- back button -->
<a class="button" v-on:click="prev();" :disabled="questionIndex < 1">
Back
</a>
<!-- next button -->
<a class="button" :class="(userResponses[questionIndex]==null)?'':'is-active'" v-on:click="next();" :disabled="questionIndex>=quiz.questions.length">
{{ (userResponses[questionIndex]==null)?'Skip':'Next' }}
</a>
</nav>
<!--/pagination-->
</footer>
<!--/quizFooter-->
</div>
<!--/questionBox-->
<!--quizCompletedResult-->
<div v-if="questionIndex >= quiz.questions.length" v-bind:key="questionIndex" class="quizCompleted has-text-centered">
<!-- quizCompletedIcon: Achievement Icon -->
<span class="icon">
<i class="fa" :class="score() > 3 ?'fa-check-circle-o is-active':'fa-times-circle'"></i>
</span>
<!--resultTitleBlock-->
<h2 class="title">
You did {{ (score() / quiz.questions.length > 0.7 ?'an amazing':(score() / quiz.questions.length < 0.4 ?'a poor':'a good')) }} job!
</h2>
<p class="subtitle">
Total score: {{ score() }} / {{ quiz.questions.length }}
</p>
<br>
<a class="button" @click="restart()">restart <i class="fa fa-refresh"></i></a>
<!--/resultTitleBlock-->
</div>
</transition>
<!--/quizCompetedResult-->
</section>
<!--/container-->
</template>
<script>
import * as quizzes from '../quizzes'
import Vue from 'vue';
export default {
name: 'Quiz',
props: {
quizNum: Number
},
data() {
let quizData
switch (this.quizNum) {
case 1:
quizData = quizzes.quiz1
break
case 2:
quizData = quizzes.quiz2
break
default:
quizData = quizzes.quiz1
break
}
const userResponseSkelaton = Array(quizData.questions.length).fill(null);
return {
quiz: quizData,
questionIndex: 0,
userResponses: userResponseSkelaton,
isActive: false
}
},
filters: {
charIndex: function(i) {
return String.fromCharCode(97 + i);
}
},
methods: {
restart: function(){
this.questionIndex=0;
this.userResponses=Array(this.quiz.questions.length).fill(null);
},
selectOption: function(index) {
this.$set(this.userResponses, this.questionIndex, index);
},
next: function() {
if (this.questionIndex < this.quiz.questions.length)
this.questionIndex++;
},
prev: function() {
if (this.quiz.questions.length > 0) this.questionIndex--;
},
// Return "true" count in userResponses
score: function() {
var score = 0;
for (let i = 0; i < this.userResponses.length; i++) {
if (
typeof this.quiz.questions[i].responses[
this.userResponses[i]
] !== "undefined" &&
this.quiz.questions[i].responses[this.userResponses[i]].correct
) {
score = score + 1;
}
}
// calculate percentage
return score;
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
@import url("https://fonts.googleapis.com/css?family=Montserrat:400,400i,700");
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700");
.button {
transition: 0.3s;
}
.title, .subtitle {
font-family: Montserrat, sans-serif;
font-weight: normal;
}
.animated {
transition-duration: 0.15s;
}
.container {
margin: 0 0.5rem;
display: flex;
align-items: center;
justify-content: center;
}
.questionBox {
max-width: 30rem;
width: 30rem;
min-height: 30rem;
position: relative;
display: flex;
border-radius: 0.5rem;
overflow: hidden;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
}
.questionContainer header {
background-color: rgba(124, 32, 32, 0.025);
background: rgba(124, 32, 32, 0.025);
padding: 1.5rem;
text-align: center;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.questionContainer header h1 {
font-weight: bold;
margin-bottom: 1rem !important;
}
.progressContainer {
width: 60%;
margin: 0 auto;
}
.titleContainer {
text-align: center;
margin: 0 auto;
padding: 1.5rem;
}
.quizForm {
display: block;
white-space: normal;
height: 100%;
width: 100%;
}
.quizForm .quizFormContainer {
height: 100%;
margin: 15px 18px;
}
.quizForm .quizFormContainer .field-label {
text-align: left;
margin-bottom: 0.5rem;
}
.quizCompleted {
width: 100%;
padding: 1rem;
text-align: center;
}
.quizCompleted > .icon {
color: #f86c6b;
font-size: 5rem;
}
.quizCompleted > .icon .is-active {
color: #4dbd74;
}
.questionContainer {
white-space: normal;
height: 100%;
width: 100%;
}
.questionContainer .optionContainer {
margin-top: 12px;
flex-grow: 1;
}
.questionContainer .optionContainer .option {
border-radius: 290486px;
padding: 9px 18px;
margin: 0 18px;
margin-bottom: 12px;
transition: 0.3s;
cursor: pointer;
background-color: #73818f;
color: #f0f3f5;
border: transparent 1px solid;
}
.questionContainer .optionContainer .option.is-selected {
border-color: rgba(0, 0, 0, 0.25);
background-color: #834c9d;
}
.questionContainer .optionContainer .option:hover {
background-color: #B589D6;
}
.questionContainer .optionContainer .option:active {
transform: scaleX(0.9);
}
.questionContainer .questionFooter {
background: rgba(0, 0, 0, 0.025);
border-top: 1px solid rgba(0, 0, 0, 0.1);
width: 100%;
align-self: flex-end;
}
.questionContainer .questionFooter .pagination {
margin: 15px 25px;
}
.pagination {
display: flex;
justify-content: space-between;
}
.button {
padding: 0.5rem 1rem;
border: 1px solid rgba(0, 0, 0, 0.25);
border-radius: 5rem;
margin: 0 0.25rem;
transition: 0.3s;
}
.button:hover {
cursor: pointer;
background: #552586;
border-color: rgba(0, 0, 0, 0.25);
}
.button.is-active {
background: #834c9d;
color: white;
border-color: transparent;
}
.button.is-active:hover {
background: #0a2ffe;
}
@media screen and (min-width: 769px) {
.questionBox {
align-items: center;
justify-content: center;
}
.questionContainer {
display: flex;
flex-direction: column;
}
}
@media screen and (max-width: 768px) {
.sidebar {
height: auto !important;
border-radius: 6px 6px 0px 0px;
}
}
/** Custom Progress bar */
.shell {
height: 20px;
width: 250px;
border: 1px solid #73818f;
border-radius: 13px;
padding: 3px;
margin: 0 auto;
}
.bar {
background: linear-gradient(to right, #B589D6, #804FB3);
height: 20px;
width: 15px;
border-radius: 9px;
}
.bar span {
float: right;
padding: 4px 5px;
color: #f0f3f5;
font-size: 0.7em;
}
</style>
+10
View File
@@ -0,0 +1,10 @@
<script>
import "vue-good-table/dist/vue-good-table.css";
export default {
name: "Styles",
};
</script>
<style>
</style>
@@ -0,0 +1,56 @@
<template>
<div>
<vue-good-table
:columns="columns"
:rows="rows"
/>
</div>
</template>
<script>
import { VueGoodTable } from 'vue-good-table';
export default {
name: 'my-component',
// add to component
components: {
VueGoodTable,
},
data(){
return {
columns: [
{
label: 'Name',
field: 'name',
},
{
label: 'Age',
field: 'age',
type: 'number',
},
{
label: 'Created On',
field: 'createdAt',
type: 'date',
dateInputFormat: 'yyyy-mm-dd',
dateOutputFormat: 'MMM Do yy',
},
{
label: 'Percent',
field: 'score',
type: 'percentage',
},
],
rows: [
{ id:1, name:"John", age: 20, createdAt: '2011-10-31',score: 0.03343 },
{ id:2, name:"Jane", age: 24, createdAt: '2019-10-31', score: 0.03343 },
{ id:3, name:"Susan", age: 16, createdAt: '2011-10-30', score: 0.03343 },
{ id:4, name:"Chris", age: 55, createdAt: '2011-10-11', score: 0.03343 },
{ id:5, name:"Dan", age: 40, createdAt: '2011-10-21', score: 0.03343 },
{ id:6, name:"John", age: 20, createdAt: '2011-10-31', score: 0.03343 },
],
};
},
};
</script>
@@ -0,0 +1,35 @@
// .vuepress/components/sample-timeline.vue
<template>
<timeline timeline-theme="lightblue">
<timeline-title bg-color="#09FFAA">Prehistoric hunters cross over into Canada from Asia</timeline-title>
<timeline-item bg-color="#9dd8e0"> Leif Ericsson leads a Viking expedition to the New World</timeline-item>
<timeline-item bg-color="#9dFFe0">First Year 1B</timeline-item>
<timeline-item bg-color="#FFF000">Accepted Computer Engineering</timeline-item>
<timeline-item bg-color="#cFe8eF">The Iroquois Confederacy is formed</timeline-item>
<timeline-item bg-color="#97Aec8">John Cabot reaches Newfoundland (or perhaps Cape Breton)</timeline-item>
<timeline-item bg-color="#5744D4">Jacques Cartier first explores the St. Lawrence region</timeline-item>
<timeline-item bg-color="#0F4859">Second Year 2B</timeline-item>
<timeline-item bg-color="#094341">Samuel de Champlain establishes a French colony at Québec City</timeline-item>
<timeline-item bg-color="#825F03">Hudsons Bay Company is formed</timeline-item>
<timeline-item bg-color="#954F08">Expulsion of the Acadians</timeline-item>
<timeline-item bg-color="#A71490">Battle of the Plains of Abraham: Québec City is captured</timeline-item>
<timeline-item bg-color="#C084A9">New France is formally ceded to Britain; Pontiac Rebellion erupts</timeline-item>
<timeline-item bg-color="#7B71C2">Loyalist refugees begin arriving after the American Revolution</timeline-item>
<timeline-item bg-color="#2348B1">War of 1812: U.S. invades Canada</timeline-item>
<timeline-item bg-color="#915F15">Rebellions against British rule in Upper and Lower Canada</timeline-item>
<timeline-item bg-color="#0909FA"> Responsible government is won, first in Nova Scotia, then in Canada</timeline-item>
</timeline>
</template>
<script>
import { Timeline, TimelineItem, TimelineTitle } from 'vue-cute-timeline'
export default {
name: 'sample-timeline',
components: {
Timeline,
TimelineItem,
TimelineTitle,
}
}
</script>
+211
View File
@@ -0,0 +1,211 @@
// .vuepress/config.js
// missing markdownItAds boostnote admonitions
const fs = require('fs')
const path = require('path')
const util = require('util')
module.exports = {
base: '/vuepress-theme-cool-starter/',
theme: 'cool',
//dest: 'dist',
head: [
['link', { rel: 'icon', href: '/faviconCustom.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'}]
],
plugins: [
'@vuepress/last-updated',
'@vuepress/back-to-top',
'@vuepress/pwa'
],
themeConfig: {
// logo: './myAvatar.png',
sidebar: genSideBar('.'),
sidebarDepth: 2,
displayAllHeaders: true, // Default: false themeConfig: {
nav: genNavBarList(),
lastUpdated: 'Last Updated', // string | boolean
// Assumes GitHub. Can also be a full GitLab url.
repo: 'FriendlyUser/vuepress-theme-cool-starter',
// Customising the header label
// Defaults to "GitHub"/"GitLab"/"Bitbucket" depending on `themeConfig.repo`
repoLabel: 'Contribute!',
// Optional options for generating "Edit this page" link
// if your docs are in a different repo from your main project:
//docsRepo: 'FriendlyUser/markdown-notes-template',
// 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: 'gh-pages',
// defaults to false, set to true to enable
editLinks: true,
// custom text for edit link. Defaults to "Edit this page"
editLinkText: 'Help us improve this page!'
},
title: 'Vuepress Theme Cool Starter',
description: 'Example project to get started with the vuepress-theme-cool',
configureWebpack: {
resolve: {
alias: {
'@alias': '../img'
}
}
},
plugins: {
'@vuepress/pwa': { serviceWorker: true,
updatePopup: {
message: "New content is available.",
buttonText: "Refresh"
}
}
},
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'))
md.use(require('markdown-it-task-lists'))
}
}
}
// Helper functions
function fromDir(startPath,filter,callback){
//console.log('Starting from dir '+startPath+'/');
if (!fs.existsSync(startPath)){
console.log("no dir ",startPath);
return;
}
var files=fs.readdirSync(startPath);
for(var i=0;i<files.length;i++){
var filename=path.join(startPath,files[i]);
var stat = fs.lstatSync(filename);
if (stat.isDirectory()){
fromDir(filename,filter,callback); //recurse
}
else if (filter.test(filename)) callback(filename);
};
};
function getDirectories(path) {
return fs.readdirSync(path).filter(function (file) {
if (file != '.vuepress') {
return fs.statSync(path+'/'+file).isDirectory();
}
});
}
function getFilesInDir(directoryName) {
var files = []
// sidebar settings
const relPath = path.join('docs', directoryName)
fromDir(relPath,/\.md$/,function(filename){
console.log('-- found: ',filename);
files.push(filename)
});
return files
}
// Base file names with removed file extensions
function getFilesInDirBase(directoryName) {
var files = []
// sidebar settings
const relPath = path.join('docs', directoryName)
fromDir(relPath,/\.md$/,function(filename){
let baseName = path.basename(filename)
// this it will fail on files without extension, see https://stackoverflow.com/questions/4250364/how-to-trim-a-file-extension-from-a-string-in-javascript
baseName = baseName.split('.').slice(0, -1).join('.')
// Add README as '', and everything else as standard
if (baseName.toUpperCase() == 'README') {
files.push('Home')
}
else {
files.push(baseName)
}
});
return files
}
// pass in the folder relative to the folder docs
function genSideBarConfigFolder (titleName, directoryName) {
const rawFilePaths = getFilesInDirBase(directoryName)
return [
{
title: titleName,
collapsable: true,
children: rawFilePaths
}
]
}
function genSideBar (directoryName) {
const dirNames = getFilesInDirBase(directoryName)
let markdownArray = []
for (var i = 0; i < dirNames.length; i++) {
let stringValue = dirNames[i].toString()
if(stringValue === 'Home' || stringValue === '') {
markdownArray.push('')
} else {
markdownArray.push(stringValue)
}
}
const sideBarConfig = {
'/': markdownArray
}
console.log(sideBarConfig)
return sideBarConfig
}
// doesn't work, fix later, can't figure out how to generate { text: link:} recursively? Or maybe have another function that returns text: link
function genNavBarList() {
let dirNames = []
// navbar settings
dirNames = getFilesInDirBase('.')
let navBarNames = [];
var numOfDirs = dirNames.length;
for (var i = 0; i < numOfDirs; i++) {
let stringValue = dirNames[i].toString()
// convert - to capitialization
stringValue = transformToUpperCase(stringValue)
let linkValue = '/'
if (stringValue !== 'Home') {
linkValue = `/${stringValue}/`
}
// @todo change loop to iterate for nested directories
if (true) {
navBarNames.push(genNavBarItem(stringValue,linkValue))
}
// last entry
else {
//navBarNames = navBarNames + "{ text : \'" + stringValue + "\', " + "link: " + "\'/" + stringValue + "/\'}, \n";
}
}
return navBarNames
}
function genNavBarItem(textValue, linkValue) {
return {
text: textValue,
link: linkValue
}
}
function transformToUpperCase(str) {
let upperString = str
upperString = upperString.replace(/-/g, ' ');
upperString = upperString.split(" ");
for (var i = 0, x = upperString.length; i < x; i++) {
upperString[i] = upperString[i][0].toUpperCase() + upperString[i].substr(1);
}
return upperString.join(" ");
}
+122
View File
@@ -0,0 +1,122 @@
// .vuepress/config.js
module.exports = {
plugins: [
'@vuepress/back-to-top',
'@vuepress/pwa',
{
serviceWorker: true,
updatePopup: true
},
,
['container', {
type: 'vue',
before: '<pre class="vue-container"><code>',
after: '</code></pre>'
}]
],
port: 3030,
base: '/edu-dis-labs/',
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/"
},
{
title: 'Розроблення вимог до системи',
path:"/requirements/",
children: [
"/requirements/state-of-the-art",
"/requirements/stakeholders-needs"
]
},
{
title: 'Розроблення вимог до функціональности системи',
path:"/use-cases/"
},
{
title: 'Проєктування архітектури системи',
path:"/design/"
},
{
title: 'Реалізація інформаційного та програмного забезпечення',
path:"/software/"
},
{
title: 'Тестування працездатності системи',
path:"/test/"
},
{
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: 'http://139.162.162.130:3000/hasslesstech/edu-dis-labs',
// Customising the header label
// Defaults to "GitHub"/"GitLab"/"Bitbucket" depending on `themeConfig.repo`
repoLabel: 'Gitea',
// 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: 'Expertise',
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'))
}
}
}
+30
View File
@@ -0,0 +1,30 @@
import Vuex from 'vuex'
import VueChartkick from 'vue-chartkick'
import Chart from 'chart.js'
import VueGoodTablePlugin from 'vue-good-table';
// The styles are important in another component because of the way webpack is configured
// import 'vue-good-table/dist/vue-good-table.css'
export default ({ Vue, options, router, siteData }) => {
Vue.use(Vuex)
Vue.use(VueChartkick, {adapter: Chart})
Vue.use(VueGoodTablePlugin)
Vue.mixin({
computed: {
$title() {
const page = this.$page
const siteTitle = this.$siteTitle
const selfTitle = page.frontmatter.home ? null : (
page.frontmatter.title || // explicit title
(page.title ? page.title.replace(/[_`]/g, '') : '') // inferred title
)
return siteTitle
? selfTitle
? (selfTitle + ' | ' + siteTitle)
: siteTitle
: selfTitle || 'VuePress'
}
}
})
}

Before

Width:  |  Height:  |  Size: 278 KiB

After

Width:  |  Height:  |  Size: 278 KiB

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 232 KiB

Before

Width:  |  Height:  |  Size: 236 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 218 KiB

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 246 KiB

Before

Width:  |  Height:  |  Size: 273 KiB

After

Width:  |  Height:  |  Size: 273 KiB

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 281 KiB

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 247 KiB

Before

Width:  |  Height:  |  Size: 262 KiB

After

Width:  |  Height:  |  Size: 262 KiB

Before

Width:  |  Height:  |  Size: 266 KiB

After

Width:  |  Height:  |  Size: 266 KiB

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Before

Width:  |  Height:  |  Size: 266 KiB

After

Width:  |  Height:  |  Size: 266 KiB

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 214 KiB

After

Width:  |  Height:  |  Size: 214 KiB

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Before

Width:  |  Height:  |  Size: 314 KiB

After

Width:  |  Height:  |  Size: 314 KiB

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 243 KiB

Before

Width:  |  Height:  |  Size: 274 KiB

After

Width:  |  Height:  |  Size: 274 KiB

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

+7
View File
@@ -0,0 +1,7 @@
import quiz1 from './quiz1.json'
import quiz2 from './quiz2.json'
export {
quiz1,
quiz2
}
+185
View File
@@ -0,0 +1,185 @@
{
"user": "Dave",
"questions": [
{
"text": "What is the full form of HTTP?",
"responses": [
{
"text": "Hyper text transfer package"
},
{
"text": "Hyper text transfer protocol",
"correct": true
},
{
"text": "Hyphenation text test program"
},
{
"text": "None of the above"
}
]
},
{
"text": "HTML document start and end with which tag pairs?",
"responses": [
{
"text": "HTML",
"correct": true
},
{
"text": "WEB"
},
{
"text": "HEAD"
},
{
"text": "BODY"
}
]
},
{
"text": "Which tag is used to create body text in HTML?",
"responses": [
{
"text": "HEAD"
},
{
"text": "BODY",
"correct": true
},
{
"text": "TITLE"
},
{
"text": "TEXT"
}
]
},
{
"text": "Outlook Express is _________",
"responses": [
{
"text": "E-Mail Client",
"correct": true
},
{
"text": "Browser"
},
{
"text": "Search Engine"
},
{
"text": "None of the above"
}
]
},
{
"text": "What is a search engine?",
"responses": [
{
"text": "A hardware component "
},
{
"text": "A machinery engine that search data"
},
{
"text": "A web site that searches anything",
"correct": true
},
{
"text": "A program that searches engines"
}
]
},
{
"text": "What does the .com domain represents?",
"responses": [
{
"text": "Network"
},
{
"text": "Education"
},
{
"text": "Commercial",
"correct": true
},
{
"text": "None of the above"
}
]
},
{
"text": "In Satellite based communication, VSAT stands for? ",
"responses": [
{
"text": " Very Small Aperture Terminal",
"correct": true
},
{
"text": "Varying Size Aperture Terminal "
},
{
"text": "Very Small Analog Terminal"
},
{
"text": "None of the above"
}
]
},
{
"text": "What is the full form of TCP/IP? ",
"responses": [
{
"text": "Telephone call protocol / international protocol"
},
{
"text": "Transmission control protocol / internet protocol",
"correct": true
},
{
"text": "Transport control protocol / internet protocol "
},
{
"text": "None of the above"
}
]
},
{
"text": "What is the full form of HTML?",
"responses": [
{
"text": "Hyper text marking language"
},
{
"text": "Hyphenation text markup language "
},
{
"text": "Hyper text markup language",
"correct": true
},
{
"text": "Hyphenation test marking language"
}
]
},
{
"text": "\"Yahoo\", \"Infoseek\" and \"Lycos\" are _________?",
"responses": [
{
"text": "Browsers "
},
{
"text": "Search Engines",
"correct": true
},
{
"text": "News Group"
},
{
"text": "None of the above"
}
]
}
]
}
+41
View File
@@ -0,0 +1,41 @@
{
"user": "Dave",
"questions": [
{
"text": "Who is the Batman",
"responses": [
{
"text": "Laughing Bat"
},
{
"text": "Bruce Wayne",
"correct": true
},
{
"text": "Dick Grayson"
},
{
"text": "None of the above"
}
]
},
{
"text": "\"Yahoo\", \"Infoseek\" and \"Lycos\" are _________?",
"responses": [
{
"text": "Browsers "
},
{
"text": "Search Engines",
"correct": true
},
{
"text": "News Group"
},
{
"text": "None of the above"
}
]
}
]
}
+179
View File
@@ -0,0 +1,179 @@
@import url(https://fonts.googleapis.com/icon?family=Material+Icons)
.admonition.note,
.admonition.hint,
.admonition.danger,
.admonition.caution,
.admonition.error,
.admonition.attention {
box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 1px 5px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.2);
position: relative;
margin: 1.5625em 0;
padding: 0 1.2rem;
border-left: 0.4rem solid #448aff;
border-radius: 0.2rem;
overflow: auto;
}
html .admonition>:last-child {
margin-bottom: 1.2rem;
}
.admonition .admonition {
margin: 1em 0;
}
.admonition p {
margin-top: 0.5em;
}
.admonition.note>.admonition-title:before,
.admonition.hint>.admonition-title:before,
.admonition.danger>.admonition-title:before,
.admonition.caution>.admonition-title:before,
.admonition.error>.admonition-title:before,
.admonition.attention>.admonition-title:before {
position: absolute;
left: 1.2rem;
font-family: "Material Icons";
font-size: 24px;
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
}
.admonition.note>.admonition-title,
.admonition.hint>.admonition-title,
.admonition.danger>.admonition-title,
.admonition.caution>.admonition-title,
.admonition.error>.admonition-title,
.admonition.attention>.admonition-title {
margin: 0 -1.2rem;
padding: 0.8rem 1.2rem 0.8rem 4rem;
border-bottom: 0.1rem solid rgba(68,138,255,0.1);
background-color: rgba(68,138,255,0.1);
font-weight: 700;
}
.admonition>.admonition-title:last-child {
margin-bottom: 0;
}
.admonition.note {
border-left-color: #448aff;
}
.admonition.note>.admonition-title {
border-bottom-color: 0.1rem solid rgba(68,138,255,0.1);
background-color: rgba(68,138,255,0.1);
}
.admonition.note>.admonition-title:before {
color: #448aff;
content: "note";
}
.admonition.hint {
border-left-color: #00bfa5;
}
.admonition.hint>.admonition-title {
border-bottom-color: 0.1rem solid rgba(0,191,165,0.1);
background-color: rgba(0,191,165,0.1);
}
.admonition.hint>.admonition-title:before {
color: #00bfa5;
content: "info";
}
.admonition.danger {
border-left-color: #ff1744;
}
.admonition.danger>.admonition-title {
border-bottom-color: 0.1rem solid rgba(255,23,68,0.1);
background-color: rgba(255,23,68,0.1);
}
.admonition.danger>.admonition-title:before {
color: #ff1744;
content: "block";
}
.admonition.caution {
border-left-color: #ff9100;
}
.admonition.caution>.admonition-title {
border-bottom-color: 0.1rem solid rgba(255,145,0,0.1);
background-color: rgba(255,145,0,0.1);
}
.admonition.caution>.admonition-title:before {
color: #ff9100;
content: "warning";
}
.admonition.error {
border-left-color: #ff1744;
}
.admonition.error>.admonition-title {
border-bottom-color: 0.1rem solid rgba(255,23,68,0.1);
background-color: rgba(255,23,68,0.1);
}
.admonition.error>.admonition-title:before {
color: #ff1744;
content: "error";
}
.admonition.attention {
border-left-color: #64dd17;
}
.admonition.attention>.admonition-title {
border-bottom-color: 0.1rem solid rgba(100,221,23,0.1);
background-color: rgba(100,221,23,0.1);
}
.admonition.attention>.admonition-title:before {
color: #64dd17;
content: "priority_high";
}
body {
font-size 16px;
text-align: justify;
}
.theme-default-content:not(.custom) {
max-width: 950px;
margin: 0 auto;
padding: 2rem 2.5rem;
}
.sidebar-heading {
color: #2c3e50;
transition: color 0.15s ease;
cursor: pointer;
font-size: 1em !important;
font-weight: 500 !important;
padding: 0.35rem 1.5rem 0.35rem 1.25rem;
width: 100%;
box-sizing: border-box;
margin: 0;
border-left: 0.25rem solid transparent;
}
+89
View File
@@ -0,0 +1,89 @@
// showing default values
$accentColor = #0984e3
$textColor = #2c3e50
$borderColor = #eaecef
$codeBgColor = #282c34
$admonition
box-shadow 0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)
position relative
margin 1.5625em 0
padding 0 1.2rem
border-left .4rem solid #448aff
border-radius .2rem
overflow auto
html .admonition>:last-child
margin-bottom 1.2rem
.admonition .admonition
margin 1em 0
.admonition p
margin-top: 0.5em
$admonition-icon
position absolute
left 1.2rem
font-family: "Material Icons"
font-weight: normal;
font-style: normal;
font-size: 24px
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
$admonition-title
margin 0 -1.2rem
padding .8rem 1.2rem .8rem 4rem
border-bottom .1rem solid rgba(68,138,255,.1)
background-color rgba(68,138,255,.1)
font-weight 700
.admonition>.admonition-title:last-child
margin-bottom 0
admonition_types = {
note: {color: #0288D1, icon: "edit_sharp"},
abstract: {color: #c5d845, icon: "speaker_notes_filled"},
info: {color: #19d8f5, icon: "info"}
tip: {color: #00bfa5, icon: "code"},
success: {color: #00c853, icon: "check_circle_outline"},
question: {color: #64dd17, icon: "help"},
warning: {color: #ff9100, icon: "warning"},
failure: {color: #ff5252, icon: "close"},
danger: {color: #c2185b, icon: "flash_on"},
bug: {color: #e040fb, icon: "bug_report"},
example: {color: #651fff, icon: "format_list_numbered_rtl"},
quote: {color: #9e9e9e, icon: "format_quote"}
}
for name, val in admonition_types
.admonition.{name}
@extend $admonition
border-left-color: val[color]
.admonition.{name}>.admonition-title
@extend $admonition-title
border-bottom-color: .1rem solid rgba(val[color], 0.2)
background-color: rgba(val[color], 0.2)
.admonition.{name}>.admonition-title:before
@extend $admonition-icon
color: val[color]
content: val[icon]
+38
View File
@@ -0,0 +1,38 @@
---
home: true
actionText: Розпочати →
actionLink: /intro/
footer: "ECL 2.0 Licensed | Copyright © 2024 [Your Name]"
---
**Виконали:**
*студенти 2-го курсу, групи ІО-23:*
*Олег ШМУЛЯР [shmuliar1@ukr.net, [@dmytrofiot23](https://t.me/dmytrofiot23)]*
*Андрій БОДНАР [bodnarandrew123@gmail.com, [@andrux4](https://t.me/andrux4)]*
*Андрій ШВЕД [andreyfrog26@gmail.com, [@Rhinemann](https://t.me/Rhinemann)]*
*Євгеній ГОЛОВАТЕНКО [ievgeniigol@gmail.com, [@yevholova](https://t.me/yevholova)]*
*Вікторія ВОДЯНА [vodyanayaviktoria@gmail.com, [@victoriavodyana](https://t.me/victoriavodyana)]*
*Михайло КОРБУТ [korbutmykhailo@gmail.com, [@misha1tigr](https://t.me/misha1tigr)]*
*Олександр ГУРАНЕЦЬ [bacant150@gmail.com, [@Bacant150](https://t.me/Bacant150)]*
**Керівник**
*доцент кафедри ОТ ФІОТ, к.т.н., доцент*<span padding-right:5em></span> **Андрій БОЛДАК**
[НТУУ "КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ імені ІГОРЯ СІКОРСЬКОГО](https://kpi.ua/)
[Факультет інформатики та обчислювальної техніки](https://fiot.kpi.ua/)
[Кафедра обчислювальної техніки](https://comsys.kpi.ua/)
Київ
View File
+12
View File
@@ -0,0 +1,12 @@
# Висновки
У висновках наводять оцінку отриманих результатів, можливі галузі його використання. Висновки повинні містити в собі коротку узагальнену оцінку результатів розробки, у
тому числі і з погляду на їх технічно-економічну ефективність. Необхідно порівняти
отримані результати усіх характеристик об’єкта проєктування із завданням і з основними показниками сучасних аналогічних об’єктів.
Необхідно вказати яке нове технічне рішення покладене в основу проєкту і у чому її
переваги, що нового було запропоновано самим студентом.
На базі отриманих висновків можуть надаватися рекомендації по використанню розробки. Вони повинні
мати конкретний характер і бути цілком підтверджені проєктом.
+117
View File
@@ -0,0 +1,117 @@
# Проєктування бази даних
## BE модель
<center style="
border-radius:4px;
border: 1px solid #cfd7e6;
box-shadow: 0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025);
padding: 1em;"
>
@startuml
entity Account <<ENTITY>>
entity Account.username <<TEXT>>
entity Account.password <<TEXT>>
entity Survey <<ENTITY>>
entity Survey.name <<TEXT>>
entity Survey.duration <<TEXT>>
entity Survey.isPaused <<BOOLEAN>>
entity Survey.isNamed <<BOOLEAN>>
entity Question <<ENTITY>>
entity Question.text <<TEXT>>
entity Responce <<ENTITY>>
entity Responce.value <<TEXT>>
entity Link <<ENTITY>>
entity Link.usageLimit <<INT>>
entity Link.responceLimit <<INT>>
entity Link.uses <<INT>>
entity Link.responces <<INT>>
entity Link.path <<TEXT>>
Account.username --* Account
Account.password --* Account
Survey.name --* Survey
Survey.duration --* Survey
Survey.isPaused --* Survey
Survey.isNamed --* Survey
Link.usageLimit -u-* Link
Link.responceLimit -u-* Link
Link.uses --* Link
Link.responces --* Link
Link.path -u-* Link
Responce.value -u-* Responce
Question.text -u-* Question
Account "1,1" -- "0,*" Survey
Survey "1,1" -- "0,*" Question
Question "1,1" -r- "0,*" Responce
Account "0,1" -r- "0,*" Responce
Link "0,*" -- "1,1" Survey
@enduml
</center>
## ER-модель
<center style="
border-radius:4px;
border: 1px solid #cfd7e6;
box-shadow: 0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025);
padding: 1em;"
>
@startuml
entity Account <<ENTITY>> {
id:INT
username:CHAR(64)
password:CHAR(256)
}
entity Responce <<ENTITY>> {
id:INT
value:CHAR(16384)
}
entity Question <<ENTITY>> {
id:INT
text:CHAR(256)
}
entity Survey <<ENTITY>> {
id:INT
name:CHAR(256)
duration:CHAR(256)
isPaused:BOOLEAN
isNamed:BOOLEAN
}
entity Link <<ENTITY>> {
id:INT
uses:INT
responces:INT
usageLimit:INT
responceLimit:INT
path:CHAR(32)
}
Responce "0,*" --> "1,1" Question
Question "0,*" --> "1,1" Survey
Survey "0,*" --> "1,1" Account
Link "0,*" --> "1,1" Survey
Responce "0,*" --> "0,1" Account
@enduml
</center>
+12
View File
@@ -0,0 +1,12 @@
# Вступ
У вступі описується мета роботи і розглядається поставлене завдання з позиції її
актуальності, значення її розв’язання для тієї предметної області, до якої відноситься
тема бакалаврського проєкту.
Коротко характеризується сучасний рівень розв’язання
даного завдання і взаємозв’язок з іншими проєктами по цій тематиці.
Наводяться
основні технічні характеристики розробки й очікуваний технічно-економічний ефект
від її реалізації.
+4
View File
@@ -0,0 +1,4 @@
# Розроблення загальних вимог до системи
- [Аналіз предметної області](state-of-the-art.md)
- [Запити зацікавлених осіб](stakeholders-needs.md)
+281
View File
@@ -0,0 +1,281 @@
# Запити зацікавлених осіб
## Вступ
У даному розділі розкриваються ключові терміни та процеси, пов'язані з розробкою високоякісного програмного забезпечення. Ці матеріали надаються для зацікавлених користувачів, які прагнуть отримати глибше розуміння суті проекту та його основних завдань.
### Мета
Метою є формування стратегії подальшого розвитку проекту на основі аналізу запитів цільової аудиторії, функціональних потреб та досягнення оптимальної продуктивності для створення якісного програмного забезпечення.
### Контекст
Даний документ містить теоретичні відомості, визначення та загальний огляд функціональності, які допоможуть розробникам розуміти напрямок роботи над програмним продуктом, а клієнтам - зрозуміти очікування від нього.
### Основні визначення та скорочення
[Зацікавлені сторони (особи)](https://uk.wikipedia.org/wiki/Зацікавлені_сторони) - фізичні та юридичні особи, які мають легітимний інтерес у діяльності організації, тобто певною мірою залежать від неї або можуть впливати на її діяльність.
[FURPS](https://en.wikipedia.org/wiki/FURPS) - абревіатура, що репрезентує модель класифікації якостей програмного забезпечення (функціональні і нефункціональні вимоги):
- *Functionality* (Функціональність) - можливості (розмір та загальний набір функцій), повторне використання (сумісність, інтероперабельність, портативність), безпека (безпека та можливість експлуатації);
- *Usability* (Використовуваність) (UX) - людський фактор, естетика, узгодженість, документація, швидкість реагування;
- *Reliability* (Надійність) - доступність (частота відмов (надійність/довговічність/стійкість), ступінь і тривалість відмов (відновлюваність/живучість)), передбачуваність (стабільність), точність (частота/серйозність помилок);
- *Perfomance* (Продуктивність) - швидкість, ефективність, споживання ресурсів (живлення, оперативна пам'ять, кеш і т.д.), пропускна здатність, ємність, масштабованість;
- *Supportability* (Підтримка) (ремонтопридатність, підтримуваність, стійкість, швидкість відновлення) - тестуємість, гнучкість (модифікованість, конфігурованість, адаптованість, розширюваність, модульність), встановлюваність, локалізованість.
[API](https://uk.wikipedia.org/wiki/Прикладний_програмний_інтерфейс) (з англ. application programming interface “прикладни́й програ́мний інтерфе́йс”) - підхід до архітектури мережевих протоколів, які надають доступ до інформаційних ресурсів.
[REST](https://uk.wikipedia.org/wiki/REST) (з англ. Representational State Transfer, «передача репрезентативного стану») — підхід до архітектури мережевих протоколів, які надають доступ до інформаційних ресурсів.
[MVC](https://en.wikipedia.org/wiki/Modelviewcontroller#Components) (з англ. Model-view-controller) - це патерн проектування програмного забезпечення, який зазвичай використовується для розробки користувацьких інтерфейсів, що розділяє відповідну програмну логіку на три взаємопов'язані елементи. Це робиться для того, щоб відокремити внутрішнє представлення інформації від способів її представлення користувачеві та отримання від нього.
[SOLID](https://en.wikipedia.org/wiki/SOLID) - це мнемонічна абревіатура для п'яти принципів проектування, призначених для того, щоб зробити об'єктно-орієнтовані проекти більш зрозумілими, гнучкими та зручними в обслуговуванні.
- *Принцип єдиної відповідальності*: "Ніколи не повинно бути більше однієї причини для зміни класу”. Іншими словами, кожен клас повинен мати лише одну відповідальність.
- *Принцип відкритості-закритості*: "Сутності програмного забезпечення ... повинні бути відкритими для розширення, але закритими для модифікації.
- *Принцип заміщення Ліскова*: "Функції, які використовують вказівники або посилання на базові класи, повинні мати можливість використовувати об'єкти похідних класів, не знаючи про це.
- *Принцип розділення інтерфейсів*: "Клієнти не повинні бути змушені залежати від інтерфейсів, якими вони не користуються".
- *Принцип інверсії залежності*: "Покладайтеся на абстракції, а не на конкретику".
[DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)(з англ. dont repeat yourself - “не повторюйся”) - це принцип розробки програмного забезпечення, спрямований на зменшення повторення інформації, яка може змінитися, заміну її абстракціями, які менш схильні до змін, або використання нормалізації даних, яка дозволяє уникнути надмірності в першу чергу.
[ORM](https://uk.wikipedia.org/wiki/Об%27єктно-реляційне_відображення) - (англ. Object-relational mapping, Об'єктно-реляційна проекція) — технологія програмування, яка зв'язує бази даних з концепціями об'єктно-орієнтованих мов програмування, створюючи «віртуальну об'єктну базу даних».
### Посилання
1. [https://uk.wikipedia.org/wiki/Зацікавлені_сторони](https://uk.wikipedia.org/wiki/Зацікавлені_сторони)
2. [https://en.wikipedia.org/wiki/FURPS](https://en.wikipedia.org/wiki/FURPS)
3. [https://uk.wikipedia.org/wiki/Прикладний_програмний_інтерфейс](https://uk.wikipedia.org/wiki/Прикладний_програмний_інтерфейс)
4. [https://uk.wikipedia.org/wiki/REST](https://uk.wikipedia.org/wiki/REST)
5. [https://en.wikipedia.org/wiki/Modelviewcontroller#Components](https://en.wikipedia.org/wiki/Modelviewcontroller#Components)
6. [https://en.wikipedia.org/wiki/SOLID](https://en.wikipedia.org/wiki/SOLID)
7. [https://en.wikipedia.org/wiki/Don%27t_repeat_yourself](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)
8. [https://uk.wikipedia.org/wiki/Об%27єктно-реляційне_відображення](https://uk.wikipedia.org/wiki/Об%27єктно-реляційне_відображення)
## Короткий зміст
- [Характеристика ділових процесів](#характеристика-ділових-процесів)
- [Короткий огляд продукту](#короткии-огляд-продукту)
- [Функціональність](#функціональність)
- [Практичність](#практичність)
- [Надійність](#надіиність)
- [Продуктивність](#продуктивність)
- [Експлуатаційна придатність](#експлуатаціина-придатність)
## Характеристика ділових процесів
| ID | ACCOUNT.CREATE |
|:-----------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Створити обліковий запис |
| Учасники | Користувач, система |
| Передумови | Відсутні |
| Результат | Обліковий запис користувача |
| Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму<br>001.002 Ідентичний псевдонім вже існує |
| Основний сценарій | 1. Користувач вводить бажаний псевдонім у поле вводу псевдоніму<br>2. Користувач вводить пароль у поле вводу паролю<br>3. Користувач натискає на кнопку створення облікового запису<br>4. Система створює обліковий запис користувача (можливі 001.001, 001.002) |
| ID | ACCOUNT.DELETE |
|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Видалити обліковий запис |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Відсутність облікового запису користувача |
| Виключні ситуації | 001.005 Користувач не ідентифікований |
| Основний сценарій | 1. Користувач натискає на кнопку видалення облікового запису<br>2. Система виводить кнопку-запит на підтвердження видалення облікового запису<br>3. Користувач натискає на кнопку підтвердження видалення облікового запису<br>4. Система видаляє обліковий запис (можлива 001.005) |
| ID | ACCOUNT.MODIFY |
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Змінити властивості облікового запису |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Зміна властивостей облікового запису |
| Виключні ситуації | 001.005 Користувач не ідентифікований |
| Основний сценарій | 1. Користувач натискає на кнопку редагування облікового запису<br>2. Система виводить інтерфейс для редагування облікового запису (можлива 001.005)<br>3. Користувач вказує бажані зміни властивостей облікового запису<br>4. Користувач натискає на кнопку внесення змін до властивостей облікового запису<br>5. Система змінює властивості облікового запису |
| ID | SURVEY.LINK.CREATE |
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Додати посилання на опитування |
| Учасники | Користувач, система |
| Передумови | Користувач авторизований у системі |
| Результат | Нове посилання на опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
| Основний сценарій | 1. Користувач натискає кнопку створення посилання на опитування<br>2. Система виводить налаштування для нового посилання (можливі 001.005, 001.006, 001.008)<br>3. Користувач вводить налаштування для нового посилання<br>4. Користувач натискає на кнопку створення посилання<br>5. Система створює нове посилання |
| ID | SURVEY.LINK.DELETE |
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Видалити посилання на опитування |
| Учасники | Користувач, система |
| Передумови | Користувач авторизований у системі |
| Результат | Видалення посилання на опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування<br>001.009 Запитане посилання на існує |
| Основний сценарій | 1. Користувач натискає кнопку видалення посилання<br>2. Система виводить кнопку підтвердження видалення посилання<br>3. Користувач натискає на кнопку підтвердження видалення посилання<br>4. Система видаляє посилання (можливі 001.005, 001.006, 001.008, 001.009) |
| ID | SURVEY.LINK.MODIFY |
|:-----------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Змінити властивості посилання на опитування |
| Учасники | Користувач, система |
| Передумови | Користувач авторизований у системі |
| Результат | Зміна властивостей посилання на опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування<br>001.009 Запитане посилання на існує |
| Основний сценарій | 1. Користувач натискає кнопку редагування властивостей посилання<br>2. Система виводить налаштування для обраного посилання (можливі 001.005, 001.006, 001.008, 001.009)<br>3. Користувач вводить юажані зміни властивостей посилання<br>4. Користувач натискає на кнопку збереження властиностей посилання<br>5. Система змінює властивості посилання |
| ID | USER.CREATE_SURVEY |
|:-----------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Створити опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Створене опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.007 Користувач ввів неприпустимі символи в назві опитування |
| Основний сценарій | 1. Користувач переходить на сторінку створення опитування (можлива 001.005)<br>2. Система виводить інтерфейс створення опитування<br>3. Користувач задає інформацію про запитання та тип опитування<br>4. Користувач натискає кнопку збереження опитування<br>5. Система створює опитування (можлива 001.007)<br>6. Система виводить посилання на проходження опитування |
| ID | USER.DELETE_SURVEY |
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Видалити опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі, користувач є власником опитування |
| Результат | Відсутність опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
| Основний сценарій | 1. Користувач натискає на кнопку видалення опитування<br>2. Система виводить запит на підтвердження видалення опитування<br>3. Користувач натискає на кнопку підтвердження видалення опитування<br>4. Система видаляє опитування (можливі 001.005, 001.006, 001.008) |
| ID | USER.GET_SURVEY_RESULT |
|:-----------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Переглянути відповіді на опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі, користувач є власником опитування |
| Результат | Інформація про відповіді на опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
| Основний сценарій | 1. Користувач натискає на кнопку перегляду відповідей на опитування<br>2. Система виводить інформацію про відповіді на опитування (можливі 001.005, 001.006, 001.008) |
| ID | USER.LOGIN |
|:-----------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Пройти ідентифікацію в системі |
| Учасники | Користувач, система |
| Передумови | Користувач має обліковий запис |
| Результат | Користувач ідентифікований в системі |
| Виключні ситуації | 001.001 Користувач ввів заборонені символи в поле псевдоніму<br>001.003 Користувач ввів псевдонім, якого не існує в системі<br>001.004 Користувач ввів неправильний пароль до облікового запису |
| Основний сценарій | 1. Користувач вводить псевдонім у поле вводу псевдоніму<br>2. Користувач вводить пароль у поле вводу паролю<br>3. Користувач натискає кнопку ідентифікації<br>4. Система ідентифікує користувача (можливі 001.001, 001.003, 001.004) |
| ID | USER.LOGOUT |
|:-----------------:|:-------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Скинути дані про ідентифікацію в системі |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Користувач не ідентифікований в системі |
| Виключні ситуації | 001.005 Користувач не ідентифікований |
| Основний сценарій | 1. Користувач натискає на кнопку виходу з облікового запису<br>2. Система скидає інформацію про ідентифікацію користувача (можлива 001.005) |
| ID | USER.MODIFY_SURVEY |
|:-----------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Редагувати опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі, користувач є власником опитування |
| Результат | Змінене опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
| Основний сценарій | 1. Користувач переходить на сторінку редагування опитування<br>2. Система виводить інтерфейс редагування опитування (можливі 001.005, 001.006, 001.008)<br>3. Користувач задає інформацію про зміни в опитуванні<br>4. Користувач натискає кнопку збереження змін в опитуванні<br>5. Система змінює опитування |
| ID | USER.STAT_SURVEY |
|:-----------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Переглянути властивості опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі, користувач є власником опитування |
| Результат | Інформація про властивості опитування |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує<br>001.008 Користувач не є власником опитування |
| Основний сценарій | 1. Користувач натискає на кнопку перегляду інформації про опитування<br>2. Система виводить інформацію про опитування (можливі 001.005, 001.006, 001.008) |
| ID | USER.TAKE_ANON_SURVEY |
|:-----------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Пройти анонімне опитування |
| Учасники | Користувач, система |
| Передумови | Відсутні |
| Результат | Запис відповідей на опитування |
| Виключні ситуації | 001.006 Запитане опитування не існує |
| Основний сценарій | 1. Користувач переходить на сторінку проходження опитування<br>2. Система виводить перелік запитань опитування (можлива 001.006)<br>3. Користувач вводить відповіді на запитання<br>4. Користувач натискає кнопку надсилання відповідей<br>5. Система записує відповіді на опитування (можлива 001.006)<br>6. Система виводить прощальне повідомлення |
| ID | USER.TAKE_NAMED_SURVEY |
|:-----------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Назва | Пройти поіменне опитування |
| Учасники | Користувач, система |
| Передумови | Користувач ідентифікований в системі |
| Результат | Запис відповідей на опитування та відомості про користувача |
| Виключні ситуації | 001.005 Користувач не ідентифікований<br>001.006 Запитане опитування не існує |
| Основний сценарій | 1. Користувач переходить на сторінку проходження опитування<br>2. Система виводить перелік запитань опитування (можливі 001.005, 001.006)<br>3. Користувач вводить відповіді на запитання<br>4. Користувач натискає кнопку надсилання відповідей<br>5. Система записує відповіді на опитування та відомості про користувача (можлива 001.006)<br>6. Система виводить прощальне повідомлення |
## Короткий огляд продукту
<center>
<img width=60% src="http://139.162.162.130:16660/img/logo2-web.svg">
</center>
Xpertise - це система для проведення будь-яких опитувань.
Вона дозволяє користувачам створювати опитування, збирати відповіді на них та переглядати докладну й узагальнену статистику.
У користувачів є можливість створювати не лише анонімні, але й поіменні опитування, тому платформа також задовольнить потреби в проведенні голосувань для прийняття спільних рішень у командах.
## Функціональність
Наша система спрямована, в першу чергу, на взаємодію з користувачами.
***Користувач** - це особа, що взаємодіє із системою.*
Cистема розділяє користувачів на дві категорії:
- гість
- авторизований користувач
***Гість** - це користувач, що не пройшов ідентифікацію в системі. Такого користувача не можна зіставити з жодним обліковим записом.*
Гість може:
- створити обліковий запис
- пройти ідентифікацію в системі
- пройти анонімне опитування
***Зареєстрований користувач** - це користувач, котрий успішно пройшов ідентифікацію в системі. Такого користувача можна однозначно зіставити з обліковим записом, що наявний у системі.*
Зареєстрований користувач може:
- редагувати властивості свого облікового запису
- видалити свій обліковий запис
- скинути дані про ідентицікацію в системі
- створити опитування
- відредагувати своє опитування
- видалити своє опитування
- створити посилання на своє опитування
- редагувати властивості посилання на своє опитування
- видалити посилання на своє опитування
- призупинити своє опитування
- продовжити своє опитування
- переглянути властивості свого опитування
- переглянути результати свого опитування
- пройти анонімне опитування
- пройти поіменне опитування
*[Респондент](https://slovnyk.ua/index.php?swrd=%D1%80%D0%B5%D1%81%D0%BF%D0%BE%D0%BD%D0%B4%D0%B5%D0%BD%D1%82) - той, хто відповідає на питання анкети; опитуваний.*
***Опитування** - це перелік запитань, кожне з яких передбачає обов'язкову або необов'язкову відповідь. Кожна відповідь має визначений тип.*
***Анонімне опитування** - це опитування, відповідь на яке може не містити інформації про обліковий запис респондента (&#42;респондент все одно може вирішити надати таку інформацію).*
***Поіменне опитування** - це опитування, відповідь на яке обов'язково містить дані про обліковий запис респондента.*
## Практичність
- Наявність зручного інструменту для побудови опитувань
- Можливість легко замінити брендинг та кольорову палітру
- Перегляд аналітики в реальному часі
- Формування статистики відповідей у зручному інтерфейсі
- Можливість експорту результатів опитування через API
- Підтримка програмування реакцій на події (hooks)
## Надійність
- Шифрування з'єднань (TLS)
- Автоматичне резервне копіювання
- Автоматичне відновлення з резервних копій
## Продуктивність
- Низьке використання мережі базовим протоколом
- Незалежність від сторонніх веб-хостингів
## Експлуатаційна придатність
- Наявність докладної документації для користувачів, адміністраторів та розробників
- Доступність онлайн-підтримки

Some files were not shown because too many files have changed in this diff Show More