# Информационная система «Продажа компьютерной техники»

# Аннотация

«Продажа компьютерной техники» — клиентское Windows-приложение для учёта товаров, складов, покупателей, сотрудников и заказов магазина компьютерной техники. Программа работает с отдельно развёрнутой базой данных PostgreSQL и предоставляет разные возможности администратору и покупателю.

В репозитории размещается исходный код клиентской части информационной системы. База данных, SQL-скрипты и резервные копии в установочный пакет приложения не входят.

# Введение

Основные возможности программы:

- авторизация по логину и паролю;
- разграничение доступа по ролям `admin` и `user`;
- просмотр сведений о складах, сотрудниках, покупателях и товарах;
- учёт остатков товаров на складах;
- создание и обработка заказов;
- просмотр позиций, входящих в заказ;
- поиск и фильтрация записей;
- ведение журнала аудита изменений;
- формирование отчёта по заказам покупателя за выбранную дату;
- просмотр покупателем собственных данных и заказов.

# Назначение и условия применения

Программа предназначена для автоматизации учёта продаж компьютерной техники, комплектующих и периферийных устройств. Она может применяться сотрудниками магазина или организации, в которой требуется вести сведения о товарах, покупателях, заказах и складских остатках.

Для работы необходимы:

- компьютер под управлением Windows;
- доступ к заранее развёрнутой базе данных PostgreSQL;
- корректно настроенные параметры подключения к базе данных;
- учётная запись пользователя программы;
- .NET 8 Desktop Runtime, если приложение опубликовано без включённой среды выполнения;
- права на запуск приложения и запись формируемых файлов в выбранную папку.

Клиентское приложение не создаёт сервер PostgreSQL автоматически. Перед первым запуском база данных должна быть развёрнута и доступна по сети.

# Установка

1. [ ] Получить установочный файл `ComputerSalesSetup.exe`.
2. [ ] Убедиться, что сервер PostgreSQL запущен и база данных информационной системы доступна.
3. [ ] При необходимости установить .NET 8 Desktop Runtime.
4. [ ] Запустить `ComputerSalesSetup.exe`.
5. [ ] Выбрать папку установки или оставить предложенный путь.
6. [ ] Подтвердить создание ярлыков в меню «Пуск» и на рабочем столе.
7. [ ] Дождаться завершения копирования файлов.
8. [ ] Запустить программу через созданный ярлык.
9. [ ] Ввести выданные администратором логин и пароль.
10. [ ] Убедиться, что после входа загружаются доступные пользователю данные.

Удаление приложения выполняется через стандартный раздел Windows для удаления программ либо с помощью файла деинсталляции, созданного Inno Setup.

# Описание операций

## Авторизация

После запуска необходимо ввести логин и пароль. Состав доступных разделов определяется ролью учётной записи.

## Работа администратора

Администратор может:

- просматривать основные таблицы информационной системы;
- добавлять, изменять и удалять записи;
- управлять сведениями о складах, сотрудниках, покупателях и пользователях;
- вести справочник товаров;
- контролировать остатки товаров на складах;
- работать с заказами и позициями заказов;
- выполнять поиск и фильтрацию;
- просматривать журнал аудита;
- формировать отчёт по заказам выбранного покупателя за указанную дату.

Перед удалением записи необходимо убедиться, что она не используется связанными данными. Если база данных отклоняет операцию, сначала следует проверить зависимые записи.

## Работа покупателя

Пользователь с ролью `user` может:

- просматривать личные данные;
- просматривать список товаров;
- открывать собственные заказы;
- просматривать позиции собственных заказов;
- использовать доступные средства поиска и просмотра.

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

# Термины и сокращения

| Термин | Определение |
|---|---|
| БД | База данных, в которой хранятся сведения информационной системы |
| СУБД | Система управления базами данных |
| PostgreSQL | СУБД, используемая серверной частью информационной системы |
| Клиентское приложение | Программа, установленная на компьютере пользователя и подключающаяся к БД |
| Товар | Компьютерная техника, комплектующее или периферийное устройство |
| Склад | Место хранения товаров |
| Остаток | Количество определённого товара, доступное на складе |
| Покупатель | Клиент, сведения о котором используются при оформлении заказа |
| Заказ | Запись о покупке одного или нескольких товаров |
| Позиция заказа | Конкретный товар и его количество внутри заказа |
| Администратор | Пользователь с правом просмотра и изменения данных |
| Пользователь | Покупатель с ограниченным доступом к системе |
| Аудит | Журнал, содержащий сведения об изменениях данных |
| Inno Setup | Средство создания установочного файла Windows |
