# Информационная система «Учёт экспонатов музея» # Аннотация «Учёт экспонатов музея» — клиентское Windows-приложение для просмотра и изменения сведений о музейных экспонатах. Программа разработана на C# с использованием Windows Forms, работает с отдельно развёрнутой базой данных PostgreSQL и подключается к ней с помощью библиотеки Npgsql. В репозитории размещается исходный код клиентской части информационной системы. Сервер PostgreSQL, дамп базы данных и средства администрирования базы не входят в установочный пакет приложения. # Введение Основные возможности программы: - просмотр списка экспонатов в табличном виде; - отображение типа экспоната, даты создания, цены, себестоимости, автора и идентификатора музея; - добавление новых экспонатов; - изменение цены выбранного экспоната; - удаление выбранного экспоната с подтверждением; - обновление сведений, загруженных из базы данных; - загрузка списка авторов; - подсчёт количества экспонатов, созданных указанным автором; - отображение результатов выполненных операций и сообщений об ошибках. В текущей версии программы отсутствуют отдельная форма авторизации и разграничение доступа по ролям. После запуска оператору доступны все реализованные функции. # Назначение и условия применения Программа предназначена для ведения сведений об экспонатах музея. Она может применяться сотрудником музея или ответственным оператором для просмотра каталога, добавления новых объектов, изменения их цены и удаления записей. Для работы необходимы: - компьютер под управлением Windows; - установленная платформа .NET Framework 4.7.2; - доступ к заранее развёрнутому серверу PostgreSQL; - корректно настроенные параметры подключения к базе данных; - наличие в базе таблиц `Exhibit`, `Creator` и `Museum`; - наличие функции `get_exhibit_count_by_author`; - права учётной записи базы данных на чтение и изменение используемых таблиц; - установленные вместе с приложением библиотеки, включая Npgsql. Клиентское приложение не устанавливает и не настраивает сервер PostgreSQL автоматически. Перед первым запуском база данных должна быть развёрнута и доступна по сети. # Установка 1. [ ] Получить установочный файл `MuseumExhibitsSetup.exe`. 2. [ ] Убедиться, что сервер PostgreSQL запущен и доступен с рабочего компьютера. 3. [ ] При необходимости установить .NET Framework 4.7.2. 4. [ ] Запустить `MuseumExhibitsSetup.exe`. 5. [ ] Разрешить запуск установщика, если Windows выведет предупреждение. 6. [ ] Выбрать папку установки или оставить предложенный путь. 7. [ ] Подтвердить создание ярлыков в меню «Пуск» и на рабочем столе. 8. [ ] Дождаться завершения копирования файлов приложения и зависимостей. 9. [ ] Запустить программу через созданный ярлык. 10. [ ] Убедиться, что в главном окне загрузились список экспонатов и список авторов. Удаление приложения выполняется через стандартный раздел Windows для удаления программ либо с помощью файла деинсталляции, созданного Inno Setup. Удаление клиентского приложения не удаляет базу данных с сервера PostgreSQL. # Описание операций ## Просмотр экспонатов После запуска программа подключается к серверу PostgreSQL и загружает список экспонатов. В таблице отображаются: - идентификатор экспоната; - тип экспоната; - дата создания; - цена экземпляра; - себестоимость создания; - автор; - идентификатор музея. Для просмотра большого количества записей используются полосы прокрутки таблицы. ## Обновление данных Кнопка **«Обновить»** повторно загружает сведения из базы данных. Эту операцию следует выполнять после изменения данных другим пользователем или непосредственно на сервере. После успешного обновления программа выводит сообщение «Данные обновлены». ## Добавление экспоната Для добавления записи необходимо заполнить поля в группе «Данные для добавления»: - `ID` — уникальный числовой идентификатор экспоната; - `Тип` — наименование типа экспоната; - `Дата` — дата создания; - `Цена` — цена экземпляра; - `Себестоимость` — затраты на создание или приобретение; - `Автор` — значение, выбранное из списка авторов; - `ID музея` — идентификатор существующего музея. После заполнения полей следует нажать кнопку **«Добавить»**. Идентификатор экспоната должен быть уникальным. Выбранный автор и указанный музей должны существовать в базе данных. Цена и себестоимость вводятся в числовом формате, принятом в настройках Windows. После успешного добавления таблица обновляется, поля ввода очищаются, а программа выводит сообщение «Экспонат добавлен!». ## Изменение цены Для изменения цены необходимо: 1. Выбрать экспонат в таблице. 2. Нажать кнопку **«Изменить цену»**. 3. Ввести новое числовое значение. 4. Подтвердить операцию. После успешного изменения таблица обновляется и появляется сообщение «Цена обновлена!». Другие сведения об экспонате в текущей версии приложения не редактируются. ## Удаление экспоната Для удаления необходимо: 1. Выбрать экспонат в таблице. 2. Нажать кнопку **«Удалить»**. 3. Проверить выбранную запись. 4. Подтвердить удаление в диалоговом окне. Если выбрать ответ «Нет», операция будет отменена. Удаление может быть отклонено базой данных, если на экспонат ссылаются связанные записи. ## Подсчёт количества экспонатов автора Кнопка **«Тест процедуры»** вызывает функцию подсчёта количества экспонатов автора. Для выполнения операции необходимо: 1. Нажать кнопку **«Тест процедуры»**. 2. Ввести числовой идентификатор автора. 3. Подтвердить ввод. 4. Просмотреть результат в нижней части главного окна. Программа вызывает функцию PostgreSQL `get_exhibit_count_by_author` и отображает количество экспонатов, связанных с указанным автором. # Сборка проекта Для сборки исходного кода необходимы: - Visual Studio с поддержкой проектов .NET Framework; - .NET Framework 4.7.2 Developer Pack; - восстановленные NuGet-пакеты проекта; - доступ к серверу PostgreSQL для проверки работы приложения. Рекомендуемый порядок сборки: 1. Открыть решение `MuseumWinForms.sln` в Visual Studio. 2. Восстановить NuGet-пакеты. 3. Проверить параметры подключения к PostgreSQL. 4. Выбрать конфигурацию `Release`. 5. Выполнить сборку решения. 6. Получить исполняемые файлы в каталоге `MuseumWinForms/bin/Release`. 7. Добавить содержимое каталога Release в установочный пакет Inno Setup. Конфиденциальные параметры подключения, включая пароль к базе данных, не следует публиковать в открытом репозитории. # Термины и сокращения | Термин | Определение | |---|---| | БД | База данных, в которой хранятся сведения информационной системы | | СУБД | Система управления базами данных | | PostgreSQL | СУБД, используемая для централизованного хранения данных | | Клиентское приложение | Программа, установленная на компьютере оператора и подключающаяся к БД | | Экспонат | Объект, сведения о котором хранятся в музейном каталоге | | Автор | Создатель произведения или другого музейного объекта | | Музей | Организация, в которой хранится или учитывается экспонат | | Цена экземпляра | Указанная в базе данных стоимость экспоната | | Себестоимость | Затраты, связанные с созданием или приобретением экспоната | | Идентификатор | Уникальное числовое значение записи | | Windows Forms | Технология создания графических приложений для Windows | | .NET Framework | Программная платформа, необходимая для запуска приложения | | Npgsql | Библиотека для подключения приложений .NET к PostgreSQL | | Inno Setup | Средство создания установочного файла Windows | | Git | Система контроля версий исходного кода |