diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 0000000..91ac7b9
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,24 @@
+module.exports = {
+ root: true,
+ env: { browser: true, es2020: true },
+ extends: [
+ //'airbnb-base',
+ 'plugin:react/recommended',
+ 'plugin:react/jsx-runtime',
+ 'plugin:react-hooks/recommended',
+ ],
+ ignorePatterns: ['dist', '.eslintrc.cjs'],
+ parserOptions: { ecmaVersion: 12, sourceType: 'module' },
+ settings: { react: { version: '18.2' } },
+ plugins: ['react-refresh'],
+ rules: {
+ 'react-refresh/only-export-components': [
+ 'warn',
+ { allowConstantExport: true },
+ ],
+ 'indent': 'off',
+ 'no-console': 'off',
+ 'arrow-body-style': 'off',
+ 'implicit-arrow-linebreak': 'off',
+ },
+}
diff --git a/README.md b/README.md
index 5fc4cc0..f768e33 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,8 @@
-# PIbd-22_Internet_programming
+# React + Vite
-Интернет-программирование
\ No newline at end of file
+This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
+
+Currently, two official plugins are available:
+
+- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
+- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..1cc82da
--- /dev/null
+++ b/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ Тольяттинский государственный университет
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jsconfig.json b/jsconfig.json
new file mode 100644
index 0000000..458cf9b
--- /dev/null
+++ b/jsconfig.json
@@ -0,0 +1,14 @@
+{
+ "compilerOptions": {
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "target": "ES2020",
+ "jsx": "react",
+ "strictNullChecks": true,
+ "strictFunctionTypes": true
+ },
+ "exclude": [
+ "node_modules",
+ "**/node_modules/*"
+ ]
+}
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..f4d7825
--- /dev/null
+++ b/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "univercity",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "description": "internet-programming 2023",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-router-dom": "^6.18.0",
+ "bootstrap": "^5.3.2",
+ "react-bootstrap": "^2.9.1",
+ "react-bootstrap-icons": "^1.10.3",
+ "prop-types": "^15.8.1"
+ },
+ "devDependencies": {
+ "@types/react": "^18.2.15",
+ "@types/react-dom": "^18.2.7",
+ "@vitejs/plugin-react": "^4.0.3",
+ "eslint": "^8.45.0",
+ "eslint-config-airbnb-base": "^15.0.0",
+ "eslint-plugin-react": "^7.32.2",
+ "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-refresh": "^0.4.3",
+ "vite": "^4.4.5"
+ }
+}
\ No newline at end of file
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..a87fe7c
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/src/App.css b/src/App.css
new file mode 100644
index 0000000..a6fd221
--- /dev/null
+++ b/src/App.css
@@ -0,0 +1,53 @@
+html {
+ width: 100%;
+}
+
+body {
+ height: 100%;
+ margin: 0px;
+ padding: 0px;
+ background-color: #e5e5e5;
+ font-family: Arial;
+ /* для закрепления подвала внизу страницы*/
+ display: flex;
+ flex-direction: column;
+}
+
+@media (max-width: 800px) {
+ body {
+ font-size: small;
+ }
+}
+
+.btn {
+ background-color: #012362;
+ border: 0px;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ padding-left: 20px;
+ padding-right: 20px;
+}
+
+table {
+ font-size: 13pt;
+ border: 2px solid;
+ border-left: 10px solid;
+ border-right: 10px solid;
+}
+
+@media (max-width: 800px) {
+ table {
+ font-size: 10pt;
+ }
+}
+
+@media (max-width: 500px) {
+ table {
+ font-size: 8pt;
+ }
+}
+
+thead {
+ font-style: italic;
+}
\ No newline at end of file
diff --git a/src/App.jsx b/src/App.jsx
new file mode 100644
index 0000000..48a63ba
--- /dev/null
+++ b/src/App.jsx
@@ -0,0 +1,23 @@
+import PropTypes from 'prop-types';
+import Content from './components/content/Content';
+import './App.css';
+import Header from './components/header/Header.jsx'
+import Navigation from './components/navigation/Navigation.jsx'
+import Footer from './components/footer/Footer.jsx'
+
+const App = ({ routes }) => {
+ return (
+ <>
+
+
+
+
+ >
+ )
+}
+
+App.propTypes = {
+ routes: PropTypes.array,
+};
+
+export default App;
diff --git a/src/assets/1september.jpg b/src/assets/1september.jpg
new file mode 100644
index 0000000..7140e2e
Binary files /dev/null and b/src/assets/1september.jpg differ
diff --git a/src/assets/Halloween.jpg b/src/assets/Halloween.jpg
new file mode 100644
index 0000000..72c0185
Binary files /dev/null and b/src/assets/Halloween.jpg differ
diff --git a/src/assets/Students1.jpg b/src/assets/Students1.jpg
new file mode 100644
index 0000000..beb1654
Binary files /dev/null and b/src/assets/Students1.jpg differ
diff --git a/src/assets/Students2.jpg b/src/assets/Students2.jpg
new file mode 100644
index 0000000..fe742e1
Binary files /dev/null and b/src/assets/Students2.jpg differ
diff --git a/src/assets/Students3.jpg b/src/assets/Students3.jpg
new file mode 100644
index 0000000..b1fe61f
Binary files /dev/null and b/src/assets/Students3.jpg differ
diff --git a/src/assets/University.jpg b/src/assets/University.jpg
new file mode 100644
index 0000000..fdf4aef
Binary files /dev/null and b/src/assets/University.jpg differ
diff --git a/src/assets/cat.png b/src/assets/cat.png
new file mode 100644
index 0000000..141ed7c
Binary files /dev/null and b/src/assets/cat.png differ
diff --git a/src/assets/cat2.png b/src/assets/cat2.png
new file mode 100644
index 0000000..7aeb0ad
Binary files /dev/null and b/src/assets/cat2.png differ
diff --git a/src/assets/error.jpg b/src/assets/error.jpg
new file mode 100644
index 0000000..56e087b
Binary files /dev/null and b/src/assets/error.jpg differ
diff --git a/src/assets/error.png b/src/assets/error.png
new file mode 100644
index 0000000..46af56b
Binary files /dev/null and b/src/assets/error.png differ
diff --git a/src/assets/icpc.jpg b/src/assets/icpc.jpg
new file mode 100644
index 0000000..41df0ee
Binary files /dev/null and b/src/assets/icpc.jpg differ
diff --git a/src/assets/letter.jpg b/src/assets/letter.jpg
new file mode 100644
index 0000000..463aa2f
Binary files /dev/null and b/src/assets/letter.jpg differ
diff --git a/src/assets/logo.png b/src/assets/logo.png
new file mode 100644
index 0000000..6f9d73a
Binary files /dev/null and b/src/assets/logo.png differ
diff --git a/src/assets/robokross.jpg b/src/assets/robokross.jpg
new file mode 100644
index 0000000..9b523ba
Binary files /dev/null and b/src/assets/robokross.jpg differ
diff --git a/src/components/content/Content.css b/src/components/content/Content.css
new file mode 100644
index 0000000..a5a7b40
--- /dev/null
+++ b/src/components/content/Content.css
@@ -0,0 +1,37 @@
+#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: 2em;
+ /* для закрепления подвала внизу страницы*/
+ flex: 1 0 auto;
+}
+
+@media (max-width: 800px) {
+ #content {
+ width: 100%;
+ margin: 1.5% 0% 1.5% 0%;
+ }
+}
+
+/* центр для изображений*/
+#content img {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+#content a{
+ color: #06c;
+}
+
+#content a:hover{
+ color: #f07c41;
+ text-decoration: none;
+}
\ No newline at end of file
diff --git a/src/components/content/Content.jsx b/src/components/content/Content.jsx
new file mode 100644
index 0000000..dd5b242
--- /dev/null
+++ b/src/components/content/Content.jsx
@@ -0,0 +1,12 @@
+import './Content.css'
+import { Outlet } from 'react-router-dom';
+
+const Content = () => {
+ return (
+
+
+
+ );
+};
+
+export default Content;
\ No newline at end of file
diff --git a/src/components/footer/Footer.css b/src/components/footer/Footer.css
new file mode 100644
index 0000000..215e9fd
--- /dev/null
+++ b/src/components/footer/Footer.css
@@ -0,0 +1,24 @@
+#footer {
+ width: 100%;
+ background-color: #012362;
+ text-align: center;
+ font-family: Arial;
+ font-size: 15px; /* в header'e 20px*/
+ color: white;
+ line-height: 1.5em;
+ padding: 14px 0px 14px 0px;
+ /* для закрепления подвала внизу страницы*/
+ flex: 0 0 auto;
+}
+
+#footer ul {
+ margin: 0px;
+}
+
+#footer li {
+ display: inline-flex;
+}
+
+#footer li:not(:last-of-type) {
+ margin-right: 3%;
+}
\ No newline at end of file
diff --git a/src/components/footer/Footer.jsx b/src/components/footer/Footer.jsx
new file mode 100644
index 0000000..608525b
--- /dev/null
+++ b/src/components/footer/Footer.jsx
@@ -0,0 +1,18 @@
+import './Footer.css';
+
+const Footer = () => {
+ const year = new Date().getFullYear();
+
+ return (
+
+ );
+};
+
+export default Footer;
\ No newline at end of file
diff --git a/src/components/header/Header.css b/src/components/header/Header.css
new file mode 100644
index 0000000..abd9daf
--- /dev/null
+++ b/src/components/header/Header.css
@@ -0,0 +1,29 @@
+#header {
+ width: 100%;
+ background-color: #012362;
+ text-align: center;
+ font-family: Arial;
+ font-size: 20px;
+ color: white;
+ padding: 10px 0px 10px 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);
+}
\ No newline at end of file
diff --git a/src/components/header/Header.jsx b/src/components/header/Header.jsx
new file mode 100644
index 0000000..948d027
--- /dev/null
+++ b/src/components/header/Header.jsx
@@ -0,0 +1,14 @@
+import './Header.css'
+import universityLogo from '../../assets/logo.png';
+
+const Header = () => {
+
+ return (
+
+ );
+};
+
+export default Header;
\ No newline at end of file
diff --git a/src/components/navigation/Navigation.css b/src/components/navigation/Navigation.css
new file mode 100644
index 0000000..69a999d
--- /dev/null
+++ b/src/components/navigation/Navigation.css
@@ -0,0 +1,53 @@
+.navbar {
+ width: 100%;
+ background-color: white;
+ color: #012362;
+ font-family: Arial;
+ text-align: center;
+}
+
+.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: 14pt;
+ text-decoration: none;
+ color: #012362;
+}
+
+.navbar-brand:hover, .nav-link:hover {
+ color: #f07c41;
+ text-decoration: underline;
+}
+
+.navbar-brand:focus, .navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
+ color: #06c;
+}
\ No newline at end of file
diff --git a/src/components/navigation/Navigation.jsx b/src/components/navigation/Navigation.jsx
new file mode 100644
index 0000000..236f36f
--- /dev/null
+++ b/src/components/navigation/Navigation.jsx
@@ -0,0 +1,38 @@
+import PropTypes from 'prop-types';
+import { Container, Nav, Navbar } from 'react-bootstrap';
+import { Link, useLocation } from 'react-router-dom';
+import './Navigation.css'
+
+const Navigation = ({ routes }) => {
+
+ const location = useLocation();
+ const indexPageLink = routes.filter((route) => route.index === false).shift();
+ const pages = routes.filter((route) => Object.prototype.hasOwnProperty.call(route, 'title'));
+
+ return (
+
+
+
+ Новости
+
+
+
+
+ {
+ pages.map((page) =>
+
+ {page.title}
+ )
+ }
+
+
+
+
+ );
+};
+
+Navigation.propTypes = {
+ routes: PropTypes.array,
+};
+
+export default Navigation;
\ No newline at end of file
diff --git a/src/index.css b/src/index.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/main.jsx b/src/main.jsx
new file mode 100644
index 0000000..6bb3b98
--- /dev/null
+++ b/src/main.jsx
@@ -0,0 +1,74 @@
+import 'bootstrap/dist/css/bootstrap.min.css';
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import { RouterProvider, createBrowserRouter } from 'react-router-dom';
+import App from './App.jsx';
+import './index.css';
+import Abiturient from './pages/Abiturient.jsx';
+import AddNews from './pages/AddNews.jsx';
+import Admin from './pages/Admin.jsx';
+import Contacts from './pages/Contacts.jsx';
+import ErrorPage from './pages/ErrorPage.jsx';
+import Main from './pages/Main.jsx';
+import News from './pages/News.jsx';
+import Registration from './pages/Registration.jsx';
+import University from './pages/University.jsx';
+
+const routes = [
+ {
+ path: '/university',
+ element: ,
+ title: 'Об университете',
+ },
+ {
+ path: '/abiturient',
+ element: ,
+ title: 'Поступающему',
+ },
+ {
+ path: '/admin',
+ element: ,
+ title: 'Страница админа',
+ },
+ {
+ path: '/registration',
+ element: ,
+ title: 'Регистрация',
+ },
+ {
+ path: '/contacts',
+ element: ,
+ title: 'Контакты',
+ },
+ {
+ path: '/news',
+ element: ,
+ title: '',
+ },
+ {
+ path: '/add_news',
+ element: ,
+ title: '',
+ },
+ {
+ index: true,
+ path: '/',
+ element: ,
+ title: '',
+ }
+]
+
+const router = createBrowserRouter([
+ {
+ path: '/',
+ element: ,
+ children: routes,
+ errorElement: ,
+ },
+]);
+
+ReactDOM.createRoot(document.getElementById('root')).render(
+
+
+ ,
+);
diff --git a/src/pages/Abiturient.jsx b/src/pages/Abiturient.jsx
new file mode 100644
index 0000000..8863eb3
--- /dev/null
+++ b/src/pages/Abiturient.jsx
@@ -0,0 +1,80 @@
+import { useState } from 'react';
+import { Form, Table, Container, Row, Col, InputGroup, Button } from 'react-bootstrap';
+
+const Abiturient = () => {
+
+ const [validated, setValidated] = useState(false);
+
+ const handleSubmit = (event) => {
+ const form = event.currentTarget;
+ if (form.checkValidity() === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ setValidated(true);
+ };
+
+ return (
+ <>
+
+
Список направлений
+
+
+
+
+
+ Код
+ Наименование направления
+ Требуемые баллы ЕГЭ
+
+
+
+ 1
+ Песочница
+ 50
+
+
+ 2
+ Художка
+ 50
+
+
+ 3
+ Программисты
+ 50
+
+
+
+ >
+ );
+};
+
+export default Abiturient;
diff --git a/src/pages/AddNews.jsx b/src/pages/AddNews.jsx
new file mode 100644
index 0000000..0602f10
--- /dev/null
+++ b/src/pages/AddNews.jsx
@@ -0,0 +1,62 @@
+import { useState } from 'react';
+import { Form, Button, InputGroup, Container } from "react-bootstrap";
+
+const AddNews = () => {
+ const [validated, setValidated] = useState(false);
+
+ const handleSubmit = (event) => {
+ const form = event.currentTarget;
+ if (form.checkValidity() === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ setValidated(true);
+ };
+
+ return (
+ <>
+
+
Добавить новость
+
+
+
+
+
+ Заголовок:
+
+
+
+
+ Дата:
+
+
+
+
+ Текст новости:
+
+
+
+
+ Тэги:
+
+
+
+ Изображение:
+
+
+
+
+
+ Отправить
+
+
+
+
+ >
+ );
+};
+
+export default AddNews;
diff --git a/src/pages/Admin.jsx b/src/pages/Admin.jsx
new file mode 100644
index 0000000..23f2f97
--- /dev/null
+++ b/src/pages/Admin.jsx
@@ -0,0 +1,39 @@
+import { Button, Form, Table } from "react-bootstrap";
+
+const Admin = () => {
+ return (
+ <>
+
+
Кабинет администратора
+
+
+
+
+
+ №
+ Название
+ Дата
+ Описание
+ Теги
+
+
+
+
+
+ 1
+ Песочница
+ 19.12.2023
+ Описание
+ Теги
+
+
+
+
+
+ >
+ );
+};
+
+export default Admin;
diff --git a/src/pages/Contacts.jsx b/src/pages/Contacts.jsx
new file mode 100644
index 0000000..b51d283
--- /dev/null
+++ b/src/pages/Contacts.jsx
@@ -0,0 +1,65 @@
+import { useState } from 'react';
+import { Button, Container, Form, FormLabel, Row, Col } from "react-bootstrap";
+import imgLetter from "../assets/letter.jpg";
+
+const Contacts = () => {
+ const [validated, setValidated] = useState(false);
+
+ const handleSubmit = (event) => {
+ const form = event.currentTarget;
+ if (form.checkValidity() === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ setValidated(true);
+ };
+
+ return (
+ <>
+
+
+
+
+
Обратная связь
+ Вы можете задать нам любой вопрос, обратиться с предложением или сообщить о проблеме. Для этого заполните приведённую форму.
+
+ Мы с радостью вам ответим!
+
+
+
+
+
+
+
+ Имя:
+
+
+
+
+ Email:
+
+
+
+
+ Тема:
+
+
+
+
+ Ваш вопрос:
+
+
+
+
+ Отправить
+
+
+
+
+
+ >
+ );
+};
+
+export default Contacts;
diff --git a/src/pages/ErrorPage.jsx b/src/pages/ErrorPage.jsx
new file mode 100644
index 0000000..2ad4217
--- /dev/null
+++ b/src/pages/ErrorPage.jsx
@@ -0,0 +1,19 @@
+import imgError from '../assets/cat2.png'
+
+const ErrorPage = () => {
+ return (
+ <>
+
+
+
Ой!
+
+ Мы не нашли эту страницу :(
+
+
+
+
+ >
+ );
+};
+
+export default ErrorPage;
diff --git a/src/pages/Main.jsx b/src/pages/Main.jsx
new file mode 100644
index 0000000..0418378
--- /dev/null
+++ b/src/pages/Main.jsx
@@ -0,0 +1,36 @@
+import { Link } from 'react-router-dom';
+import { Carousel } from 'react-bootstrap';
+import Students1 from '../assets/Students1.jpg';
+import Students2 from '../assets/Students2.jpg';
+import Students3 from '../assets/Students3.jpg';
+
+const Main = () => {
+ return (
+ <>
+
+
Добро пожаловать на сайт
+ Государственного политехнического университета !
+
+
+ >
+ );
+};
+
+export default Main;
diff --git a/src/pages/News.jsx b/src/pages/News.jsx
new file mode 100644
index 0000000..2466d40
--- /dev/null
+++ b/src/pages/News.jsx
@@ -0,0 +1,15 @@
+import { Button, Form } from "react-bootstrap";
+
+const News = () => {
+ return (
+ <>
+
+
Новости
+
+
+
+ >
+ );
+};
+
+export default News;
diff --git a/src/pages/Registration.jsx b/src/pages/Registration.jsx
new file mode 100644
index 0000000..b336f17
--- /dev/null
+++ b/src/pages/Registration.jsx
@@ -0,0 +1,89 @@
+import { useState } from 'react';
+import { Container, Form, Row, Col, Button } from "react-bootstrap";
+
+const Registration = () => {
+ const [validated, setValidated] = useState(false);
+
+ const handleSubmit = (event) => {
+ const form = event.currentTarget;
+ if (form.checkValidity() === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ setValidated(true);
+ };
+
+ return (
+ <>
+
+
Регистрация
+ Регистрация на нашем сайте позволит Вам стать его полноценным участником.
+
+ Вы сможете просматривать расписание групп, свои оценки и учебный план.
+ В случае возникновения проблем с регистрацией, обратитесь к
администратору .
+
+
+
+ >
+ );
+};
+
+export default Registration;
diff --git a/src/pages/University.jsx b/src/pages/University.jsx
new file mode 100644
index 0000000..30e1ccd
--- /dev/null
+++ b/src/pages/University.jsx
@@ -0,0 +1,25 @@
+import imgUniversity from "../assets/University.jpg";
+
+const University = () => {
+ return (
+ <>
+
+
История ГПУ✨
+
+ 29 мая 2001 года решением правительства РФ был создан Государственный политехнический университет. Новый ВУЗ был образован на базе Тольяттинского политехнического института и Тольяттинского филиала Самарского государственного педагогического университета.
+ История Политехнического института начинается с вечернего отделения Куйбышевского индустриального института, созданного при Куйбышевгидросторе в 1951 году. Строительство ГЭС остро нуждалось в квалифицированных инженерах. Руководил факультетом Д.Е. Чуркин, а в 1953 году его сменил к.т.н. В.Н. Зубков.
+ 1 сентября 1951 года начались занятия 150 студентов. Первое время преподаватели приезжали из Куйбышева, лекции читали многие инженеры-практики со стройки, и сам начальник КГС И.В. Комзин. На отделении было всего два штатных сотрудника: В.Н. Зубков и А.Э. Лившиц. В 1962 году число сотрудников возросло до 90 человек, 8 из них имели ученую степень кандидатов наук.
+ В 1956 году состоялся первый выпуск инженеров-гидростроителей и инженеров-электриков. Постепенно открывались новые специальности, в 1959 году получили дипломы первые инженеры-механики. В 1961 было открыто дневное обучение.
+ В 1961 году были открыты механический факультет (декан В.Н. Зубков) и химико-электротехнический (декан Б.Н. Рачинский). В 1964 году был создан химико-технологический факультет. В 1966 году были выпущены первые инженеры-технологи химического производства. В 1966 году на трех факультетах обучались 2800 студентов.
+ В октябре 1966 года на базе филиала был образован Тольяттинский политехнический институт. Немалую роль в организации института сыграли потребности в кадрах строящегося ВАЗа, а также наличие материальной базы.
+ Первым ректором нового ВУЗа был назначен профессор, доктор технических наук видный ученый из Куйбышева Арон Наумович Резников. Он сумел привлечь новые квалифицированные кадры и создал современный институт с высоким учебным и научным потенциалом. Были созданы 13 новых кафедр, в том числе единственная в стране кафедра промышленной пайки. Благодаря А.Н. Резникову через 10 лет в ТПИ работали 7 докторов наук и 151 кандидат наук. За это время почти в 2 раза возрос набор студентов, и в 10 раз возросли объемы научных работ. Наиболее успешными были 80-е гг., когда учёные ТПИ осваивали в год около 3 млн. руб.
+ Ежегодно ученые института получали десятки свидетельств на изобретения, всего же со времени создания ТПИ было получено 1134 авторских свидетельства на изобретения.
+ ТГУ – современный инновационный вуз. В 2010 году университет стал победителем конкурса Правительства РФ на Премию качества за 2009 год, дважды – в 2004 и 2011 году ТГУ стал лауреатом конкурса «Европейское качество» в группе «100 лучших вузов России». В 2011 году ТГУ завоевал по итогам конкурса СНГ за достижения в области качества оказания услуг приз «Признание делового совершенства». Ректор ТГУ М.М. Криштал в 2011 г. удостоен звания «Российский лидер качества», награждён дипломом и медалью, такую высокую оценку деятельности дала «Всероссийская организация качества».
+ В 2014 году в составе ТГУ 11 институтов, включая институт военного обучения, 44 кафедры, институт дистанционного обучения.
+
+
+ >
+ );
+};
+
+export default University;
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 0000000..55b4e87
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,13 @@
+/* eslint-disable import/no-extraneous-dependencies */
+import react from '@vitejs/plugin-react';
+import { defineConfig } from 'vite';
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [react()],
+ build: {
+ sourcemap: true,
+ chunkSizeWarningLimit: 1024,
+ emptyOutDir: true,
+ },
+});