Compare commits

..

1 Commits
main ... lab3

Author SHA1 Message Date
bfdac011af lab3 2024-01-12 11:19:45 +04:00
73 changed files with 6842 additions and 0 deletions

20
.eslintrc.json Normal file
View File

@ -0,0 +1,20 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": "airbnb-base",
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"rules": {
"quotes": "off",
"indent": "off",
"no-console": "off",
"no-use-before-define": "off",
"no-alert": "off",
"no-restricted-globals": "off",
"quote-props": "off"
}
}

96
abiturient.html Normal file
View File

@ -0,0 +1,96 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/style.css">
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 1.5em">
<h3>Список направлений</h3>
<br>
<form class="needs-validation" method="get" novalidate style="display: flex;">
<label for="code" class="form-label" style="margin-right: 5px">
Код:</label>
<input class="form-control" type="text" id="code" style="width: 80px; height: 30px;">
<label for="direction" style="margin-left: 20px; margin-right: 5px;" class="form-label">
Направление: </label>
<input class="form-control" type="text" id="direction" style="height: 30px;">
<label for="subjects" style="margin-left: 20px; margin-right: 5px" class="form-label">
Предметы:</label>
<input class="form-control" type="text" id="subjects" style="height: 30px;">
<input type="submit" class="btn btn-primary" style="margin-top: 10px; margin-left: 20px; width: 100px;" name="submit" value="Поиск">
</form>
<br><br>
<table class="table table-bordered table-hover">
<thead>
<tr>
<td>Код</td>
<td>Наименование направления</td>
<td>Требуемые баллы ЕГЭ</td>
</tr>
</thead>
<tbody>
<tr>
<td>09.03.04</td>
<td>Программная инженерия</td>
<td>Математика (50), Русский язык (50), Информатика (50)/Физика(50)</td>
</tr>
<tr>
<td>09.03.01</td>
<td>Информационная безопасность</td>
<td>Математика (50), Русский язык (50), Информатика (50)/Физика(50)</td>
</tr>
<tr>
<td>42.03.01</td>
<td>Реклама и связи с общественностью</td>
<td>Математика (50), Русский язык (50), Иностранный язык(50)/Обществознание(50)/Информатика(50)</td>
</tr>
</tbody>
</table>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

99
add_news.html Normal file
View File

@ -0,0 +1,99 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/style.css">
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 1.3em">
<h3>Страница администратора</h3>
Добавить новость
<br>
<div class="container px-4 py-2 text-center">
<form id="add-news-form" class="needs-validation" action="./news.html" method="get" style="text-align: left; line-height: 1.3em; margin-left: 3%;" novalidate>
<div class="text-center">
<img id="image-preview" src="https://via.placeholder.com/200" width="200px" height="200px" class="rounded rounded-circle" alt="placeholder">
</div>
<label for="title" class="form-label">Заголовок:</label><br>
<input id="title" class="form-control" type="text" name="title" placeholder="Заголовок" required>
<br>
<br>
<label for="date" class="form-label">Дата:</label><br>
<input id="date" class="form-control" type="text" name="date" placeholder="1 сентября, 2023" required>
<br>
<br>
<label for="text" class="form-label">Текст новости:</label><br>
<textarea id="text" class="form-control" type="text" name="text" cols="3" rows="3" placeholder="2-3 предложения" required></textarea>
<br>
<br>
<label for="tage" class="form-label">Тэги:</label><br>
<input id="tage" class="form-control" type="text" name="tage" placeholder="праздник молодёжный" required>
<br>
<br>
<label for="image" class="form-label">Изображение:</label>
<br>
<div class="input-group mb-3">
<input type="file" class="form-control" name="image" id="image" accept="image/*">
<label class="input-group-text" for="image">Загрузить</label>
</div>
<br>
<button type="submit" style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Добавить</button>
</form>
</div>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
<script type="module">
import validation from "./js/validation.js";
import { linesPageForm } from "./js/posts.js"
document.addEventListener('DOMContentLoaded', () => {
validation();
linesPageForm();
});
</script>
</body>
</html>

77
admin.html Normal file
View File

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/style.css">
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: justify; line-height: 2em">
<h3 style="text-align: center;">Страница админа</h3>
<br>
<table id="items-table" class="table table-striped table-hover">
<thead>
<th scope = "col"></th>
<th scope = "col" class ="w-10">Название</th>
<th scope = "col" class = "w-30">Дата</th>
<th scope = "col" class = "w-50">Описание</th>
<th scope = "col">Теги</th>
<th scope = "col"></th>
<th scope = "col"></th>
</thead>
<tbody></tbody>
</table>
<br><br>
<form action="add_news.html">
<button style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Добавить новость</button>
</form>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
<script type = "module">
import { drawLinesTable } from "./js/posts.js";
document.addEventListener('DOMContentLoaded', () => {
drawLinesTable();
});
</script>
</body>
</html>

76
contacts.html Normal file
View File

@ -0,0 +1,76 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/style.css">
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 2em">
<h3>Обратная связь</h3>
Вы можете задать нам любой вопрос, обратиться с предложением или сообщить о проблеме. Для этого заполните форму ниже.<br>
Мы с радостью вам ответим!<br>
<form id="contacts-form" class="needs-validation" method="get" style="text-align: left; line-height: 1.3em; margin-left: 3%;" novalidate>
<label for="name" class="form-label">Имя:</label><br>
<input class="form-control" type="text" name="name" placeholder="Имя" id="name" required>
<br>
<br>
<label for="email" class="form-label">Email:</label>
<br>
<input class="form-control" type="email" name="email" placeholder="Емэйл" id="email" required>
<br>
<br>
<label for="theme" class="form-label">Тема:</label>
<br>
<input class="form-control" type="text" name="theme" placeholder="Тема вопроса" id="theme" required>
<br>
<br>
<label for="question" class="form-label">Ваш вопрос:</label>
<br>
<textarea class="form-control" type="text" name="question" cols="3" rows="7" id="question" required></textarea>
<br>
<br>
<input type="submit" style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary" name="submit" value="Отправить">
</form>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

191
css/style.css Normal file
View File

@ -0,0 +1,191 @@
html {
height: 100%;
}
body {
height: 100%;
margin: 0px;
padding: 0px;
background-color: #e5e5e5;
font-family: Arial;
/* для закрепления подвала внизу страницы*/
display: flex;
flex-direction: column;
}
#header, #footer {
width: 100%;
background-color: #012362;
text-align: center;
font-family: Arial;
font-size: 20px;
color: white;
line-height: 1.5em;
padding: 14px 0px 14px 0px;
/* для закрепления подвала внизу страницы*/
flex: 0 0 auto;
}
#header a {
text-decoration: none;
color: white;
}
#header a:hover {
text-shadow: 1px 1px 8px #06c;
}
#logo {
vertical-align: middle;
margin-right: 10px;
}
#logo:hover {
filter: drop-shadow(0px 2px 16px #06c);
}
.navbar {
width: 100%;
background-color: white;
color: #012362;
font-family: Arial;
}
.navbar-brand, .nav-item {
margin-left: 5em;
}
@media (min-width: 800px) {
.navbar-brand, .nav-item {
margin-left: 2em;
}
}
@media (min-width: 1280px) {
.navbar-brand, .nav-item {
margin-left: 6em;
}
}
@media (min-width: 1600px) {
.navbar-brand, .nav-item {
margin-left: 8em;
}
}
@media (min-width: 1920px) {
.navbar-brand, .nav-item {
margin-left: 12em;
}
}
@media (min-width: 2100px) {
.navbar-brand, .nav-item {
margin-left: 17em;
}
}
.navbar-brand, .nav-link {
font-size: 17pt;
text-decoration: none;
color: #012362;
}
.navbar-brand:hover, .nav-link:hover {
color: #f07c41;
text-decoration: underline;
}
/* Весь контент страницы */
#content {
width: 80%;
margin: 1.5% 10% 1.5% 10%;
padding: 30px;
padding-left: 5%;
padding-right: 5%;
background-color: white;
color: #012362;
font-size: 13pt;
text-align: justify;
line-height: 15pt;
/* для закрепления подвала внизу страницы*/
flex: 1 0 auto;
}
/* центр для изображений*/
#content img {
display: block;
margin-left: auto;
margin-right: auto;
}
table {
font-size: 13pt;
border: 2px solid;
border-left: 10px solid;
border-right: 10px solid;
}
thead {
font-style: italic;
}
@media (max-width: 860px) {
table {
font-size: 2vw;
line-height: 1.3em;
}
}
#content a{
color: #06c;
}
#content a:hover{
color: #f07c41;
text-decoration: none;
}
.input {
border: 1.2px solid gainsboro;
border-radius: 3px;
width: 270px;
margin-top: 6px;
}
@media (min-width: 400px) {
.input {
width: 220px;
}
}
.input-textarea {
border: 1.2px solid gainsboro;
border-radius: 3px;
width: 100%;
}
.input:hover, .input-textarea:hover {
border: 1.2px solid #06c;
filter: drop-shadow(0px 0px 2px #06c);
}
.input:focus, .input-textarea:focus {
outline-width: 0;
border: 1.3px solid #012362;
}
.btn {
background-color: #012362;
border: 0px;
}
#footer {
font-size: 15px;
}
#footer ul {
margin: 0px;
}
#footer li {
display: inline-flex;
}
#footer li:not(:last-of-type) {
margin-right: 3%;
}

44
data.json Normal file

File diff suppressed because one or more lines are too long

89
dist/abiturient.html vendored Normal file
View File

@ -0,0 +1,89 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/assets/style-ea88520f.css">
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 1.5em">
<h3>Список направлений</h3>
<br>
<label for="code">Код: </label>
<input class="input" type="text" name="code" id="code" style="width: 80px;">
<label for="direction" style="margin-left: 20px;"> Направление:</label>
<input class="input" type="text" name="direction" id="direction">
<label for="subjects" style="margin-left: 20px;">Предметы:</label>
<input class="input" type="text" name="subjects" id="subjects">
<input type="submit" class="btn btn-primary" style="margin-top: 10px; margin-left: 20px; width: 100px;" name="submit" value="Поиск">
</form>
<br><br>
<table class="table table-bordered table-hover">
<thead>
<tr>
<td>Код</td>
<td>Наименование направления</td>
<td>Требуемые баллы ЕГЭ</td>
</tr>
</thead>
<tbody>
<tr>
<td>09.03.04</td>
<td>Программная инженерия</td>
<td>Математика (50), Русский язык (50), Информатика (50)/Физика(50)</td>
</tr>
<tr>
<td>09.03.01</td>
<td>Информационная безопасность</td>
<td>Математика (50), Русский язык (50), Информатика (50)/Физика(50)</td>
</tr>
<tr>
<td>42.03.01</td>
<td>Реклама и связи с общественностью</td>
<td>Математика (50), Русский язык (50), Иностранный язык(50)/Обществознание(50)/Информатика(50)</td>
</tr>
</tbody>
</table>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

91
dist/add_news.html vendored Normal file
View File

@ -0,0 +1,91 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<script type="module" crossorigin src="/assets/add_news-1146ed73.js"></script>
<link rel="modulepreload" crossorigin href="/assets/validation-959284d8.js">
<link rel="stylesheet" href="/assets/validation-dfd4cadb.css">
<link rel="stylesheet" href="/assets/style-ea88520f.css">
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 1.3em">
<h3>Страница администратора</h3>
Добавить новость
<br>
<div class="container px-4 py-2 text-center">
<form id="add-news-form" class="needs-validation" action="./news.html" method="get" style="text-align: left; line-height: 1.3em; margin-left: 3%;" novalidate>
<div class="text-center">
<img id="image-preview" src="https://via.placeholder.com/200" class="rounded rounded-circle" alt="placeholder">
</div>
<label for="title" class="form-label">Заголовок:</label><br>
<input id="title" class="form-control" type="text" name="title" placeholder="Заголовок" required>
<br>
<br>
<label for="date" class="form-label">Дата:</label><br>
<input id="date" class="form-control" type="text" name="date" placeholder="1 сентября, 2023" required>
<br>
<br>
<label for="text" class="form-label">Текст новости:</label><br>
<textarea id="text" class="form-control" type="text" name="text" cols="3" rows="7" placeholder="2-3 предложения" required></textarea>
<br>
<br>
<label for="image" class="form-label">Изображение:</label>
<br>
<div class="input-group mb-3">
<input type="file" class="form-control" name="image" id="image" accept="image/*" required>
<label class="input-group-text" for="image">Загрузить</label>
</div>
<br>
<button type="submit" style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Добавить</button>
</form>
</div>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

BIN
dist/assets/1september-9ac65a17.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
dist/assets/Halloween-dcefb2d3.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

BIN
dist/assets/Students1-ddc3a6e6.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
dist/assets/Students2-8684e38a.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
dist/assets/Students3-5887bf87.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
dist/assets/University-f1dcd661.JPG vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

View File

@ -0,0 +1 @@
{"version":3,"file":"abiturient-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

12
dist/assets/add_news-1146ed73.js vendored Normal file
View File

@ -0,0 +1,12 @@
import{v as w}from"./validation-959284d8.js";/* empty css */const r="http://localhost:8081";function m(e,t,o,a,i){return{id:e,text:t,title:o,date:a,image:i}}async function g(){const e=await fetch(`${r}/news`);if(!e.ok)throw e.statusText;return e.json()}async function p(e){const t=await fetch(`${r}/news/${e}`);if(!t.ok)throw t.statusText;return t.json()}async function h(e,t,o,a){const i=m(0,e,t,o,a),c={method:"POST",body:JSON.stringify(i),headers:{Accept:"application/json","Content-Type":"application/json"}},s=await fetch(`${r}/news`,c);if(!s.ok)throw s.statusText;return s.json()}async function y(e,t,o,a,i){const c=m(e,t,o,a,i),s={method:"PUT",body:JSON.stringify(c),headers:{Accept:"application/json","Content-Type":"application/json"}},l=await fetch(`${r}/news/${e}`,s);if(!l.ok)throw l.statusText;return l.json()}const n={form:document.getElementById("add-news-form"),list:document.getElementById("list-news"),title:document.getElementById("title"),date:document.getElementById("date"),text:document.getElementById("text"),image:document.getElementById("image"),imagePreview:document.getElementById("image-preview")},d="https://via.placeholder.com/200";function v(e){n.list.inserAdjacentHTML(P(e)),console.info("Post was creating")}function P(e){return`
<div class="col">
<div class="card h-100">
<img src="${e.image}" class="card-img-top" alt="">
<div class="card-body">
<h5 class="card-title">${e.title}</h5>
<p class="card-text"><small class="text-body-secondary">${e.date}</small></p>
<p class="card-text">${e.text}</p>
</div>
</div>
</div>`}async function u(){if(console.info("Try to load data"),!n.list)return;const e=await g();n.list.innerHTML="",e.forEach(t=>{n.table.appendChild(v(t))})}async function L(e,t,o,a){console.info("Try to add item");const i=await h(e,t,o,a);console.info("Added"),console.info(i),u()}async function b(e,t,o,a){console.info("Try to update item");const i=await y(e,t,o,a);console.info("Updated"),console.info(i),u()}async function f(e){const t=new FileReader;return new Promise((o,a)=>{t.onloadend=()=>{const i=t.result;o(i)},t.onerror=()=>{a(new Error("oops, something went wrong with the file reader."))},t.readAsDataURL(e)})}async function x(){const e=n.image.files[0],t=await f(e);console.info("base64 ",t),n.imagePreview.src=t}async function T(){console.info("linesPageForm");const e=()=>location.assign("/news.html");n.image.addEventListener("change",()=>x());const o=new URLSearchParams(location.search).get("id");if(o)try{const a=await p(o);n.title.value=a.title,n.date.value=a.date,n.text.value=a.text,n.imagePreview.src=a.image?a.image:d}catch{e()}n.form.addEventListener("submit",async a=>{if(console.info("Form onSubmit"),a.preventDefault(),a.stopPropagation(),!n.form.checkValidity())return;let i="";if(n.imagePreview.src!==d){const s=await(await fetch(n.imagePreview.src)).blob();i=await f(s)}o?await b(o,n.text.value,n.title.value,n.date.value):await L(n.text.value,n.title.value,n.date.value,i),e()})}document.addEventListener("DOMContentLoaded",()=>{w(),T()});
//# sourceMappingURL=add_news-1146ed73.js.map

1
dist/assets/add_news-1146ed73.js.map vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/contacts-5b08b68b.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"contacts-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

BIN
dist/assets/fa-brands-400-3fe890d0.woff2 vendored Normal file

Binary file not shown.

BIN
dist/assets/fa-brands-400-c7ae37d3.ttf vendored Normal file

Binary file not shown.

BIN
dist/assets/fa-regular-400-fdc1f753.ttf vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
dist/assets/fa-solid-900-6d53c706.ttf vendored Normal file

Binary file not shown.

BIN
dist/assets/fa-solid-900-d27bc752.woff2 vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
dist/assets/icpc-6a6ed0d7.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

BIN
dist/assets/logo-f57f18ed.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

1
dist/assets/main-5b08b68b.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"main-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

1
dist/assets/news-5b08b68b.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"news-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

2
dist/assets/registration-fe02a00e.js vendored Normal file
View File

@ -0,0 +1,2 @@
import{v as t}from"./validation-959284d8.js";/* empty css */document.addEventListener("DOMContentLoaded",()=>{t()});
//# sourceMappingURL=registration-fe02a00e.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"registration-fe02a00e.js","sources":["../../registration.html?html-proxy&index=1.js"],"sourcesContent":["\n import validation from \"./js/validation.js\";\n\n document.addEventListener('DOMContentLoaded', () => {\n validation();\n });\n "],"names":["validation"],"mappings":"yEAGM,SAAS,iBAAiB,mBAAoB,IAAM,CAChDA,GACV,CAAO"}

BIN
dist/assets/robokross-96e78ce5.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

1
dist/assets/style-79867121.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"style-79867121.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

6
dist/assets/style-ea88520f.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"version":3,"file":"university-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

6
dist/assets/validation-959284d8.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

5
dist/assets/validation-dfd4cadb.css vendored Normal file

File diff suppressed because one or more lines are too long

73
dist/contacts.html vendored Normal file
View File

@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/assets/style-ea88520f.css">
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 2em">
<h3>Обратная связь</h3>
Вы можете задать нам любой вопрос, обратиться с предложением или сообщить о проблеме. Для этого заполните форму ниже.<br>
Мы с радостью вам ответим!<br>
<form id="contacts-form" method="post" style="text-align: left; line-height: 1.3em; margin-left: 3%;">
<label for="name">Имя:</label><br>
<input class="input" type="text" name="name" placeholder="Имя" id="name"><br>
<span id="error-name" style="color: red"></span>
<br>
<label for="email">Email:</label><br>
<input class="input" type="email" name="email" placeholder="Емэйл" id="email"><br>
<span id="error-email" style="color: red"></span>
<br>
<label for="theme">Тема:</label><br>
<input class="input" type="text" name="theme" placeholder="Тема вопроса" id="theme"><br>
<span id="error-theme" style="color: red"></span>
<br>
<label for="question">Ваш вопрос:</label><br>
<textarea class="input-textarea" type="text" name="question" cols="3" rows="7" id="question"></textarea><br>
<span id="error-question" style="color: red"></span>
<br>
<input type="submit" style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary" name="submit" value="Отправить">
</form>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

90
dist/index.html vendored Normal file
View File

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/assets/style-ea88520f.css">
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 1.7em">
<center>
Добро пожаловать на сайт<br>
<b>Государственного политехнического университета</b>!<br>
На нашем сайте вы можете просмотреть <a href="news.html">последние новости</a>, прочитать <a href="university.html">информацию о нас</a>, и многое другое....<br>
<br>
<div id="carouselExampleCaptions" class="carousel carousel-dark slide">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="/assets/Students1-ddc3a6e6.jpg" class="d-block w-50" alt="...">
<div class="carousel-caption d-none d-md-block">
</div>
</div>
<div class="carousel-item">
<img src="/assets/Students2-8684e38a.jpg" class="d-block w-50" alt="...">
<div class="carousel-caption d-none d-md-block">
</div>
</div>
<div class="carousel-item">
<img src="/assets/Students3-5887bf87.jpg" class="d-block w-50" alt="...">
<div class="carousel-caption d-none d-md-block">
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</center>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

102
dist/news.html vendored Normal file
View File

@ -0,0 +1,102 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/assets/style-ea88520f.css">
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: justify; line-height: 2em">
<h3 style="text-align: center;">Новости университета</h3>
<br>
<div class="row row-cols-1 row-cols-md-3 g-4">
<div class="col">
<div class="card h-100">
<img src="/assets/icpc-6a6ed0d7.jpg" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">Чемпионат ICPC</h5>
<p class="card-text"><small class="text-body-secondary">10 ноября, 2023</small></p>
<p class="card-text">Студенты выступят на Чемпионате мира по программированию в Северной Евразии.</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<img src="/assets/Halloween-dcefb2d3.jpg" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">Хеллоуин</h5>
<p class="card-text"><small class="text-body-secondary">31 октября, 2023</small></p>
<p class="card-text">На территории университета студенты отпраздновали Хеллоуин.</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<img src="/assets/robokross-96e78ce5.jpg" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">Робокросс</h5>
<p class="card-text"><small class="text-body-secondary">8 сентября, 2023</small></p>
<p class="card-text">Студенты показали свои первые наработки для предстоящего Робокросса. Увиденное впечатляет!</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<img src="/assets/1september-9ac65a17.jpg" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">День знаний</h5>
<p class="card-text"><small class="text-body-secondary">1 сентября, 2023</small></p>
<p class="card-text">Университет торжественно отпраздновал День Знаний. На мероприятии присутствовало более 900 абитуриентов.</p>
</div>
</div>
</div>
<div id="list-news"></div>
</div>
<br><br>
<form action="add_news.html">
<button style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Добавить новость</button>
</form>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

118
dist/registration.html vendored Normal file
View File

@ -0,0 +1,118 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<script type="module" crossorigin src="/assets/registration-fe02a00e.js"></script>
<link rel="modulepreload" crossorigin href="/assets/validation-959284d8.js">
<link rel="stylesheet" href="/assets/validation-dfd4cadb.css">
<link rel="stylesheet" href="/assets/style-ea88520f.css">
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 1.3em">
<h3>Регистрация</h3>
Регистрация на нашем сайте позволит Вам стать его полноценным участником.<br>
Вы сможете просматривать расписание групп, свои оценки и учебный план.
В случае возникновения проблем с регистрацией, обратитесь к <a href="contacts.html">администратору</a>.
<br><br>
<div class="container-xl px-4 py-2 text-center">
<form id="registration-form" class="needs-validation" action="./index.html" method="get" novalidate>
<div class="row" margin="">
<div class="col-lg-6 col-xl-4">
<div class="p-3">
<label for="name" class="form-label">Имя:</label><br>
<input class="form-control" type="text" name="name" placeholder="Имя" id="name" required>
<br>
<br>
<label for="email">Email:</label><br>
<input class="form-control" type="email" name="email" placeholder="Емэйл" id="email" required>
<br>
</div>
</div>
<div class="col-lg-6 col-xl-4">
<div class="p-3">
<label for="lastname" class="form-label">Фамилия:</label><br>
<input class="form-control" type="text" name="lastname" placeholder="Фамилия" id="lastname" required>
<br>
<br>
<label for="pass" class="form-label">Пароль:</label><br>
<input class="form-control" type="password" name="pass" placeholder="Пароль" id="pass" required>
<br>
</div>
</div>
<div class="col-lg-6 col-xl-4">
<div class="p-3">
<label for="birth-year" class="form-label">Дата рождения:</label><br>
<input class="form-control" type="date" name="birth-year" placeholder="Год рождения" id="birth-year" required>
<br>
<br>
<label for="repass" class="form-label">Проверка пароля:</label><br>
<input class="form-control" type="password" name="repass" placeholder="Проверка пароля" id="repass" required>
<br>
</div>
</div>
<div class="col-14">
<div class="form p-3">
<h5>Ваш статус:</h5>
<input class="form-check-input" type="radio" name="state" id="student" value="Студент" required>
<label for="student" style="margin-right: 20px;">Студент</label>
<input class="form-check-input" type="radio" name="state" id="teacher" value="Преподаватель" required>
<label for="teacher">Преподаватель</label>
<br>
</div>
</div>
<br><br>
<div class="col-14">
<div class="p-3">
<button type="submit" class="btn btn-primary">Зарегистрироваться</button>
</div>
</div>
</div>
</form>
</div>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

65
dist/university.html vendored Normal file
View File

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/assets/style-ea88520f.css">
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: justify; line-height: 2em; text-indent: 25px;">
<h3 style="text-align: center;">История ГПУ</h3>
<p>29 мая 2001 года решением правительства РФ был создан Государственный политехнический университет. Новый ВУЗ был образован на базе Тольяттинского политехнического института и Тольяттинского филиала Самарского государственного педагогического университета.</p>
<p>История Политехнического института начинается с вечернего отделения Куйбышевского индустриального института, созданного при Куйбышевгидросторе в 1951 году. Строительство ГЭС остро нуждалось в квалифицированных инженерах. Руководил факультетом Д.Е. Чуркин, а в 1953 году его сменил к.т.н. В.Н. Зубков.</p>
<p>1 сентября 1951 года начались занятия 150 студентов. Первое время преподаватели приезжали из Куйбышева, лекции читали многие инженеры-практики со стройки, и сам начальник КГС И.В. Комзин. На отделении было всего два штатных сотрудника: В.Н. Зубков и А.Э. Лившиц. В 1962 году число сотрудников возросло до 90 человек, 8 из них имели ученую степень кандидатов наук.</p>
<p>В 1956 году состоялся первый выпуск инженеров-гидростроителей и инженеров-электриков. Постепенно открывались новые специальности, в 1959 году получили дипломы первые инженеры-механики. В 1961 было открыто дневное обучение.</p>
<p>В 1961 году были открыты механический факультет (декан В.Н. Зубков) и химико-электротехнический (декан Б.Н. Рачинский). В 1964 году был создан химико-технологический факультет. В 1966 году были выпущены первые инженеры-технологи химического производства. В 1966 году на трех факультетах обучались 2800 студентов.</p>
<p>В октябре 1966 года на базе филиала был образован Тольяттинский политехнический институт. Немалую роль в организации института сыграли потребности в кадрах строящегося ВАЗа, а также наличие материальной базы.</p>
<p>Первым ректором нового ВУЗа был назначен профессор, доктор технических наук видный ученый из Куйбышева Арон Наумович Резников. Он сумел привлечь новые квалифицированные кадры и создал современный институт с высоким учебным и научным потенциалом. Были созданы 13 новых кафедр, в том числе единственная в стране кафедра промышленной пайки. Благодаря А.Н. Резникову через 10 лет в ТПИ работали 7 докторов наук и 151 кандидат наук. За это время почти в 2 раза возрос набор студентов, и в 10 раз возросли объемы научных работ. Наиболее успешными были 80-е гг., когда учёные ТПИ осваивали в год около 3 млн. руб.</p>
<p>Ежегодно ученые института получали десятки свидетельств на изобретения, всего же со времени создания ТПИ было получено 1134 авторских свидетельства на изобретения.</p>
<p>ТГУ современный инновационный вуз. В 2010 году университет стал победителем конкурса Правительства РФ на Премию качества за 2009 год, дважды в 2004 и 2011 году ТГУ стал лауреатом конкурса «Европейское качество» в группе «100 лучших вузов России». В 2011 году ТГУ завоевал по итогам конкурса СНГ за достижения в области качества оказания услуг приз «Признание делового совершенства». Ректор ТГУ М.М. Криштал в 2011 г. удостоен звания «Российский лидер качества», награждён дипломом и медалью, такую высокую оценку деятельности дала «Всероссийская организация качества».</p>
<p>В 2014 году в составе ТГУ 11 институтов, включая институт военного обучения, 44 кафедры, институт дистанционного обучения.</p>
<br>
<img src="/assets/University-f1dcd661.JPG" height="250px">
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

90
index.html Normal file
View File

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/style.css">
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 1.7em">
<center>
Добро пожаловать на сайт<br>
<b>Государственного политехнического университета</b>!<br>
На нашем сайте вы можете просмотреть <a href="news.html">последние новости</a>, прочитать <a href="university.html">информацию о нас</a>, и многое другое....<br>
<br>
<div id="carouselExampleCaptions" class="carousel carousel-dark slide">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="resourses/Students1.jpg" class="d-block w-50" alt="...">
<div class="carousel-caption d-none d-md-block">
</div>
</div>
<div class="carousel-item">
<img src="resourses/Students2.jpg" class="d-block w-50" alt="...">
<div class="carousel-caption d-none d-md-block">
</div>
</div>
<div class="carousel-item">
<img src="resourses/Students3.jpg" class="d-block w-50" alt="...">
<div class="carousel-caption d-none d-md-block">
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</center>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

92
js/posts-rest-api.js Normal file
View File

@ -0,0 +1,92 @@
// модуль для работы с REST API сервера
// адрес сервера
const serverUrl = "http://localhost:8081";
// функция возвращает объект нужной структуры для отправки на сервер
function createLineObject(title, date, text, tage, image) {
return {
id: 0,
title,
date,
text,
tage,
image,
};
}
// обращение к серверу для получения всех записей (get)
export async function getAllLines() {
const response = await fetch(`${serverUrl}/news`);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// обращение к серверу для получения записи по первичному ключу (id) (get)
// id передается в качестве части пути URL get-запроса
export async function getLine(id) {
const response = await fetch(`${serverUrl}/news/${id}`);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// обращение к серверу для создания записи (post)
// объект отправляется в теле запроса (body)
export async function createLine(title, date, text, tage, image) {
const itemObject = createLineObject(title, date, text, tage, image);
const options = {
method: "POST",
body: JSON.stringify(itemObject),
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
},
};
const response = await fetch(`${serverUrl}/news`, options);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// обращение к серверу для обновления записи по id (put)
// объект отправляется в теле запроса (body)
// id передается в качестве части пути URL get-запроса
export async function updateLine(id, title, date, text, tage, image) {
const newObject = createLineObject(title, date, text, tage, image);
const options = {
method: "PUT",
body: JSON.stringify(newObject),
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
},
};
const response = await fetch(`${serverUrl}/news/${id}`, options);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// обращение к серверу для удаления записи по id (delete)
// id передается в качестве части пути URL get-запроса
export async function deleteLine(id) {
const options = {
method: "DELETE",
};
const response = await fetch(`${serverUrl}/news/${id}`, options);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}

73
js/posts-ui.js Normal file
View File

@ -0,0 +1,73 @@
// модуль для работы с элементами управления
// объект для удобного получения элементов
// при обращении к атрибуту объекта вызывается
// нужная функция для поиска элемента
export const cntrls = {
table: document.querySelector("#items-table tbody"),
form: document.getElementById("add-news-form"),
list: document.getElementById("list-news"),
title: document.getElementById("title"),
date: document.getElementById("date"),
text: document.getElementById("text"),
tage: document.getElementById("tage"),
image: document.getElementById("image"),
imagePreview: document.getElementById("image-preview"),
};
// Дефолтное превью
export const imagePlaceholder = "https://via.placeholder.com/200";
// функция создает ссылку (a) для таблицы
// содержимое тега a заполняется необходимой иконкой (icon)
// при нажатии вызывается callback
// ссылка "оборачивается" тегом td
// <td><a href="#" onclick="callback()"><i class="fa-solid icon"></i></a></td>
function createTableAnchor(icon, callback) {
const i = document.createElement("i");
i.classList.add("fa-solid", icon);
const a = document.createElement("a");
a.href = "#";
a.appendChild(i);
a.onclick = (event) => {
// чтобы в URL не добавлялась решетка
event.preventDefault();
event.stopPropagation();
callback();
};
const td = document.createElement("td");
td.appendChild(a);
return td;
}
// функция создает колонку таблицы с текстом value
// <td>value</td>
function createTableColumn(value) {
const td = document.createElement("td");
td.textContent = value;
return td;
}
// функция создает строку таблицы
export function createTableRow(item, index, editPageCallback, deleteCallback) {
const rowNumber = document.createElement("th");
rowNumber.scope = "row";
rowNumber.textContent = index + 1;
const row = document.createElement("tr");
row.id = `line-${item.id}`;
row.appendChild(rowNumber);
row.appendChild(createTableColumn(item.title));
row.appendChild(createTableColumn(item.date));
row.appendChild(createTableColumn(item.text));
row.appendChild(createTableColumn(item.tage));
// редактировать на странице page-edit
row.appendChild(createTableAnchor("fa-pen-to-square", editPageCallback));
// удаление
row.appendChild(createTableAnchor("fa-trash", deleteCallback));
return row;
}

279
js/posts.js Normal file
View File

@ -0,0 +1,279 @@
// модуль с логикой
import {
getAllLines, getLine, createLine, updateLine, deleteLine,
} from "./posts-rest-api";
import {
cntrls, imagePlaceholder, createTableRow,
} from "./posts-ui";
export async function drawLinesTable() {
console.info("Try to load data");
if (!cntrls.table) {
return;
}
// вызов метода REST API для получения всех записей
const data = await getAllLines();
// очистка содержимого table
// удаляется все, что находится между тегами <table></table>
// но не атрибуты
cntrls.table.innerHTML = "";
data.forEach((item, index) => {
cntrls.table.appendChild(
createTableRow(
item,
index,
() => location.assign(`add_news.html?id=${item.id}`),
() => removeLine(item.id),
),
);
});
}
async function addLine(title, date, text, tage, image) {
console.info("Try to add item");
// вызов метода REST API для добавления записи
const data = await createLine(title, date, text, tage, image);
console.info("Added");
console.log(data);
drawLinesTable();
}
async function editLine(id, title, date, text, tage, image) {
console.info("Try to update item");
// вызов метода REST API для обновления записи
const data = await updateLine(id, title, date, text, tage, image);
console.info("Updated");
console.log(data);
drawLinesTable();
}
async function removeLine(id) {
if (!confirm("Do you really want to remove this item?")) {
console.info("Canceled");
return;
}
console.info("Try to remove item");
// вызов метода REST API для удаления записи
const data = await deleteLine(id);
console.log(data);
// загрузка и заполнение table
drawLinesTable();
}
async function readFile(file) {
const reader = new FileReader();
return new Promise((resolve, reject) => {
// 2. "Возвращаем" содержимое когда файл прочитан
// через вызов resolve
// Если не использовать Promise, то всю работу по взаимодействию
// с REST API пришлось бы делать в обработчике (callback) функции
// onloadend
reader.onloadend = () => {
const fileContent = reader.result;
// Здесь могла бы быть работа с REST API
// Чтение заканчивает выполняться здесь
resolve(fileContent);
};
// 3. Возвращаем ошибку
reader.onerror = () => {
// Или здесь в случае ошибки
reject(new Error("oops, something went wrong with the file reader."));
};
// Шаг 1. Сначала читаем файл
// Чтение начинает выполняться здесь
reader.readAsDataURL(file);
});
}
// функция для обновления блока с превью выбранного изображения
async function updateImagePreview() {
// получение выбранного файла
// возможен выбор нескольких файлов, поэтому необходимо получить только первый
const file = cntrls.image.files[0];
// чтение содержимого файла в виде base64 строки
const fileContent = await readFile(file);
console.info("base64 ", fileContent);
// обновление атрибута src для тега img с id image-preview
cntrls.imagePreview.src = fileContent;
}
// Функция для обработки создания и редактирования элементов таблицы через страницу page-edit.html
export async function linesPageForm() {
console.info("linesPageForm");
// func1 = (id) => {} аналогично function func1(id) {}
const goBack = () => location.assign("/admin.html");
// Вызов функции обновления превью изображения при возникновении
// события onchange в тэге input с id image
cntrls.image.addEventListener("change", () => updateImagePreview());
// получение параметров GET-запроса из URL
// параметры перечислены после символа ? (?id=1&color=black&...)
const urlParams = new URLSearchParams(location.search);
// получение значения конкретного параметра (id)
// указан только при редактировании
const currentId = urlParams.get("id");
// если id задан
if (currentId) {
try {
// вызов метода REST API для получения записи по первичному ключу(id)
const line = await getLine(currentId);
// заполнение формы для редактирования
cntrls.title.value = line.title;
cntrls.date.value = line.date;
cntrls.text.value = line.text;
cntrls.tage.value = line.tage;
// заполнение превью
// Если пользователь выбрал изображение, то оно загружается
// в тэг image с id image - preview
// иначе устанавливается заглушка, адрес которой указан в imagePlaceholder
cntrls.imagePreview.src = line.image ? line.image : imagePlaceholder;
} catch {
goBack();
}
}
// обработчик события отправки формы
cntrls.form.addEventListener("submit", async (event) => {
console.info("Form onSubmit");
// отключение стандартного поведения формы при отправке
// при отправке страница обновляется и JS перестает работать
event.preventDefault();
event.stopPropagation();
// если форма не прошла валидацию, то ничего делать не нужно
if (!cntrls.form.checkValidity()) {
return;
}
let imageBase64 = "";
// Получение выбранного пользователем изображения в виде base64 строки
// Если пользователь ничего не выбрал, то не нужно сохранять в БД
// дефолтное изображение
if (cntrls.imagePreview.src !== imagePlaceholder) {
// Загрузка содержимого атрибута src тэга img с id image-preview
// Здесь выполняется HTTP запрос с типом GET
const result = await fetch(cntrls.imagePreview.src);
// Получение из HTTP-ответа бинарного содержимого
const blob = await result.blob();
// Получение base64 строки для файла
// Здесь выполняется Promise из функции readFile
// Promise позволяет писать линейный код для работы с асинхронными методами
// без использования обработчиков (callback) с помощью await
imageBase64 = await readFile(blob);
}
// если значение параметра запроса не задано,
// то необходимо выполнить добавление записи
// иначе обновление записи
if (!currentId) {
await addLine(
cntrls.title.value,
cntrls.date.value,
cntrls.text.value,
cntrls.tage.value,
imageBase64,
);
} else {
await editLine(
currentId,
cntrls.title.value,
cntrls.date.value,
cntrls.text.value,
cntrls.tage.value,
imageBase64,
);
}
goBack();
});
}
export async function UpdateNews() {
const data = await getAllLines();
data.reverse();
const div0 = document.createElement("div");
div0.setAttribute("class", "row row-cols-1 row-cols-md-3 g-4");
cntrls.list.appendChild(div0);
data.forEach((item) => {
UpdateNew(div0, item);
});
}
/* <div class="col">
<div class="card h-100">
<img src="${elem.image}" class="card-img-top" alt="">
<div class="card-body">
<h5 class="card-title">${elem.title}</h5>
<p class="card-text"><small class="text-body-secondary">${elem.date}</small></p>
<p class="card-text">${elem.text}</p>
<тег>
</div>
</div>
</div> */
async function UpdateNew(div0, item) {
console.info(item.id + " was created");
// колонка
const div1 = document.createElement("div");
div1.setAttribute("class", "col");
// пост
const div2 = document.createElement("div");
div2.setAttribute("class", "card h-100");
// картинка
const image = document.createElement("img");
image.setAttribute("src", item.image);
image.setAttribute("width", "100%");
image.setAttribute("height", "330px");
image.setAttribute("alt", item.title);
// card-body
const div3 = document.createElement("div");
div3.setAttribute("class", "card-body");
// Заголовок
const h5 = document.createElement("h5");
h5.setAttribute("class", "card-title");
h5.textContent = item.title;
// для даты
const p1 = document.createElement("p");
p1.setAttribute("class", "card-text");
const small1 = document.createElement("small");
p1.setAttribute("class", "text-body-secondary");
p1.textContent = item.date;
// для текста
const p2 = document.createElement("p");
p2.setAttribute("class", "card-text");
p2.textContent = item.text;
// для тега
const small2 = document.createElement("small");
small2.setAttribute("class", "text-body-secondary");
// ссылка для тега
let aTages = item.tage.split(" ");
for (let i = 0; i < aTages.length; i++) {
const element = aTages[i];
const a1 = document.createElement("a");
a1.setAttribute("href", "#");
a1.textContent = "#" + element + " ";
small2.appendChild(a1);
}
div0.appendChild(div1);
div1.appendChild(div2);
div2.appendChild(image);
div2.appendChild(div3);
div3.appendChild(h5);
div3.appendChild(p1);
p1.appendChild(small1);
div3.appendChild(p2);
div3.appendChild(small2);
}

26
js/validation.js Normal file
View File

@ -0,0 +1,26 @@
/* eslint-disable linebreak-style */
// модуль используется для валидации форма на странице
function validation() {
// поиск всех форма с классом .needs-validation
const forms = document.querySelectorAll("form.needs-validation");
for (let i = 0; i < forms.length; i += 1) {
const form = forms[i];
// для каждой формы добавляется обработчик события отправки
form.addEventListener("submit", (event) => {
// если форма не прошла валидацию
// то выключить стандартное действие
if (!form.checkValidity()) {
event.preventDefault();
// предотвращает распространение preventDefault
// на другие объекты
event.stopPropagation();
}
// добавляет к форме класс was-validated
form.classList.add("was-validated");
});
}
}
export default validation;

14
jsconfig.json Normal file
View File

@ -0,0 +1,14 @@
{
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "Node",
"target": "ES2020",
"jsx": "preserve",
"strictNullChecks": true,
"strictFunctionTypes": true
},
"exclude": [
"node_modules",
"**/node_modules/*"
]
}

64
news.html Normal file
View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/style.css">
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: justify; line-height: 2em">
<h3 style="text-align: center;">Новости университета</h3>
<br>
<div id="list-news"></div>
<br><br>
<form action="admin.html">
<button style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Админская страница</button>
</form>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
<script type = "module">
import { UpdateNews } from "./js/posts.js";
document.addEventListener('DOMContentLoaded', () => {
UpdateNews();
});
</script>
</body>
</html>

4700
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

27
package.json Normal file
View File

@ -0,0 +1,27 @@
{
"name": "TSTU",
"version": "1.0.0",
"type": "module",
"description": "internet-programming 2023",
"scripts": {
"start": "vite",
"serve":"http-server -p 5501 ./dist/",
"build": "vite build",
"rest": "json-server --watch data.json -p 8081",
"dev": "npm-run-all --parallel rest start",
"prod": "npm-run-all build --parallel serve rest"
},
"dependencies": {
"bootstrap": "5.2.1",
"@fortawesome/fontawesome-free": "6.2.0"
},
"devDependencies": {
"vite": "4.4.9",
"eslint": "8.50.0",
"eslint-config-airbnb-base": "15.0.0",
"eslint-plugin-import": "2.28.1",
"http-server": "14.1.1",
"json-server": "0.17.4",
"npm-run-all": "4.1.5"
}
}

120
registration.html Normal file
View File

@ -0,0 +1,120 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/style.css">
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: center; line-height: 1.3em">
<h3>Регистрация</h3>
Регистрация на нашем сайте позволит Вам стать его полноценным участником.<br>
Вы сможете просматривать расписание групп, свои оценки и учебный план.
В случае возникновения проблем с регистрацией, обратитесь к <a href="contacts.html">администратору</a>.
<br><br>
<div class="container-xl px-4 py-2 text-center">
<form id="registration-form" class="needs-validation" action="./index.html" method="get" novalidate>
<div class="row" margin="">
<div class="col-lg-6 col-xl-4">
<div class="p-3">
<label for="name" class="form-label">Имя:</label><br>
<input class="form-control" type="text" name="name" placeholder="Имя" id="name" required>
<br>
<br>
<label for="email" class="form-label">Email:</label><br>
<input class="form-control" type="email" name="email" placeholder="Емэйл" id="email" required>
<br>
</div>
</div>
<div class="col-lg-6 col-xl-4">
<div class="p-3">
<label for="lastname" class="form-label">Фамилия:</label><br>
<input class="form-control" type="text" name="lastname" placeholder="Фамилия" id="lastname" required>
<br>
<br>
<label for="pass" class="form-label">Пароль:</label><br>
<input class="form-control" type="password" name="pass" placeholder="Пароль" id="pass" required>
<br>
</div>
</div>
<div class="col-lg-6 col-xl-4">
<div class="p-3">
<label for="birth-year" class="form-label">Дата рождения:</label><br>
<input class="form-control" type="date" name="birth-year" placeholder="Год рождения" id="birth-year" required>
<br>
<br>
<label for="repass" class="form-label">Проверка пароля:</label><br>
<input class="form-control" type="password" name="repass" placeholder="Проверка пароля" id="repass" required>
<br>
</div>
</div>
<div class="col-14">
<div class="form p-3">
<h5>Ваш статус:</h5>
<input class="form-check-input" type="radio" name="state" id="student" value="Студент" required>
<label for="student" style="margin-right: 20px;">Студент</label>
<input class="form-check-input" type="radio" name="state" id="teacher" value="Преподаватель" required>
<label for="teacher">Преподаватель</label>
<br>
</div>
</div>
<br><br>
<div class="col-14">
<div class="p-3">
<button type="submit" class="btn btn-primary">Зарегистрироваться</button>
</div>
</div>
</div>
</form>
</div>
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
<script type="module">
import validation from "./js/validation.js";
document.addEventListener('DOMContentLoaded', () => {
validation();
});
</script>
</body>
</html>

BIN
resourses/1september.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
resourses/Halloween.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

BIN
resourses/Students1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
resourses/Students2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
resourses/Students3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
resourses/University.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

BIN
resourses/icpc.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

BIN
resourses/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
resourses/robokross.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

65
university.html Normal file
View File

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГПУ</title>
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/style.css">
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</head>
<body>
<div id="header">
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
<a href="index.html">Государственный политехнический университет</a>
</div>
<nav class="navbar navbar-expand-md bg-purple" >
<div class="container-fluid">
<a class="navbar-brand" href="university.html">Об университете</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="content" style="text-align: justify; line-height: 2em; text-indent: 25px;">
<h3 style="text-align: center;">История ГПУ</h3>
<p>29 мая 2001 года решением правительства РФ был создан Государственный политехнический университет. Новый ВУЗ был образован на базе Тольяттинского политехнического института и Тольяттинского филиала Самарского государственного педагогического университета.</p>
<p>История Политехнического института начинается с вечернего отделения Куйбышевского индустриального института, созданного при Куйбышевгидросторе в 1951 году. Строительство ГЭС остро нуждалось в квалифицированных инженерах. Руководил факультетом Д.Е. Чуркин, а в 1953 году его сменил к.т.н. В.Н. Зубков.</p>
<p>1 сентября 1951 года начались занятия 150 студентов. Первое время преподаватели приезжали из Куйбышева, лекции читали многие инженеры-практики со стройки, и сам начальник КГС И.В. Комзин. На отделении было всего два штатных сотрудника: В.Н. Зубков и А.Э. Лившиц. В 1962 году число сотрудников возросло до 90 человек, 8 из них имели ученую степень кандидатов наук.</p>
<p>В 1956 году состоялся первый выпуск инженеров-гидростроителей и инженеров-электриков. Постепенно открывались новые специальности, в 1959 году получили дипломы первые инженеры-механики. В 1961 было открыто дневное обучение.</p>
<p>В 1961 году были открыты механический факультет (декан В.Н. Зубков) и химико-электротехнический (декан Б.Н. Рачинский). В 1964 году был создан химико-технологический факультет. В 1966 году были выпущены первые инженеры-технологи химического производства. В 1966 году на трех факультетах обучались 2800 студентов.</p>
<p>В октябре 1966 года на базе филиала был образован Тольяттинский политехнический институт. Немалую роль в организации института сыграли потребности в кадрах строящегося ВАЗа, а также наличие материальной базы.</p>
<p>Первым ректором нового ВУЗа был назначен профессор, доктор технических наук видный ученый из Куйбышева Арон Наумович Резников. Он сумел привлечь новые квалифицированные кадры и создал современный институт с высоким учебным и научным потенциалом. Были созданы 13 новых кафедр, в том числе единственная в стране кафедра промышленной пайки. Благодаря А.Н. Резникову через 10 лет в ТПИ работали 7 докторов наук и 151 кандидат наук. За это время почти в 2 раза возрос набор студентов, и в 10 раз возросли объемы научных работ. Наиболее успешными были 80-е гг., когда учёные ТПИ осваивали в год около 3 млн. руб.</p>
<p>Ежегодно ученые института получали десятки свидетельств на изобретения, всего же со времени создания ТПИ было получено 1134 авторских свидетельства на изобретения.</p>
<p>ТГУ современный инновационный вуз. В 2010 году университет стал победителем конкурса Правительства РФ на Премию качества за 2009 год, дважды в 2004 и 2011 году ТГУ стал лауреатом конкурса «Европейское качество» в группе «100 лучших вузов России». В 2011 году ТГУ завоевал по итогам конкурса СНГ за достижения в области качества оказания услуг приз «Признание делового совершенства». Ректор ТГУ М.М. Криштал в 2011 г. удостоен звания «Российский лидер качества», награждён дипломом и медалью, такую высокую оценку деятельности дала «Всероссийская организация качества».</p>
<p>В 2014 году в составе ТГУ 11 институтов, включая институт военного обучения, 44 кафедры, институт дистанционного обучения.</p>
<br>
<img src="resourses/University.JPG" height="250px">
</div>
<div id="footer">
<ul>
<li>Адреса и контакты:</li>
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
<li>+7 (8332) 43-06-55</li>
</ul>
</div>
</body>
</html>

21
vite.config.js Normal file
View File

@ -0,0 +1,21 @@
import { resolve } from "path";
// eslint-disable-next-line import/no-extraneous-dependencies
import { defineConfig } from "vite";
export default defineConfig({
build: {
sourcemap: true,
emptyOutDir: true,
rollupOptions: {
input: {
main: resolve(__dirname, "index.html"),
abiturient: resolve(__dirname, "abiturient.html"),
add_news: resolve(__dirname, "add_news.html"),
contacts: resolve(__dirname, "contacts.html"),
news: resolve(__dirname, "news.html"),
registration: resolve(__dirname, "registration.html"),
university: resolve(__dirname, "university.html"),
},
},
},
});

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.