Browse Source

Merge branch 'master' of http://gogs.ngknn.local:3000/EducationalPractic02/Educational

unknown 6 months ago
parent
commit
fc7d826947
5 changed files with 411 additions and 8 deletions
  1. 3 0
      ~$оект_системы.docx
  2. BIN
      ~WRL3320.tmp
  3. 142 0
      проект_системы.docx
  4. 223 2
      сетевой_график.drawio
  5. 43 6
      тз.docx

+ 3 - 0
~$оект_системы.docx

@@ -0,0 +1,3 @@
+
+ÙåêàëåâàÀÍ
+)5:0;520«ð«ðoã);a§Ú:Aûõ~b§Ú+nþ

BIN
~WRL3320.tmp


+ 142 - 0
проект_системы.docx

@@ -0,0 +1,142 @@
+   Исходя из задач, описанных в техническом задании, получим следующий функционал системы:
+ Авторизации и аутентификации пользователей, разграничение ролей;
+ Просмотр информации о разных дисциплинах и имеющимся оценкам по ним;
+ Просмотр расписания занятий с фильтрацией по:
+ Группам;
+ Преподавателям;
+ Датам.
+ Хранение контактной информации о преподавателях;
+ Просмотр и добавление оценок студентам по дисциплинам;
+ Хранение статистика успеваемости и посещаемости студентов;
+ Добавить возможность удаления, добавления и изменения данных о студентах и преподавателях.
+   Модули:
+ Подключение к БД;
+ Подключение к файлу Excel;
+ Авторизация (логин, пароль);
+ Расписание (группа/преподаватель, дата);
+ Преподаватели ();
+ Студенты (группа);
+ ОценкиСтудента(дисциплина);
+ ОценкиСтудента();
+ ОценкиСтудентов(Группа, Дисциплина);
+ ОценкиСтудентов(Группа);
+ ОценкиСтудентов(Дисциплина);
+ Посещаемость(Студент);
+ Посещаемость(Группа);
+ Посещаемость(Дисциплина).
+   Окна:
+
+Окно
+Примерный макет
+ 
+Авторизация
+
+ 
+Главная страница преподавателя
+
+ 
+Главная страница студента
+
+ 
+Преподаватели
+
+ 
+Студенты  -  фильтрация по группам
+
+ 
+Дисциплины  -  фильтрация по преподавателям, факультетам
+
+ 
+Расписание  -  фильтрация по группам, преподавателям, дате
+
+ 
+Оценки студента по дисциплине
+
+ 
+Оценки студента по дисциплинам
+
+ 
+а. Оценки студентов по дисциплинам (для преподавателей)
+b. Оценки за дисциплину
+
+
+ 
+а. Посещаемость студента
+b. Посещаемость группы
+c. Посещаемость дисциплины
+
+
+
+
+База данных:
+№
+Таблица
+Поля
+ 
+Роли
+ID
+Роль
+ 
+Пользователи
+ID
+ФИО
+Почта
+Телефон
+Пароль
+Год рождения
+Роль
+ 
+Студент
+ID пользователя
+ID группы
+ 
+Преподаватель
+ID пользователя
+ID факультета
+ID корпуса
+ 
+Группы
+ID группы
+Специальность
+Год начала обучения
+Название
+ 
+Факультеты
+ID
+Название
+ 
+Дисциплины
+ID дисциплины
+Название
+ID факультета
+Академические часы
+ 
+Дисциплины преподавателей
+ID преподавателя
+ID дисциплины
+ 
+Запись расписания
+ID
+Дата
+Номера пары
+Группа
+Преподаватель
+Дисциплина
+ 
+Оценки
+ID
+Студент
+Преподаватель
+Дисциплина
+Дата
+Оценка
+Название работы
+ 
+Посещаемость
+ID
+Студент
+Преподаватель
+Дисциплина
+Дата
+Присутствовал
+

+ 223 - 2
сетевой_график.drawio

@@ -1,6 +1,6 @@
-<mxfile host="app.diagrams.net" modified="2024-05-16T06:39:53.859Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0" etag="iiHhHnns1Iw_E8S0K-0r" version="24.4.2" type="device">
+<mxfile host="app.diagrams.net" modified="2024-05-16T08:19:55.322Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0" etag="06xzL6F0mLCn3lRJPavj" version="24.4.2" type="device" pages="2">
   <diagram name="Страница — 1" id="fLtlwxtdZg6V8fdY-pMc">
-    <mxGraphModel dx="4052" dy="2870" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="200" pageHeight="300" math="0" shadow="0">
+    <mxGraphModel dx="3577" dy="2592" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="200" pageHeight="300" math="0" shadow="0">
       <root>
         <mxCell id="0" />
         <mxCell id="1" parent="0" />
@@ -162,4 +162,225 @@
       </root>
     </mxGraphModel>
   </diagram>
+  <diagram id="GA5P9MjWzzKCNK3q5x99" name="Страница — 2">
+    <mxGraphModel dx="1626" dy="1135" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="200" pageHeight="300" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="xCNaI8dtlA7dROucUHAP-1" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-190" y="-290" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-2" value="логин" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-130" y="-250" width="100" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-3" value="пароль" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-130" y="-235" width="100" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-4" value="&lt;font color=&quot;#ffffff&quot;&gt;войти&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="-130" y="-210" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-5" value="Лого" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-110" y="-280" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-7" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-190" y="-130" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-8" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-190" y="40" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-9" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="-120" width="60" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-10" value="Фото" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="-100" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-12" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;Информация&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-170" y="-50" width="50" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-13" value="" style="endArrow=none;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.474;entryY=-0.003;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.485;exitY=0.997;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="xCNaI8dtlA7dROucUHAP-7" target="xCNaI8dtlA7dROucUHAP-7">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="-100" y="-50" as="sourcePoint" />
+            <mxPoint x="-50" y="-100" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-14" value="Расписание&lt;div&gt;Студенты&lt;/div&gt;&lt;div&gt;Дисциплины&lt;/div&gt;&lt;div&gt;Посещаемость&lt;/div&gt;&lt;div&gt;Оценки&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-80" y="-90" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-15" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="50" y="-130" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-16" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="60" y="-120" width="60" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-17" value="Фото" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="60" y="-100" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-18" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;Информация&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="70" y="-50" width="50" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-19" value="" style="endArrow=none;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.474;entryY=-0.003;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.485;exitY=0.997;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" source="xCNaI8dtlA7dROucUHAP-15" target="xCNaI8dtlA7dROucUHAP-15" parent="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="140" y="-50" as="sourcePoint" />
+            <mxPoint x="190" y="-100" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-20" value="Расписание&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Дисциплины&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Оценки&lt;/span&gt;&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="160" y="-110" width="60" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-21" value="Преподаватель 1&lt;div&gt;Преподаватель 2&lt;br&gt;&lt;/div&gt;&lt;div&gt;Преподаватель 3&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-140" y="120" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-22" value="Фильтр: корпус/факультет" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="50" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-23" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="-130" y="80" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-24" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-190" y="190" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-25" value="Дисциплина1&lt;br&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Дисциплина&amp;nbsp;&lt;/span&gt;2&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Дисциплина&amp;nbsp;&lt;/span&gt;3&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-140" y="270" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-26" value="Фильтр: преподаватель/факультет" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="200" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-27" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="-130" y="230" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-28" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-190" y="350" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-29" value="Студент 1&lt;br&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Студент&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&amp;nbsp;&lt;/span&gt;2&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Студент&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&amp;nbsp;&lt;/span&gt;3&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-140" y="430" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-30" value="Фильтр: группа" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="360" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-31" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="-130" y="390" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-33" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-190" y="500" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-34" value="&lt;div&gt;Дата - оценка&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-140" y="560" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-35" value="Фильтр: дисциплина" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="510" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-36" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="-130" y="540" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-37" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-190" y="670" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-38" value="&lt;div&gt;Дисциплина - оценка (итоговая/текущая)&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="680" width="190" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-39" value="&lt;div&gt;Дисциплина - оценка (итоговая/текущая)&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="720" width="190" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-41" value="&lt;div&gt;Дисциплина - оценка (итоговая/текущая)&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="760" width="190" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-42" value="&lt;div&gt;Дата - оценка&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-140" y="580" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-43" value="&lt;div&gt;Дата - оценка&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-140" y="600" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-51" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-190" y="830" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-52" value="&lt;div&gt;Студент - оценка&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-140" y="890" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-53" value="Фильтр: дисциплина" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="840" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-54" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="-130" y="870" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-55" value="&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Студент&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;- оценка&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-145" y="910" width="130" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-56" value="&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Студент&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&amp;nbsp;&lt;/span&gt;- оценка&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-140" y="930" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-57" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="60" y="830" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-58" value="&lt;div style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;Дисциплина&lt;/font&gt;:&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;&lt;/span&gt;студент - оценка&lt;/font&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;студент - оценка&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;&lt;div&gt;Дисциплина:&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;&lt;/span&gt;студент - оценка&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;студент - оценка&lt;/div&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 12px;&quot;&gt;&lt;font style=&quot;font-size: 12px;&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="30" y="875" width="150" height="100" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-59" value="Фильтр: группа" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="70" y="840" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-60" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="170" y="870" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-64" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-190" y="1010" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-65" value="Фильтр: студент" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="-180" y="1020" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-66" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="-130" y="1050" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-67" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Дисциплина - % посещаемости&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Дисциплина - % посещаемости&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Дисциплина - % посещаемости&lt;br&gt;&lt;/font&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="-195" y="1090" width="230" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-69" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="55" y="1010" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-70" value="Фильтр: группа" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="65" y="1020" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-71" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="115" y="1050" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-72" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Дисциплина - % посещаемости&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Дисциплина - % посещаемости&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Дисциплина - % посещаемости&lt;br&gt;&lt;/font&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="50" y="1090" width="230" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-73" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="295" y="1010" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-74" value="Фильтр: дисциплина" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="305" y="1020" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-75" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="355" y="1050" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-76" value="&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Группа - % посещаемости&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Группа&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&amp;nbsp;&lt;/span&gt;- % посещаемости&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Группа&lt;/span&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&amp;nbsp;&lt;/span&gt;- % посещаемости&lt;br&gt;&lt;/font&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="290" y="1090" width="230" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-77" value="" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="90" y="190" width="220" height="140" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-78" value="&lt;div&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;№пары- дисциплина-группа/преподаватель&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;№пары- дисциплина-группа/преподаватель&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;№пары- дисциплина-группа/преподаватель&lt;br&gt;&lt;/font&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
+          <mxGeometry x="85" y="270" width="230" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-79" value="Фильтр: преподаватель/группа" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="100" y="200" width="200" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-80" value="&lt;font color=&quot;#ffffff&quot;&gt;показать&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="150" y="230" width="100" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-81" value="List" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="70" y="-10" width="140" height="120" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-82" value="Item 1" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="xCNaI8dtlA7dROucUHAP-81">
+          <mxGeometry y="30" width="140" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-83" value="Item 2" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="xCNaI8dtlA7dROucUHAP-81">
+          <mxGeometry y="60" width="140" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xCNaI8dtlA7dROucUHAP-84" value="Item 3" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="xCNaI8dtlA7dROucUHAP-81">
+          <mxGeometry y="90" width="140" height="30" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
 </mxfile>

+ 43 - 6
тз.docx

@@ -1,11 +1,14 @@
-   Цель: сформулировать, описать и представить концепцию разрабатываемого вами проекта (актуальность, цель, задачи, стадии, участники, роли, ответственность, сроки, ресурсы) - Техническое задание.
-   Информационная система <<Учебная часть>> предоставляет доступ к личному кабинету студента/преподавателя и хранит информацию о всех дисциплинах, занятиях, семестрах и студентах с возможность удаления/изменения/обновления данных.
+   Цель задания: сформулировать, описать и представить концепцию разрабатываемого вами проекта (актуальность, цель, задачи, стадии, участники, роли, ответственность, сроки, ресурсы) - Техническое задание.
+   Информационная система <<Учебная часть>> предоставляет доступ к личному кабинету студента/преподавателя и хранит информацию о всех дисциплинах, занятиях, семестрах и студентах с возможность удаления/изменения/обновления данных. Разрабатывается на основе языка C# с использованием фреймворка Avalonia.
+   
    Актуальность:
  Удобный доступ к информации: Система обеспечивает удобный и быстрый доступ к актуальной информации о дисциплинах, расписании занятий, семестрах и контактным данным преподавателей. Это позволяет студентам и преподавателям эффективно планировать учебный процесс и своё время.
  Централизованное хранение данных: Вся информация о студентах, преподавателях, дисциплинах, занятиях и семестрах хранится в одной системе. Это обеспечивает централизованное и структурированное хранение данных, исключает возможность их потери или дублирования.
  Управление данными: Система позволяет администраторам управлять данными, включая возможность удаления, изменения и обновления информации о студентах, преподавателях и других сущностях. Таким образом, обеспечивается актуальность и достоверность данных в системе.
  Улучшение процесса обновления информации: благодаря возможности удаления, изменения и обновления данных, система "Учебная часть" способствует более оперативному обновлению информации о студентах, преподавателях и других сущностях. Это особенно важно в случае изменения контактных данных или перевода студента на другую специальность.
-   Цель: создать удобный и функциональный инструмент для студентов и преподавателей, обеспечивающий доступ к актуальным учебным материалам, оценкам, расписанию занятий и другой информации о учебном процессе. Система также целью имеет централизованное хранение и управление данными о студентах, преподавателях, дисциплинах и семестрах, обеспечивая возможность удаления, изменения и обновления информации. В итоге, разработка системы "Учебная часть" позволяет сократить временные затраты на поиск и обновление информации, повысить качество коммуникации между студентами и преподавателями, а также обеспечить централизованное и безопасное хранение данных об учебном процессе.
+   
+   Цель проекта: 
+   Создать удобный и функциональный инструмент для студентов и преподавателей, обеспечивающий доступ к актуальным учебным материалам, оценкам, расписанию занятий и другой информации о учебном процессе. Система также целью имеет централизованное хранение и управление данными о студентах, преподавателях, дисциплинах и семестрах, обеспечивая возможность удаления, изменения и обновления информации. В итоге, разработка системы "Учебная часть" позволяет сократить временные затраты на поиск и обновление информации, повысить качество коммуникации между студентами и преподавателями, а также обеспечить централизованное и безопасное хранение данных об учебном процессе.
    Задачи:
  Реализовать функционал авторизации и аутентификации пользователей (студентов, преподавателей) для обеспечения безопасного доступа к системе.
  Создать механизм просмотра расписания занятий с возможностью настройки отображения по датам, группам и преподавателям, обеспечивая актуальность данных и удобство использования.
@@ -14,7 +17,7 @@
  Создать модуль для предоставления статистики о посещаемости занятий студентами и их активности в системе, что позволит преподавателям более детально оценивать учебный прогресс студентов.
  Обеспечить возможность управления данными в системе, включая функционал удаления, изменения и обновления информации о студентах, преподавателях и других сущностях. 
  Построить масштабируемую и надежную архитектуру системы, выбрав подходящие технологии и инструменты разработки. Также следует обеспечить хорошую документацию и настройку процесса непрерывной интеграции и доставки для удобной разработки и сопровождения системы.
-   Стадии реализации со сроками:
+   Стадии реализации проекта:
 Стадия реализации
 Срок
@@ -80,6 +83,40 @@
 Рисунок 1  -  Сетевой график распределения работ
                                        
 Рисунок 2  -  Критический путь работ  -  18 дней
-Участники (с ролями и ответственностью):
-Ресурсы:
 
+Распределение ролей:
+№
+Участник
+Ответственный за
+ 
+Чернощекова А.Р.
+Разработка документации;
+Оформление отчета;
+Проектирование UML-диаграмм.
+ 
+Шапкин А.С.
+Проектирование интерфейсов;
+Реализация интерфейсов;
+Интеграция модулей.
+ 
+Щекалева А.Н.
+Проектирование системы;
+Реализация программных модулей;
+Тестирование.
+
+Ресурсы:
+ 3 компьютера, минимальные требования к которым: 8 ГБ оперативной памяти, процессор с 4 ядрами, диск не менее 256Гб;
+ На всех устройствах должен быть обеспечен доступ к интернету;
+ Удаленный	 сервер для хранения БД;
+ СУБД PostgreSQL;
+ На рабочих компьютерах должны быть следующие программы:
+ Браузер;
+ MS Word;
+ MS Excel;
+ MS PowerPoint;
+ Клиент PostgreSQL;
+ .NET;
+ IDE для работы с C#;
+ Шаблоны Avalonia;
+ Редактор диаграмм drawio.
+ 18 рабочих дней.