initial
29
LICENSE
|
@ -1,21 +1,16 @@
|
||||||
MIT License
|
ECL 2.0
|
||||||
|
|
||||||
Copyright (c) 2021 boldak
|
Copyright (c) 2021 Andrey Boldak
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Licensed under the
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
Educational Community License, Version 2.0 (the "License"); you may
|
||||||
in the Software without restriction, including without limitation the rights
|
not use this file except in compliance with the License. You may
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
obtain a copy of the License at
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
https://opensource.org/licenses/ECL-2.0
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
Unless required by applicable law or agreed to in writing,
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
software distributed under the License is distributed on an "AS IS"
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
or implied. See the License for the specific language governing
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
permissions and limitations under the License.
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
71
README.md
|
@ -1,2 +1,69 @@
|
||||||
# edu-dis-labs
|
|
||||||
Distributed Information Systems. Repo template.
|
# Шаблон репозиторію для виконання курсової роботи з дисципліни "Бази даних"
|
||||||
|
|
||||||
|
## Як використовувати
|
||||||
|
|
||||||
|
В цьому репозиторії знаходиться шаблон для виконання курсової роботи.
|
||||||
|
|
||||||
|
Для виконання курсової роботи необхідно зробити ```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
|
||||||
|
|
||||||
|
#!/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)
|
||||||
|
|
||||||
|
|
||||||
|
## Додаткова інформація
|
||||||
|
|
||||||
|
- [Теми проєктів](./guidelines/themes.md)
|
||||||
|
- [Методичні вказівки](./guidelines/guidelines.md)
|
||||||
|
|
||||||
|
***Happy learning! Happy coding!***
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
css
|
||||||
|
dist
|
|
@ -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>
|
|
@ -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>
|
|
@ -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">Hudson’s 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>
|
|
@ -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(" ");
|
||||||
|
}
|
|
@ -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: '/docs/',
|
||||||
|
theme: 'cool',
|
||||||
|
// dest: 'dist',
|
||||||
|
head: [
|
||||||
|
['link', { rel: 'icon', href: '/favicon.ico' }],
|
||||||
|
['link', { rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css' }],
|
||||||
|
['link', {href: 'https://fonts.googleapis.com/icon?family=Material+Icons', rel :'stylesheet'}],
|
||||||
|
|
||||||
|
],
|
||||||
|
themeConfig: {
|
||||||
|
// logo: './myAvatar.png',
|
||||||
|
sidebar: [
|
||||||
|
|
||||||
|
{
|
||||||
|
title: 'Вступ',
|
||||||
|
path:"/intro/"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
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: 'https://github.com/boldak/edu-dis-labs',
|
||||||
|
// Customising the header label
|
||||||
|
// Defaults to "GitHub"/"GitLab"/"Bitbucket" depending on `themeConfig.repo`
|
||||||
|
repoLabel: 'Github',
|
||||||
|
|
||||||
|
// Optional options for generating "Edit this page" link
|
||||||
|
|
||||||
|
// if your docs are in a different repo from your main project:
|
||||||
|
// docsRepo: 'boldak/dis-edu',
|
||||||
|
// if your docs are not at the root of the repo:
|
||||||
|
docsDir: 'docs',
|
||||||
|
// if your docs are in a specific branch (defaults to 'master'):
|
||||||
|
docsBranch: 'master',
|
||||||
|
// defaults to false, set to true to enable
|
||||||
|
// editLinks: true,
|
||||||
|
// custom text for edit link. Defaults to "Edit this page"
|
||||||
|
// editLinkText: 'Ви можете покращити цю сторінку'
|
||||||
|
|
||||||
|
},
|
||||||
|
title: 'Назва проєкту',
|
||||||
|
description: 'Лабораторні роботи з дисципліни "Розподілені інформаційні системи"',
|
||||||
|
configureWebpack: {
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
'@alias': '../img'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
markdown: {
|
||||||
|
extendMarkdown: md => {
|
||||||
|
md.set({ html: true })
|
||||||
|
md.use(require('markdown-it-katex'))
|
||||||
|
md.use(require('markdown-it-plantuml'))
|
||||||
|
md.use(require('markdown-it-admonition'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
After Width: | Height: | Size: 278 KiB |
After Width: | Height: | Size: 232 KiB |
After Width: | Height: | Size: 236 KiB |
After Width: | Height: | Size: 218 KiB |
After Width: | Height: | Size: 264 KiB |
After Width: | Height: | Size: 246 KiB |
After Width: | Height: | Size: 273 KiB |
After Width: | Height: | Size: 281 KiB |
After Width: | Height: | Size: 247 KiB |
After Width: | Height: | Size: 262 KiB |
After Width: | Height: | Size: 266 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 139 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 163 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 266 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 214 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 314 KiB |
After Width: | Height: | Size: 121 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 243 KiB |
After Width: | Height: | Size: 274 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 31 KiB |
|
@ -0,0 +1,16 @@
|
||||||
|
<pre>
|
||||||
|
|
||||||
|
Copyright 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.
|
||||||
|
|
||||||
|
</pre>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,7 @@
|
||||||
|
import quiz1 from './quiz1.json'
|
||||||
|
import quiz2 from './quiz2.json'
|
||||||
|
|
||||||
|
export {
|
||||||
|
quiz1,
|
||||||
|
quiz2
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
|
@ -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]
|
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
home: true
|
||||||
|
actionText: Розпочати →
|
||||||
|
actionLink: /intro/
|
||||||
|
|
||||||
|
footer: "ECL 2.0 Licensed | Copyright © [YYYY] [Your Name]"
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
**Виконали:**
|
||||||
|
|
||||||
|
*студенти [X]-го курсу, групи (шифр групи)*
|
||||||
|
|
||||||
|
**[ім’я ПРІЗВИЩЕ] [Посилання email, tg, fb]**
|
||||||
|
|
||||||
|
**[ім’я ПРІЗВИЩЕ] [Посилання email, tg, fb]**
|
||||||
|
|
||||||
|
|
||||||
|
**Керівник**
|
||||||
|
|
||||||
|
*доцент кафедри ОТ ФІОТ, к.т.н., доцент*<span padding-right:5em></span> **Андрій БОЛДАК**
|
||||||
|
|
||||||
|
[НТУУ "КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ імені ІГОРЯ СІКОРСЬКОГО](https://kpi.ua/)
|
||||||
|
|
||||||
|
[Факультет інформатики та обчислювальної техніки](https://fiot.kpi.ua/)
|
||||||
|
|
||||||
|
[Кафедра обчислювальної техніки](https://comsys.kpi.ua/)
|
||||||
|
|
||||||
|
Київ
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Висновки
|
||||||
|
|
||||||
|
У висновках наводять оцінку отриманих результатів, можливі галузі його використання. Висновки повинні містити в собі коротку узагальнену оцінку результатів розробки, у
|
||||||
|
тому числі і з погляду на їх технічно-економічну ефективність. Необхідно порівняти
|
||||||
|
отримані результати усіх характеристик об’єкта проєктування із завданням і з основними показниками сучасних аналогічних об’єктів.
|
||||||
|
|
||||||
|
Необхідно вказати яке нове технічне рішення покладене в основу проєкту і у чому її
|
||||||
|
переваги, що нового було запропоновано самим студентом.
|
||||||
|
|
||||||
|
На базі отриманих висновків можуть надаватися рекомендації по використанню розробки. Вони повинні
|
||||||
|
мати конкретний характер і бути цілком підтверджені проєктом.
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Вступ
|
||||||
|
|
||||||
|
У вступі описується мета роботи і розглядається поставлене завдання з позиції її
|
||||||
|
актуальності, значення її розв’язання для тієї предметної області, до якої відноситься
|
||||||
|
тема бакалаврського проєкту.
|
||||||
|
|
||||||
|
Коротко характеризується сучасний рівень розв’язання
|
||||||
|
даного завдання і взаємозв’язок з іншими проєктами по цій тематиці.
|
||||||
|
|
||||||
|
Наводяться
|
||||||
|
основні технічні характеристики розробки й очікуваний технічно-економічний ефект
|
||||||
|
від її реалізації.
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Розроблення вимог до системи
|
||||||
|
|
||||||
|
## Основні визначення
|
||||||
|
|
||||||
|
*[Розділ містить визначення термінів та скорочень, які використовуються при аналізі предметної області.]*
|
||||||
|
|
||||||
|
## Підходи та способи вирішення завдання
|
||||||
|
|
||||||
|
*[Розділ містить опис підходів, моделей та способів вирішення завдання.]*
|
||||||
|
|
||||||
|
## Порівняльна характеристика існуючих засобів вирішення завдання
|
||||||
|
|
||||||
|
*[Розділ містить опис існуючих програм, інформаційних систем, сервісів, тощо, призначених для вирішення
|
||||||
|
завдання. Дається порівняльна характеристика властивостей FURPS:*
|
||||||
|
- *Functionality (функциональні вимоги)*
|
||||||
|
- *Usability (вимоги до зручності роботи)*
|
||||||
|
- *Reliability (вимоги до надійності)*
|
||||||
|
- *Performance (вимоги до продуктивності)*
|
||||||
|
- *Supportability (вимоги до підтримки)*
|
||||||
|
|
||||||
|
*(у вигляді таблиці).]*
|
||||||
|
|
||||||
|
## Висновки
|
||||||
|
|
||||||
|
*[Робляться висновки щодо доцільності розробки нової або модифікації існуючої інформаційної системи, необхідності та способів інтеграції з системами(сервісами) третіх сторін, тощо.]*
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Реалізація інформаційного та програмного забезпечення
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Тестування працездатності системи
|
||||||
|
|
||||||
|
*В цьому розділі необхідно вказати засоби тестування, навести вихідні коди тестів та результати тестування.*
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"tags": {
|
||||||
|
"allowUnknownTags": false
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"include": "src/",
|
||||||
|
"includePattern": ".js$",
|
||||||
|
"excludePattern": "(node_modules/|docs)"
|
||||||
|
},
|
||||||
|
"plugins": [
|
||||||
|
"plugins/markdown"
|
||||||
|
],
|
||||||
|
"opts": {
|
||||||
|
"encoding": "utf8",
|
||||||
|
"destination": "./.public/docs/",
|
||||||
|
"recurse": true,
|
||||||
|
"verbose": true
|
||||||
|
},
|
||||||
|
"templates": {
|
||||||
|
"cleverLinks": false,
|
||||||
|
"monospaceLinks": false
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"name": "dis-edu",
|
||||||
|
"version": "2.1.0",
|
||||||
|
"main": "index.js",
|
||||||
|
"description": "Databases course work template",
|
||||||
|
"repository": "https://github.com/boldak/dis-edu",
|
||||||
|
"author": "Andrey Boldak <boldak.andrey@gmail.com>",
|
||||||
|
"license": "ECL 2.0",
|
||||||
|
"scripts": {
|
||||||
|
"docs:api": "jsdoc2md src/**/*.js > docs/api/README.md",
|
||||||
|
"docs:dev": "npm run docs:api && npx vuepress dev docs",
|
||||||
|
"docs:build": "npm run docs:api && npx vuepress build docs",
|
||||||
|
"publish": "publish.sh"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@vuepress/plugin-back-to-top": "^1.7.1",
|
||||||
|
"@vuepress/plugin-pwa": "^1.7.1",
|
||||||
|
"vuepress": "^1.7.1",
|
||||||
|
"vuepress-theme-cool": "^1.3.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"jest": "^27.1.0",
|
||||||
|
"jsdoc-to-markdown": "^7.0.1"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/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/boldak/dis-edu.git master:gh-pages
|
||||||
|
|
||||||
|
cd -
|
|
@ -0,0 +1,2 @@
|
||||||
|
# програмні коди
|
||||||
|
В цьому розділі розміщені програмні коди.
|