소스 검색

Добавить 'README.md'

Mihail-Mardasov 3 주 전
부모
커밋
49ced7e935
1개의 변경된 파일102개의 추가작업 그리고 0개의 파일을 삭제
  1. 102 0
      README.md

+ 102 - 0
README.md

@@ -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-репозиториев |