# Аннотация
Данное программное обеспечение представляет собой настольное клиентское приложение «Информационная система «Склад книг»» с графическим интерфейсом пользователя (GUI), разработанное на языке программирования Python с использованием библиотеки Tkinter. Приложение предназначено для автоматизации процессов учета, контроля, распределения и резервирования книжной продукции на складах, а также для разграничения прав доступа сотрудников организации посредством интеграции с удаленной базой данных.

# Введение
Настоящая информационная система разработана для обеспечения эффективного взаимодействия персонала книжного склада с централизованной базой данных.

Основные возможности программы:
* Интерактивная авторизация пользователей системы с динамической проверкой уровня доступа (роли) через хранимую процедуру `getrole()`.
* Просмотр актуального каталога книжной продукции, хранящейся на складах организации.
* Учет и отображение информации о текущих складских остатках, зонах хранения и объемах партий.
* Управление бронированием и резервированием книг для контрагентов и розничных сетей.
* Отображение и ведение актуального списка персонала склада с закрепленными за ними обязанностями.

# Назначение и условия применения
Программа предназначена для использования сотрудниками административного, логистического и операторского отделов книжных складов и торговых сетей. 

Условия применения:
* Наличие персонального компьютера под управлением операционной системы семейства Windows (7 / 10 / 11).
* Стабильное подключение к сети Интернет для обеспечения соединения с удаленным сервером баз данных PostgreSQL.
* Свободное дисковое пространство на целевом устройстве не менее 50 МБ.

# Установка
Для развертывания и запуска информационной системы на рабочей станции пользователя необходимо выполнить следующую последовательность шагов:

1. Склонировать репозиторий с исходным кодом или скачать архив с исполняемым файлом из системы контроля версий.
   - Скачан архив `PM4.exe`
2. Переместить исполняемый файл в рабочую директорию на жестком диске.
   - Файл размещен в целевой папке (например, `C:/Книжный Склад/`)
3. Проверить наличие стабильного сетевого подключения к хосту `edu-pg.itiscaf.ru`.
   - Сеть доступна, брандмауэр не блокирует исходящий трафик на порт 5432
4. Запустить приложение двойным кликом по исполняемому файлу.
   - Окно авторизации успешно отображено на экране

# Описание операций
Информационная система предоставляет оператору стандартный набор интерактивных операций:
1. **Авторизация:** Пользователь вводит индивидуальный логин и пароль в экранную форму. Система выполняет безопасный вызов функции `getrole()`. При успешном совпадении оператор перенаправляется на главный экран соответствующего уровня доступа. При ошибке — выводится предупреждение.
2. **Просмотр данных:** Переключение между вкладками «Книги», «Склады», «Резервы» и «Персонал» для чтения актуальной информации из базы данных.
3. **Завершение работы:** Закрытие главного графического окна программы автоматически разрывает сессию соединения с PostgreSQL и корректно освобождает системные ресурсы.

# Термины и сокращения
| Термин | Определение |
| **ИС** | Информационная система. |
| **БД** | База данных — структурированный массив данных под управлением СУБД. |
| **СУБД** | Система управления базами данных (в данном проекте — PostgreSQL). |
| **GUI** | Графический интерфейс пользователя (Graphical User Interface). |
| **Исполняемый файл** | Автономный файл формата `.exe`, содержащий скомпилированный код и зависимости. |
| **`getrole()`** | Хранимая функция на стороне сервера для верификации учетных данных пользователей. |