# Аннотация Информационная система «Автопрокат» представляет собой настольное Windows Forms приложение на C# для учета клиентов, автомобилей, марок и договоров аренды. Программа подключается к PostgreSQL, инициализирует учебную схему данных, разграничивает права пользователей по ролям и позволяет формировать отчеты. # Введение Основные возможности системы: - авторизация пользователей с ролями `admin`, `manager`, `viewer`; - просмотр, поиск, добавление, изменение и удаление клиентов; - ведение справочника автомобилей и марок; - оформление и сопровождение договоров аренды; - экспорт таблиц в CSV; - формирование отчетов в HTML и TXT; - просмотр журнала операций и событий аудита; - проверка работоспособности через режим `--smoke-test`; - разворачивание приложения через графический установщик `AutorentSetup.exe`. # Назначение и условия применения Программа предназначена для автоматизации работы учебного пункта автопроката: хранения сведений о клиентах, автопарке и арендах, контроля доступности автомобилей, подготовки отчетов и фиксации действий пользователей. Условия применения: - операционная система Windows 10 или новее; - установленный .NET SDK 9.0 для сборки проекта; - доступ к серверу PostgreSQL; - учетная запись БД с правом подключения к рабочей базе и схеме; - сетевой доступ к серверу `edu-pg.itiscaf.ru` или к другому PostgreSQL-серверу, указанному в `dbsettings.json`. # Установка ## Шаги установки для пользователя 1. [ ] Запустите файл `AutorentSetup.exe`. 2. [ ] В окне мастера установки выберите папку для установки. По умолчанию используется: ```text C:\Users\<пользователь>\AppData\Local\AutorentWinForms ``` Папку можно изменить кнопкой `Обзор...`. 3. [ ] При необходимости оставьте отметку `Создать ярлык на рабочем столе`. 4. [ ] Нажмите `Установить` и дождитесь завершения копирования файлов. 5. [ ] Нажмите `Готово`. 6. [x] Установка завершена. Приложение можно запустить через ярлык на рабочем столе или через файл: ```text C:\Users\<пользователь>\AppData\Local\AutorentWinForms\AutorentWinForms.exe ``` ## Что устанавливается в систему - главный исполняемый файл приложения `AutorentWinForms.exe`; - файл настроек подключения `dbsettings.json`; - зависимости .NET и библиотеки PostgreSQL-драйвера; - папка `Reports` создается при сохранении отчетов и CSV-файлов; - ярлык на рабочем столе, если пользователь выбрал соответствующий пункт. ## Создание установщика из исходного кода Для разработчика установщик собирается командой: ```powershell powershell -ExecutionPolicy Bypass -File .\scripts\build_installer.ps1 ``` После выполнения команды создается файл: ```text dist\AutorentSetup.exe ``` Проверить работоспособность установленной версии можно командой: ```powershell .\publish\AutorentWinForms\AutorentWinForms.exe --smoke-test ``` Успешная проверка завершается без сообщения об ошибке. В консольной сборке режим также выводит строку вида `OK: clients=..., audit=..., adminAuth=True`. Файл подключения можно изменить после установки: ```text <папка установки>\dbsettings.json ``` Дополнительно можно передать строку подключения через переменную окружения `AUTORENT_CONNECTION_STRING`. В этом случае файл `dbsettings.json` не используется. # Описание операций Пользователь входит в программу через форму авторизации. После успешного входа открывается главное окно с вкладками данных. Набор доступных операций зависит от роли пользователя. Основные операции: - `Клиенты`: поиск, просмотр, добавление, редактирование, удаление и экспорт списка клиентов; - `Автомобили`: учет регистрационного номера, марки, года выпуска, стоимости аренды и статуса; - `Марки`: ведение справочника марок автомобилей, доступно администратору; - `Аренда`: создание договора аренды, изменение периода, стоимости и статуса возврата; - `Отчеты`: формирование аналитической сводки и сохранение ее в HTML или TXT; - `Аудит`: просмотр журнала действий пользователей; - `CSV`: выгрузка текущей таблицы в папку `Reports`. Тестовые учетные записи для учебного стенда: | Логин | Пароль | Роль | | - | - | - | | `garanin_gi` | пароль PostgreSQL из учебного стенда | Администратор | | `manager` | `Manager123!` | Менеджер | | `shagavaliev_iv` | пароль пользователя просмотра | Аналитик | # Диаграмма развертывания системы ```mermaid flowchart LR subgraph Client["Рабочая станция оператора"] User["Оператор"] App["AutorentWinForms.exe"] Settings["dbsettings.json или AUTORENT_CONNECTION_STRING"] Reports["Папка Reports"] end subgraph Build["Среда сборки"] Installer["AutorentSetup.exe"] Publish["publish/AutorentWinForms"] end subgraph Server["Сервер PostgreSQL"] Db["База dbwork"] Schema["Схема автопроката"] Audit["audit_log"] end User --> App Installer --> Publish Publish --> App App --> Settings App --> Reports App -- "Npgsql, TCP 5432" --> Db Db --> Schema Schema --> Audit ``` # Руководство оператора Подробное руководство оператора находится в файле [docs/operator_manual.md](docs/operator_manual.md). # Термины и сокращения | Термин | Расшифровка | | - | - | | ИС | Информационная система | | БД | База данных | | PostgreSQL | Система управления реляционными базами данных | | WinForms | Технология создания настольных приложений Windows на .NET | | Оператор | Пользователь, выполняющий работу в программе | | Администратор | Пользователь с полными правами на данные и справочники | | Менеджер | Пользователь, ведущий клиентов, автомобили и аренды | | Аналитик | Пользователь с правом просмотра данных и отчетов | | CSV | Текстовый формат табличной выгрузки | | Npgsql | .NET-драйвер для подключения к PostgreSQL |