2.1 Постановка задачи
Целью курсового проекта является получение практических навыков проектирования автоматизированной информационной системы транспортного средства.
После анализа различных решений по автоматизации транспортных операций было решено, что программа как в основных функциях необходима для продвижения, так и в некоторых улучшениях, чтобы облегчить использование программы, необходимо добавить новый аккаунт в базу данных, обрабатывать заказы и выдавать информацию о клиентах, а также планшеты.
База данных клиентов автостоянки, в которой хранится информация о:
1. Инициалы клиента
2. Марка автомобиля
3. Доп. сведения об автомобиле (в том числе номера)
4. Список сотрудников автостоянки
5. Стоимость тарифов
Основным объектом является оформление заказов. Программа хранит в себе историю заказов, и клиентскую базу.
Данные будут хранится на сервере баз данных производственной компании -- это позволить оградить их от несанкционированного доступа и обеспечить доступ данных с любого авторизованного устройства с установленной копией программы, что обеспечивает мобильность, так как она в любое время может быть инсталлирована, но данные останутся в полной сохранности. Также хотелось бы отметить что для доступа к данным используется Entity Framework это обеспечивает полную защиту базы данных от SQL-инъекций.
2.2 Структура данных
Для моей парковочной автоматизированной информационной системы была разработана база данных которая имеет ниже представленную структуру (см. рисунок 1).
Рисунок 1 -- Схема базы данных
Таблица 1. Carsector хранит информацию о машинах
|
Название столбца |
Тип данных |
Описание |
|
|
Id |
int |
Идентификатор |
|
|
name |
nvarchar(50) |
Марка машины |
Таблица Carplace предназначена для хранения информации о машинах и их парковке.
Таблица 2. Manager
|
Название столбца |
Тип данных |
Описание |
|
|
Id |
int |
Идентификатор |
|
|
number |
nvarchar(50) |
Номер |
|
|
sector |
int |
Сектор |
Таблица Parking хранит информацию о сроках парковки зарегистрированных автомобилях.
Таблица 3. Parking
|
Название столбца |
Тип данных |
Описание |
|
|
Id |
int |
Идентификатор |
|
|
startdate |
datetime |
Начало срока |
|
|
enddate |
datetime |
Окончание срока |
|
|
car |
int |
Машина |
|
|
place |
int |
Место |
|
|
staff |
int |
Персонал |
Таблица Carmarks тоже сохраняет данные о занятых местах для парковки, марок машин и тарифы за день.
Таблица 4. Carmarks
|
Название столбца |
Тип данных |
Описание |
|
|
Id |
int |
Идентификатор |
|
|
name |
nvarchar(200) |
Марка авто |
|
|
tarifperday |
bigint |
Тариф за день |
|
|
description |
nvarchar(50) |
Описание марки авто |
Таблица Cars отвечает за вкладку с добавлением и редактированием данных о машинах.
Таблица 5. Cars
|
Название столбца |
Тип данных |
Описание |
|
|
Id |
int |
Идентификатор |
|
|
number |
nvarchar(50) |
Номер авто |
|
|
mark |
int |
Марка авто |
Таблица Staffroles отвечает за добавление, редактирование, а также назначение работника на любую роль.
Таблица 6. TypeLumber
|
Название столбца |
Тип данных |
Описание |
|
|
Id |
int |
Идентификация |
|
|
Role |
nvarchar(50) |
Роль |
Таблица Parkingstaff отвечает за добавление новых сотрудников, их ФИО, назначение на определенную роль, создание для нового персонала учётных записей (логин, пароль), доступ к вкладке парковка.
Таблица 7. Parkingstaff
|
Название столбца |
Тип данных |
Описание |
|
|
Id |
int |
Идентификатор |
|
|
lastname |
nvarchar(50) |
Фамилия |
|
|
middlename |
nvarchar(50) |
Отчество |
|
|
firstname |
nvarchar(50) |
Имя |
|
|
username |
nvarchar(50) |
Имя пользователя |
|
|
password |
nvarchar(50) |
Пароль |
|
|
staffrole |
int |
Должность |
2.3 Демонстрация функционала программы
Рисунок 2 -- Окно авторизации
При входе в программу пользователя ожидает окно приветствия, где, непосредственно, самому пользователю предложат осуществить вход
Рисунок 3 -- Ошибка авторизации (пропуск ввода пароля)
При вводе только логина- программа выдаст ошибку о том, что нужно ввести недостающий компонент, в данном случае -- это Пароль.
Рисунок 4 -- Ошибка авторизации (пропуск ввода логина)
При вводе только пароля программа уведомит вас о том, что нужно ввести недостающий компонент. В данном случае- это Логин.
Рисунок 5 -- Успешная авторизация
При удачной авторизации вы сможете попасть на приветствующее Вас окно, откуда будут доступны все возможные команды для управления программой.
Рисунок 6 -- Вкладка «Парковка»
Если не авторизоваться, то будет доступно лишь одна вкладка программы- «Парковка»
Рисунок 7 -- Вкладка «Персонал»
Во кладке «Персонал» мы можем просмотреть ФИО, логин, пароль, а также роль выбранного сотрудника.
Рисунок 8 -- Регистрация сотрудника
Только пользователь, который зарегистрирован, как «Admin» имеет доступ к данной вкладке и только он может распоряжаться ролями, назначением, а также удалением выбранного сотрудника.
Рисунок 9 -- Отображение добавленного сотрудника
Чтобы добавить нового сотрудника- нам необходимо указать все данные, кроме отчества (по желанию) и нажать на кнопку «Добавить». При повторном нажатии кнопки появится предупреждение о том, что пользователь с такими данными уже существует.
Рисунок 10 -- Вкладка «Машины»
Вкладка «Машины» позволяет указать марку машину, просмотреть или отредактировать тариф за день и добавить описание для опознавания машины.
Рисунок 11 -- Окно парковка авторизованного пользователя
Во вкладке «Парковка» мы видим дату начала и дату окончания парковки, а также автомобильный номер, марку и место, где стоит выбранная машина.
Рисунок 12 -- Добавление авто на парковочное место
Вкладка «Добавление» напрямую связана со вкладкой «Парковка», в селекторе выбора машины отображаются строго те машины, которые были добавлены во вкладке «Парковка». Здесь мы может выбрать определенную машину, ввести её номер, указать парковочное место, указать нужную нас дату и нажать кнопку «Добавить» и во вкладке «Парковка» мы увидим список, который только что обновился с новой машиной и другими её парковочными данными.
Рисунок 13 -- Авторизация за пользователя с должностью «Персонал»
При авторизации за роль «Staff» также появляется приветствующее окно. Обычный работник имеет доступ к большинству вкладок за исключением одной.
Рисунок 14 -- Отображение недоступных вкладок
К слову, о вышесказанном речь идёт о вкладке «Персонал». Эта вкладка подсвечена чуть более тёмным цветом, в качестве небольшого опознавательного знака. Обычный сотрудник не имеет доступ к данной вкладке во избежание разных неприятных случаев, которые не исключены на таких предприятиях.
Рисунок 15 -- Вкладка «Машины» у персонала
Вкладка «Машины» позволяет обычному работнику автопарковки указать марку машину, просмотреть или отредактировать тариф за день и добавить описание для опознавания машины. Принцип работы ровно тот же, что и администратора.
Рисунок 16 -- Окно добавления авто на парковку от персонала
Также обычный персонал может полностью самостоятельно зарегистрировать новую машину на парковочное место, предварительно указав её: марку, номера, парковочное место и дату. Добавленная ячейка сразу же появится в категории «Парковка» со всеми новыми данными.
Рисунок 17 -- Процесс добавления авто на парковку
Для удобства был внедрён календарь, который позволяет с наибольшей удобностью выбирать определенную дату для администратора и обычных работников.
Расскажу немного о том, почему необязательна авторизация для доступа к разделу «Парковка» и приведу в пример ситуацию, которая может возникнуть.
У сидящего за данной программой работника закончилась смена и он вышел из программы, с ним связалось начальство и потребовало срочно посмотреть информацию об определённым автомобиле, стоящем на парковке.
Для того, чтобы не входить снова в свою учётную запись была написана команда, которая отвечает за доступность данной вкладки вне зависимости от того, вошёл ли обычный работник или администратор в свою учётную запись в парковочной автоматизированной информационной системе.
2.4 Эскизный проект
Для реализации всего необходимого функционала требуется разработка следующих подпрограмм:
· Регистрация новых клиентов - сотрудник компании, менеджер по продажам, производит регистрацию новых клиентов компании. Добавление новых клиентов осуществляется через графический интерфейс пользователя, в котором вводится следующая информация о клиенте:
1. Фамилия;
2. Имя;
3. Отчество;
4. Номер телефона;
Все введенные данные автоматически добавляются в базу данных.
· Удаление машин - сотрудник компании, администратор, производит удаление машин. Удаление осуществляется через графический интерфейс пользователя, в котором сотруднику или администратору необходимо выбрать при помощи клика нужную машину, а затем нажать кнопку удалить. Все данные о машине автоматически удаляются из базы данных.