# Информационная система «Автошкола»

# Аннотация

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

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

# Введение

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

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

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

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

Условия применения:

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

Сервер базы данных не входит в установщик `AutoschoolSetup.exe` и разворачивается отдельно.

# Установка

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

Удаление программы выполняется штатными средствами Windows или с помощью деинсталлятора, созданного Inno Setup.

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

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

При запуске пользователь вводит логин и пароль. После успешной авторизации программа определяет роль и открывает разрешённые разделы.

## Возможности администратора

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

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

## Возможности обычного пользователя

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

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

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

## Поиск экзаменов

Поиск позволяет отбирать экзамены по одному или нескольким условиям:

- водитель;
- автошкола;
- результат;
- начальная дата;
- конечная дата.

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

## Экспорт в CSV

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

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

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