|
@@ -0,0 +1,102 @@
|
|
|
|
|
+# Деканат – информационная система для автоматизации учебного процесса
|
|
|
|
|
+
|
|
|
|
|
+## Аннотация
|
|
|
|
|
+
|
|
|
|
|
+Программа «Деканат» предназначена для автоматизации деятельности деканата: ведение учёта учебных групп, студентов, преподавателей, дисциплин, назначений (какие дисциплины ведутся в группе в определённом семестре), успеваемости (оценки студентов) и управления пользователями системы с разграничением ролей (администратор, менеджер, преподаватель, студент). Приложение разработано на платформе .NET Framework (C#, WinForms) с использованием СУБД PostgreSQL.
|
|
|
|
|
+
|
|
|
|
|
+# Введение
|
|
|
|
|
+
|
|
|
|
|
+## Основные возможности
|
|
|
|
|
+
|
|
|
|
|
+- **Управление группами** (добавление, просмотр, редактирование) – реализовано в интерфейсе приложения.
|
|
|
|
|
+- **Управление студентами** (импорт из CSV, фильтрация по группе, отображение среднего балла).
|
|
|
|
|
+- **Управление преподавателями**.
|
|
|
|
|
+- **Управление дисциплинами** (добавление, редактирование, удаление, привязка к группе и преподавателю с указанием семестра).
|
|
|
|
|
+- **Расписание группы** (просмотр списка дисциплин с часами и преподавателем, сортировка по часам, экспорт в CSV/HTML).
|
|
|
|
|
+- **Успеваемость** (выставление/изменение оценок по дисциплинам для студентов группы, проверка наличия назначения дисциплины группе в семестре).
|
|
|
|
|
+- **Управление пользователями** (CRUD операции с ролями: admin, manager, teacher, student; хеширование паролей BCrypt).
|
|
|
|
|
+- **Авторизация** с различными уровнями доступа.
|
|
|
|
|
+- **Аудит изменений** – триггер на таблице Progress сохраняет историю изменений оценок в таблицу progress_log.
|
|
|
|
|
+- **Экспорт отчётов** (CSV, HTML).
|
|
|
|
|
+
|
|
|
|
|
+# Назначение и условия применения
|
|
|
|
|
+
|
|
|
|
|
+## Назначение
|
|
|
|
|
+
|
|
|
|
|
+Программа предназначена для сотрудников деканата (администраторов, менеджеров), преподавателей и студентов высших и средних специальных учебных заведений. Обеспечивает:
|
|
|
|
|
+- централизованное хранение данных об учебном процессе;
|
|
|
|
|
+- быстрое получение расписания занятий групп;
|
|
|
|
|
+- учёт успеваемости с контролем корректности (оценка только по тем дисциплинам, которые назначены группе в указанном семестре);
|
|
|
|
|
+- разграничение прав доступа в соответствии с должностными обязанностями;
|
|
|
|
|
+- аудит изменений оценок.
|
|
|
|
|
+
|
|
|
|
|
+## Условия применения
|
|
|
|
|
+
|
|
|
|
|
+- **Операционная система**: Windows 10/11 (64‑bit) или Windows Server 2016+.
|
|
|
|
|
+- **Необходимое программное обеспечение**:
|
|
|
|
|
+ - .NET Framework 4.7.2 или выше (устанавливается автоматически при необходимости).
|
|
|
|
|
+ - PostgreSQL 13+ (сервер базы данных) – может быть развёрнут локально или удалённо.
|
|
|
|
|
+- **Аппаратные требования**:
|
|
|
|
|
+ - Процессор 1 ГГц, 2 ГБ ОЗУ, 200 МБ свободного дискового пространства (для клиентской части).
|
|
|
|
|
+- **Сеть**: Доступ к серверу PostgreSQL по TCP/IP (порт 5432).
|
|
|
|
|
+
|
|
|
|
|
+# Установка
|
|
|
|
|
+
|
|
|
|
|
+Перед установкой убедитесь, что сервер PostgreSQL доступен и на нём создана база данных с именем `dbpractice` (или иным, указанным в настройках). Пользователь БД должен иметь права на создание таблиц, индексов, представлений, триггеров.
|
|
|
|
|
+
|
|
|
|
|
+### Шаги установки
|
|
|
|
|
+
|
|
|
|
|
+- [x] 1. Скачайте установщик `DeanOfficeApp_Setup.exe` из репозитория (раздел Releases) или из предоставленного архива.
|
|
|
|
|
+- [x] 2. Запустите `DeanOfficeApp_Setup.exe` от имени администратора.
|
|
|
|
|
+- [x] 3. Следуйте инструкциям мастера установки:
|
|
|
|
|
+ - Выберите папку для установки (по умолчанию `C:\Program Files\DeanOfficeApp`).
|
|
|
|
|
+ - При необходимости укажите параметры подключения к PostgreSQL (хост, порт, имя БД, логин, пароль). Если установщик не содержит диалога, отредактируйте файл `connection.ini` в папке с программой после установки.
|
|
|
|
|
+- [x] 4. Дождитесь завершения копирования файлов.
|
|
|
|
|
+- [x] 5. На последнем шаге мастера можно оставить галочку «Запустить Деканат».
|
|
|
|
|
+- [x] 6. После первого запуска проверьте подключение к БД: если данные введены верно, появится окно авторизации.
|
|
|
|
|
+
|
|
|
|
|
+> **Примечание**: При отсутствии файла `connection.ini` или неверных параметрах программа покажет сообщение об ошибке подключения. В этом случае создайте `connection.ini` в папке с программой со следующим содержимым (пример):
|
|
|
|
|
+> ```ini
|
|
|
|
|
+> [PostgreSQL]
|
|
|
|
|
+> Host=localhost
|
|
|
|
|
+> Port=5432
|
|
|
|
|
+> Database=dbpractice
|
|
|
|
|
+> Username=postgres
|
|
|
|
|
+> Password=your_password
|
|
|
|
|
+> ```
|
|
|
|
|
+
|
|
|
|
|
+# Описание операций
|
|
|
|
|
+
|
|
|
|
|
+После успешной авторизации (логин и пароль из таблицы `appuser`) открывается главное окно программы.
|
|
|
|
|
+
|
|
|
|
|
+- **Выбор группы** – в левом верхнем углу выпадающий список групп. При смене группы автоматически загружается расписание (список дисциплин, часов, преподавателей).
|
|
|
|
|
+- **Сортировка** – радиокнопки «По возрастанию» / «По убыванию» меняют порядок вывода по часам.
|
|
|
|
|
+- **Экспорт** – кнопки «Экспорт CSV» и «Экспорт HTML» сохраняют текущее расписание в файл.
|
|
|
|
|
+- **Управление дисциплинами** (доступно администратору и менеджеру):
|
|
|
|
|
+ - Добавление новой дисциплины (название, часы, выбор преподавателя, привязка к текущей группе).
|
|
|
|
|
+ - Редактирование выбранной дисциплины (изменение названия, часов).
|
|
|
|
|
+ - Удаление дисциплины (удаляются также связи Assignment, но только если по дисциплине нет оценок).
|
|
|
|
|
+- **Студенты** – кнопка открывает форму со списком студентов, фильтром по группе, импортом из CSV и отображением среднего балла.
|
|
|
|
|
+- **Управление пользователями** – доступно только администратору; позволяет добавлять, изменять, удалять пользователей, назначать роли.
|
|
|
|
|
+- **Успеваемость** – форма для выбора группы, дисциплины, семестра и выставления/редактирования оценок студентам. Проверяется, что дисциплина назначена группе в выбранном семестре.
|
|
|
|
|
+- **Назначения (расписание)** – форма для создания и редактирования связей «группа – дисциплина – преподаватель – семестр». Запрещено удалять или изменять назначения, по которым уже выставлены оценки.
|
|
|
|
|
+
|
|
|
|
|
+# Термины и сокращения
|
|
|
|
|
+
|
|
|
|
|
+| Термин/Сокращение | Расшифровка |
|
|
|
|
|
+|------------------|-------------|
|
|
|
|
|
+| БД | База данных |
|
|
|
|
|
+| Деканат | Информационная система для автоматизации учебного процесса |
|
|
|
|
|
+| Дисциплина | Учебный предмет, курс |
|
|
|
|
|
+| Группа | Учебная группа студентов |
|
|
|
|
|
+| Назначение (Assignment) | Связь: группа → дисциплина → преподаватель → семестр |
|
|
|
|
|
+| Успеваемость (Progress) | Оценки студентов по дисциплинам |
|
|
|
|
|
+| Администратор (admin) | Пользователь с неограниченными правами |
|
|
|
|
|
+| Менеджер (manager) | Пользователь, управляющий справочниками (дисциплины, назначения, студенты) |
|
|
|
|
|
+| Преподаватель (teacher) | Пользователь, имеющий право просматривать расписание и выставлять оценки |
|
|
|
|
|
+| Студент (student) | Пользователь, имеющий право просматривать расписание |
|
|
|
|
|
+| СУБД | Система управления базами данных (PostgreSQL) |
|
|
|
|
|
+| CSV | Comma-Separated Values – формат табличных данных |
|
|
|
|
|
+| HTML | HyperText Markup Language – формат веб-страниц |
|
|
|
|
|
+| Git | Система контроля версий |
|
|
|
|
|
+| Gogs | Хостинг Git-репозиториев |
|