Деканат - установщик

Mihail-Mardasov 49ced7e935 Добавить 'README.md' před 3 týdny
Properties 3b6ada0c98 chore: update .gitignore před 3 týdny
.gitignore 3b6ada0c98 chore: update .gitignore před 3 týdny
App.config 3b6ada0c98 chore: update .gitignore před 3 týdny
AssignmentForm.Designer.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
AssignmentForm.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
AssignmentForm.resx 3b6ada0c98 chore: update .gitignore před 3 týdny
DeanOfficeApp.csproj 3b6ada0c98 chore: update .gitignore před 3 týdny
DeanOfficeApp_TemporaryKey.pfx 3b6ada0c98 chore: update .gitignore před 3 týdny
FodyWeavers.xml 3b6ada0c98 chore: update .gitignore před 3 týdny
FodyWeavers.xsd 3b6ada0c98 chore: update .gitignore před 3 týdny
GradeForm.Designer.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
GradeForm.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
GradeForm.resx 3b6ada0c98 chore: update .gitignore před 3 týdny
LoginForm.Designer.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
LoginForm.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
LoginForm.resx 3b6ada0c98 chore: update .gitignore před 3 týdny
MainForm.Designer.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
MainForm.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
MainForm.resx 3b6ada0c98 chore: update .gitignore před 3 týdny
Program.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
README.md 49ced7e935 Добавить 'README.md' před 3 týdny
StudentForm.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
StudentForm.resx 3b6ada0c98 chore: update .gitignore před 3 týdny
UserManagementForm.cs 3b6ada0c98 chore: update .gitignore před 3 týdny
UserManagementForm.resx 3b6ada0c98 chore: update .gitignore před 3 týdny
packages.config 3b6ada0c98 chore: update .gitignore před 3 týdny

README.md

Деканат – информационная система для автоматизации учебного процесса

Аннотация

Программа «Деканат» предназначена для автоматизации деятельности деканата: ведение учёта учебных групп, студентов, преподавателей, дисциплин, назначений (какие дисциплины ведутся в группе в определённом семестре), успеваемости (оценки студентов) и управления пользователями системы с разграничением ролей (администратор, менеджер, преподаватель, студент). Приложение разработано на платформе .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 (или иным, указанным в настройках). Пользователь БД должен иметь права на создание таблиц, индексов, представлений, триггеров.

Шаги установки

  • 1. Скачайте установщик DeanOfficeApp_Setup.exe из репозитория (раздел Releases) или из предоставленного архива.
  • 2. Запустите DeanOfficeApp_Setup.exe от имени администратора.
  • 3. Следуйте инструкциям мастера установки:
    • Выберите папку для установки (по умолчанию C:\Program Files\DeanOfficeApp).
    • При необходимости укажите параметры подключения к PostgreSQL (хост, порт, имя БД, логин, пароль). Если установщик не содержит диалога, отредактируйте файл connection.ini в папке с программой после установки.
  • 4. Дождитесь завершения копирования файлов.
  • 5. На последнем шаге мастера можно оставить галочку «Запустить Деканат».
  • 6. После первого запуска проверьте подключение к БД: если данные введены верно, появится окно авторизации.

Примечание: При отсутствии файла connection.ini или неверных параметрах программа покажет сообщение об ошибке подключения. В этом случае создайте connection.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-репозиториев