21 Commits

Author SHA1 Message Date
Misha1tigr 86a25aefda лаб1: зробив секцію з основними визначеннями 2024-03-07 21:46:23 +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
118 changed files with 18534 additions and 9873 deletions
+104
View File
@@ -0,0 +1,104 @@
# 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
-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(" ");
}
+113
View File
@@ -0,0 +1,113 @@
// .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/",
},
{
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: 'Назва проєкту',
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 @@
# Висновки
У висновках наводять оцінку отриманих результатів, можливі галузі його використання. Висновки повинні містити в собі коротку узагальнену оцінку результатів розробки, у
тому числі і з погляду на їх технічно-економічну ефективність. Необхідно порівняти
отримані результати усіх характеристик об’єкта проєктування із завданням і з основними показниками сучасних аналогічних об’єктів.
Необхідно вказати яке нове технічне рішення покладене в основу проєкту і у чому її
переваги, що нового було запропоновано самим студентом.
На базі отриманих висновків можуть надаватися рекомендації по використанню розробки. Вони повинні
мати конкретний характер і бути цілком підтверджені проєктом.
+86
View File
@@ -0,0 +1,86 @@
# Проєктування системи
Вбудовування зображень діаграм здійснюється з використанням сервісу [plantuml.com](https://plantuml.com/).
В markdown-файлі використовується опис діаграми
```md
<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
participant Client
participant SR as "Service Registry"
participant Service
Service -> SR : register
SR -> SR
SR --> Service
...
SR -> Service: heartbeat
SR <-- Service: health
...
Client -> SR: find
Client <-- SR: service endpoint
Client -> Service: request
Client <-- Service: response
@enduml
</center>
```
яка буде відображена наступним чином
<center style="
border-radius:4px;
border: 1px solid #cfd7e6;
box-shadow: 0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025);
padding: 1em;"
>
@startuml
@startuml
participant Client
participant SR as "Service Registry"
participant Service
Service -> SR : register
SR -> SR
SR --> Service
...
SR -> Service: heartbeat
SR <-- Service: health
...
Client -> SR: find
Client <-- SR: service endpoint
Client -> Service: request
Client <-- Service: response
@enduml
</center>
+12
View File
@@ -0,0 +1,12 @@
# Вступ
У вступі описується мета роботи і розглядається поставлене завдання з позиції її
актуальності, значення її розв’язання для тієї предметної області, до якої відноситься
тема бакалаврського проєкту.
Коротко характеризується сучасний рівень розв’язання
даного завдання і взаємозв’язок з іншими проєктами по цій тематиці.
Наводяться
основні технічні характеристики розробки й очікуваний технічно-економічний ефект
від її реалізації.
+291
View File
@@ -0,0 +1,291 @@
# Розроблення вимог до системи
## Вступ
У даному розділі проводиться аналіз предметної області, пов'язаної з системою організації та управління експертними опитуваннями.
Аналіз методів експертного опитування розкриє їхні переваги та недоліки.
Розпишемо підходи та методи організації систем організації та опитування експертів.
Ми визначимо доцільність розробки нового проєкту шляхом аналізу переваг та недоліків наявних інструментів, а також їх зіставлення з нашим майбутнім.
В глосарії опишемо основні терміни та поняття, котрі можна зустріти в сфері експертних опитувань.
У висновку сформуємо ключові аспекти, на які слід звертати увагу, щоб забезпечити успішну та ефективну реалізацію проєкту.
## Основні визначення
### Технічні визначення
**База даних** [](https://uk.wikipedia.org/wiki/База_даних)
База даних (англ. database) – сукупність даних, організованих відповідно до концепції, яка описує характеристику цих даних і взаємозв'язки між їх елементами; ця сукупність підтримує щонайменше одну з областей застосування (за стандартом ISO/IEC 2382:2015). В загальному випадку база даних містить схеми, таблиці, подання, збережені процедури та інші об'єкти. Дані у базі організовують відповідно до моделі організації даних. Таким чином, сучасна база даних, крім самих даних, містить їх опис та може містити засоби для їх обробки.
**SQL** [](https://uk.wikipedia.org/wiki/SQL)
SQL (англ. Structured query language — мова структурованих запитів) — декларативна мова програмування для взаємодії користувача з базами даних, що застосовується для формування запитів, оновлення і керування реляційними БД, створення схеми бази даних та її модифікації, системи контролю за доступом до бази даних. Сама по собі SQL не є ані системою керування базами даних, ані окремим програмним продуктом. На відміну від дійсних мов програмування (C або Pascal), SQL може формувати інтерактивні запити або, бувши вбудованою в прикладні програми, виступати як інструкції для керування даними. Окрім цього, стандарт SQL містить функції для визначення зміни, перевірки та захисту даних.
### Загальні визначення
**Опитування** [](https://uk.wikipedia.org/wiki/Опитування)
Опи́тування — це метод збору соціологічної інформації про досліджуваний об'єкт під час безпосереднього (усне опитування, інтерв'ю) або опосередкованого (письмове опитування, анкетування) спілкування того хто опитує з респондентом. Опитування бувають соціологічні, політологічні, маркетингові, психологічні — залежно від предмету дослідження. Залежно від кількості опитуваних (вибірки, вибіркової сукупності) вони також можуть бути масовими, вибірковими, індивідуальними, експертними. Також використовується для вимірювання «громадської думки» з різних питань.
**Експерт** [](https://ela.kpi.ua/server/api/core/bitstreams/8a8030cf-bfc1-4586-b197-1c7e3bf02700/content)
Експертом називають людину, що є фахівцем (спеціалістом) у певній предметній області (ПО) і може пояснити свої дії та міркування. Предметною областю називають будь-яку галузь діяльності людини, наприклад, “Технічні засоби автоматизації”, “Охорона довкілля”, “Системи штучного інтелекту” тощо.
**Експертне опитування**
Експертне опитування або опитування фахівців — це особливий метод маркетингового (і/або соціологічного) дослідження. В рамках такого опитування досліджувана тема обговорюється з експертами, компетентними в даній сфері.
### Методи експертного опитування
#### Активні методи
Активні методи передбачають спілкування між організаторами та експертами. Можливі два напрямки активної роботи з експертами: індивідуальна робота з експертом (анонімна чи відкрита) та робота з групою в цілому.
***
#### До індивідуальних активних методів належать анкетування, інтерв’ю, діалог з експертом, ігри з експертом.
**Інтерв’ю** [](https://ela.kpi.ua/server/api/core/bitstreams/8a8030cf-bfc1-4586-b197-1c7e3bf02700/content)
Інтерв’ю – це форма спілкування між дослідником та експертом, при якій дослідник ставить заздалегідь підготовлену чергу запитань. Можна замінити ці запитання на інші у відповідності до ситуації.
**Діалог** [](https://ela.kpi.ua/server/api/core/bitstreams/8a8030cf-bfc1-4586-b197-1c7e3bf02700/content)
Діалог – це метод отримання знань у формі бесіди між дослідником та експертом, коли немає жорстко регламентованого плану проведеня і визначеного заздалегідь переліку запитань.
**Ігри з експертом** [](https://ela.kpi.ua/server/api/core/bitstreams/8a8030cf-bfc1-4586-b197-1c7e3bf02700/content)
Ігри з експертом (експертні ігри) – це експерименти, у яких фахівцю пропонують важливі ситуації з предметної області. Фахівець повинен запропонувати рішення по виходу з цих ситуацій на основі свого життєвого досвіду, спеціальних знань та уявлень.
***
#### До методів активної роботи з групою в цілому належать методи круглого столу, мозкового штурму та рольові ігри.
**Круглий стіл** [](https://ela.kpi.ua/server/api/core/bitstreams/8a8030cf-bfc1-4586-b197-1c7e3bf02700/content)
“Круглий стіл” передбачає обговорення певної проблеми, у якому приймають участь експерти з однаковими правами. Задача дискусії – вивчити проблему всебічно, тому слід запрошувати експертів, які належать до різних наукових напрямків, мають різний вік, стать і т.ін. Цей метод не передбачає терміновості прийняття рішення.
**Мозковий штурм** [](https://ela.kpi.ua/server/api/core/bitstreams/8a8030cf-bfc1-4586-b197-1c7e3bf02700/content)
“Мозковий штурм (атака)” – один із найбільш поширених методів активізації думок. Його застосовують у тих випадках, коли потрібно знайти вирішення певної проблеми за дуже короткий час. Під час такого обговоренння кожний експерт повинен запропонувати свій шлях розвязання задачі або розвинути думку іншого учасника.
**Рольові ігри** [](https://ela.kpi.ua/server/api/core/bitstreams/8a8030cf-bfc1-4586-b197-1c7e3bf02700/content)
Рольові ігри (експертні ігри) – це експерименти, у яких колективу спеціалістів пропонують складні ситуації з предметної області. Спеціалісти у процесі відкритого обговорення приймають рішення про шляхи виходу з цих ситуацій.
***
#### Пасивні методи
До пасивних методів належать спостереження за діяльністю експертів, запис їхніх міркувань у процесі роботи (так звані *“думки вголос”*), лекції, які вони можуть прочитати. [](https://ela.kpi.ua/server/api/core/bitstreams/8a8030cf-bfc1-4586-b197-1c7e3bf02700/content)
## Підходи та способи вирішення завдання
[Методисти виділяють методи **заочного** та **очного** експертного опитування.](http://elbib.in.ua/vidi-ekspertnogo-opituvannya-metodologiya-ta-metodi-sotsiologichnih-doslidjen.html)
До методів **заочного** опитування відносять:
- письмове опитування («збір думок»);
- анкетування;
- дельфійська техніка;
До **очних** методів належать:
- «мозкова атака».
Письмове опитування (або «збір думок») – вважається найпростішим методом заочного опитування експертів. Він полягає в тому, що експертам надають спеціально підготовлені опитувальні листи, в яких вони повинні викласти свою думку по суті поставлених питань. При складанні експертного опитувальника від 50 до 90% використовуються відкриті питання. Збір думок подібний вільному інтерв'ю і відрізняється від нього лише письмовою формою опитування.
Плюси: дає можливість залучити велику кількість експертів.
Мінуси: заочний опитування пов'язане з організаційними труднощами, зумовленими низьким рівнем повернення анкет.
Анкетування – даний тип опитування може бути сформований як у відкритій, так і в закритій формі. Сильно відрізняється від письмового збору думок, оскільки спрямоване на з’ясування оцінок фахівцями тих чи інших аспектів готового рішення.
Плюси: можливість анонімного збору даних; значно спрощує можливість збору даних; стандартизація.
Мінуси: учасники можуть відмовитися від відповідей або дати неправильні відповіді через обмежену варіативність; негнучкість методу (негативна сторона стандартизованості).
Метод Дельфі – опитування експертної групи в кілька турів з узгодженням думок експертів. Суть цього методу в тому, щоб за допомогою серії послідовних дій - опитувань, інтерв'ю, мозкових штурмів - домогтися максимального консенсусу при визначенні правильного рішення. Метод передбачає опитування експертів в кілька турів (зазвичай 2-3), обробку результатів кожного туру, інформування їх про ці результати і знову повторення такої ж процедури. У першому турі відповіді даються без аргументації. Після обробки виділяються крайні і середні судження і повідомляються експертам. У другому турі опитувані знову звертаються до своїх оцінок. Так як вони мали досить часу на роздуми і дізналися про існування інших позицій з цього приводу, вони можуть переглянути свої погляди або, навпаки, посилити їх аргументацію. Після другого туру обробляються нові оцінки - крайні і середні думки узагальнюються, підсумки знову доповідають експертам. Так повторюється 3-4 рази. Практика показує, що після третього або четвертого туру думки експертів не змінюються. В ході подібної процедури виробляється узгоджена оцінка, причому дослідник не повинен нехтувати громадською думкою тих, хто після неодноразових опитувань залишився на своїй позиції.
Плюси: подібна техніка дозволяє зменшити вплив недостатньо компетентних експертів на групову оцінку, як це спостерігається при простому анкетуванні. Воно досягається за рахунок отриманої цінної інформації від більш компетентних експертів.
Мінуси: часові витрати; можливість втрати мотивації учасників.
Метод «мозкової атаки» («Мозкового штурму») вважається найбільш відомим методом колективного прийняття творчих рішень. Він являє собою вільний, неструктурований процес генерування власних ідей, спонтанно пропонованих учасниками, навколо заданої теми. Філософія цього методу виходить із припущення, що при звичайних прийомах обговорення виникненню новаторських ідей перешкоджають контрольні механізми свідомості, які сковують потік цих ідей під тиском звичних, стереотипних форм прийняття рішення. Гальмівний вплив надають боязнь невдачі, страх виявитися смішним і т.д.
Плюси: стимулювання творчості; розширення горизонтів.
Мінуси: відсутність структури; можливість домінування деяких учасників.
Тепер давайте розглянемо найпопулярніші інструменти для проведення анкетувань.
[Google Forms](https://uk.wikipedia.org/wiki/Google_Форми)
Google Forms — програмне забезпечення для адміністрування опитування,
що входить до складу безкоштовного веб-пакету Google Docs Editors,
пропонованого Google. Послуга також включає Google Docs, Google Sheets,
Google Slides, Google Drawings, Google Sites і Google Keep. Google Форми
доступні лише як веб-додаток. Додаток дозволяє користувачам створювати та
редагувати опитування в Інтернеті, співпрацюючи з іншими користувачами
в режимі реального часу. Зібрану інформацію можна автоматично внести в
електронну таблицю.
Цілком можливо, що Google Forms є одним із найпоширеніших конструкторів
форм, доступних сьогодні. Враховуючи численні переваги Google Forms,
величезна популярність програми не повинна бути несподіванкою.
Однак, як будь-яка інша програма, Google Forms також має деякі помітні
недоліки.
Переваги Google Forms:
- Зручність
- Простота використання
- Це безкоштовно
- Співпраця з колегами
- Необмежена кількість форм
- Потужні функції (кілька типів запитань, поле завантаження файлу, умовна
логіка)
- Кілька варіантів розповсюдження
- Частина екосистеми Google
![GoogleForms](http://139.162.162.130:16660/img/img-1.1.jpg)
[SurveyMonkey](https://en.wikipedia.org/wiki/SurveyMonkey)
SurveyMonkey - це служба як для створення простих і невеликих опитувань,
так і для масової розсилки анкет, виявлення тенденцій і складання більших
досліджень. Сервіс дозволяє швидко створювати опитування, налаштовувати
їх зовнішній вигляд, змінювати місцями питання, проводити А/Б-тестування,
вставляти опитування на сайти та соціальні мережі, складати дуже детальні
та наочні звіти, захищати дані та інтегрувати засоби з MailChimp,
GroSocial та іншими сервісами.
Функції, які може запропонувати сервіс:
- 51 шаблон опитувань та 15 типів питань.
- Підтримка всіх мов (Unicode).
- Логіка сторінок та питань.
- Випадковий розкид питань та конвеєрна організація.
- Користувальницькі готові теми та звіти.
- Сортування варіантів відповідей та випадковий розкид.
- Індикатор пройдених питань.
- Автонумерація сторінок та питань.
- Переадресація після завершення та сторінка подяк.
- Версія PDF для друку.
- Можливість надіслати опитування за веб-посиланням, поштою, у Twitter
або Facebook.
- Настроювана URL-адреса.
- Можливість вставити опитування на веб-сторінку або на спливаюче вікно.
- Розсилання опитувань диспетчером.
- Підвищена безпека (SSL).
- Підсумки в режимі реального часу.
- Аналітика тексту.
- Інтеграція SPSS(пакету програм, який використовується для аналізу
статистичних даних).
- Фільтри та перехресні таблиці відповідей за критеріями.
- Загальний доступ до відповідей.
![SurveyMonkey](http://139.162.162.130:16660/img/img-1.2.jpg)
[Responsly](https://www.responsly.com)
Responsly - платформа, яка дозволяє створювати онлайн-опитування та
анкети всього за кілька секунд і надсилати їх тисячам одержувачів одним
натисканням кнопки. Також є вбудована технологія штучного інтелекту, яка
надає широкий вибір типів питань для опитувань, вибраних спеціально для
певної аудиторії.
Функції, які може запропонувати сервіс:
- 25+ типів питань
- Автоматизація та інтеграція - планування надсилань опитувань і
створення власних сповіщення.
- Калькулятор - можливість обчислення балів, цін та інших змінних на
основі відповідей людей. Створення різних кінцевих сторінок на основі
балів.
- Багатомовні опитування.
- Безпека корпоративного рівня.
![Responsly](http://139.162.162.130:16660/img/img-1.3.jpg)
[Jotform](https://en.wikipedia.org/wiki/Jotform)
Jotform — це потужна онлайн програма, яка дозволяє будь-кому швидко
створювати власні онлайн форми. Інтуїтивно зрозумілий інтерфейс
конструктора форм робить створення форм неймовірно простим, без написання
жодного рядка коду. За допомогою Jotform користувачі можуть створювати та
публікувати форми, інтегрувати їх у свій веб-сайт та отримувати відповіді
електронною поштою. Jotform дозволяє створювати онлайн форми, отримувати
відповіді безпосередньо в електронних листах та створювати PDF форми для
заповнення.
Функції, які може запропонувати сервіс:
- Тисячі готових до використання безкоштовних шаблонів, які допоможуть
користувачу створювати форми.
- Вбудований інструмент умовної логіки, який може показувати або
приховувати будь-які вибрані користувачем поля форми, залежно від того,
як люди відповідають на запитання.
- Не потрібний досвід програмування.
- Jotform дуже серйозно ставиться до безпеки даних користувачів.
- Легка інтеграція платежів.
- Інтеграція віджетів.
![Jotform](http://139.162.162.130:16660/img/img-1.4.jpg)
[QuestionPro](https://questionpro.com/)
QuestionPro — це програмне забезпечення для створення та розповсюдження
опитувань. Воно складається з інтуїтивно зрозумілого інтерфейсу для
створення запитань для опитувань, інструментів для їх розповсюдження
електронною поштою або на веб-сайті та інструментів для аналізу та
перегляду результатів.
Достатньо просто створити опитування та надіслати його електронною поштою
потенційним респондентам. QuestionPro подбає про збір і запис відповідей,
а результати будуть доступні в реальному часі.
Функції, які може запропонувати сервіс:
- Необмежена кількість опитувань.
- Необмежена кількість відповідей.
- 20+ професійних тем опитування.
- Додавання свого логотипу.
- Експорт необроблених даних.
- Цілодобова підтримка електронною поштою.
- Індекс підтримки споживача (NPS).
- Багатомовні опитування.
- Розширена логіка розгалуження.
- Мобільний додаток QuestionPro.
- Експорт SPSS (пакету програм, який використовується для аналізу
статистичних даних).
- Цілодобовий чат і телефонна підтримка.
- Аналіз тональності тексту (клас методів контент-аналізу в комп'ютерній
лінгвістиці, призначений для автоматизованого виявлення в текстах
емоційно забарвленої лексики).
- Функції інтеграції опитувань.
- Функції автоматизації опитувань.
- Адміністрування опитування та функції безпеки.
![QuestionPro](http://139.162.162.130:16660/img/img-1.5.jpg)
[Fillout](https://www.fillout.com/)
Fillout — це платформа для створення форм, опитувань і тестів. Fillout
інтегрується з інструментами, які вже використовує користувач, щоб
допомогти автоматизувати робочі процеси та масштабувати операції. Час
безперебійної роботи платформи та безпека додатків є двома пріоритетами
Fillout. Для компаній із суворими вимогами щодо резидентності даних та
іншими вимогами Fillout пропонує корпоративне рішення для безпечного
отримання даних у будь-якому масштабі.
Функції може запропонувати сервіс:
- Fillout пропонує широкий вибір шаблонів опитувань, придатних для різних
цілей, включаючи відгуки клієнтів, дослідження ринку, задоволеність
працівників тощо. Кожен шаблон розроблено, щоб допомогти отримати
користувачу цінну інформацію, і його легко налаштувати відповідно до
потреб.
- Fillout забезпечує легку інтеграцію з різними платформами, забезпечуючи
безпроблемну передачу та аналіз даних, які збирає користувач під час
своїх опитувань.
- Функція масового імпорту питань.
- Потужна інтуїтивна логіка.
![Fillout](http://139.162.162.130:16660/img/img-1.6.jpg)
## Порівняльна характеристика існуючих засобів вирішення завдання
*[Розділ містить опис існуючих програм, інформаційних систем, сервісів, тощо, призначених для вирішення
завдання. Дається порівняльна характеристика властивостей FURPS:*
- *Functionality (функциональні вимоги)*
- *Usability (вимоги до зручності роботи)*
- *Reliability (вимоги до надійності)*
- *Performance (вимоги до продуктивності)*
- *Supportability (вимоги до підтримки)*
*(у вигляді таблиці).]*
## Висновки
*[Робляться висновки щодо доцільності розробки нової або модифікації існуючої інформаційної системи, необхідності та способів інтеграції з системами(сервісами) третіх сторін, тощо.]*
+3
View File
@@ -0,0 +1,3 @@
# Реалізація інформаційного та програмного забезпечення

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