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