Фрагмент для ознакомления
2
ВВЕДЕНИЕ
Любая организационная деятельность предусматривает наличие информационной оснастки, которая позволяет фиксировать результаты работы, накапливать опыт в решении различных проблем, а также автоматизировать часть бизнес процессов. Подобный подход касается практически всех сфер человеческой жизнедеятельности, которые требуют организованной работы, например образовательные учреждения, производство, различные виды бизнеса.
1 Анализ задачи и определение требований к разрабатываемой программе
1.1 Назначение программы и основные задачи
Задача будущей информационной система в автоматизации учета покупателей, а также предоставление каталога продукции и совершенных заказов. Кроме этого должна быть определена система полномочий, при которой не авторизованный пользователь (гость) может ознакомиться с каталогом продукции, а сотрудник имеет доступ к работе со всеми данными в системе и может осуществлять добавление имеющихся записей. Кроме того, разрабатываемая система должна быть автономной и переносимой, т.е. необходимо стремится к уменьшению работ с настройками при переносе системы на другие устройства. В то же время, приложение должно иметь возможность сохранять и загружать данные, необходимые для работы, а также иметь графический интерфейс, с понятным алгоритмом действий.
1.2 Общий алгоритм
Общий алгоритм работы приложения [1] описывает последовательность действий, которые выполняются пользователем и системой для достижения заданной цели, начиная от инициализации приложения и заканчивая выводом результатов или завершением задачи.
1. Запустить приложение.
2. Отобразить главное меню с возможностью выбрать базу данных с нужной информацией
3. Пользователю необходимо авторизоваться
4. Если пользователь выбирает работу от администратора:
a. пользователю необходимо ввести данные для авторизации
b. после корректного ввода пользователь возвращается на главную форму
c. на главной форме после авторизации становятся доступны дополнительные функции в виде списка имеющихся товаров и кнопки для добавления новых записей
5. Если пользователь необходимо добавить товары,
a. Пользователь нажимает кнопку “Добавить товар”
b. В ответ появляется окно содержащее форму характеристик продукта и кнопку для добавления информации
c. После работы окно добавления закрывается, и пользователь возвращается к главной форме.
6. Если пользователь выбирает авторизоваться как покупатель
a. В ответ появляется форма содержащая список имеющихся товаров
b. Каждый элемент списка имеет кнопку для добавления его в корзину с покупками
c. После добавления продуктов в корзину, пользователь может перейти в данную форму, где будет отображен список выбранных товаров
d. Если пользователь выбирает просмотр сделанных заказов, то после перехода на соответствующую форму ему отображаются сделанные заказы с наименованием продукции и датой его оформления.
7. Если пользователь закрывает главное окно:
a. Работа приложения завершается.
b. При повторном запуске дополнительные опции будут доступны после авторизации.
1.4 Выбор средства работы с данными
1.4.1 Использование файловой системы
Данное решение обладает следующим преимуществом – мы не используем СУБД. Все файлы хранятся на сервере. Логика сохранения информации гораздо проще, нежели при использовании баз данных. Python обладает встроенными средствами сериализации данных в различные форматы, как в JSON или XML. Также мы можем расширить данные возможности, подключив библиотеку для сохранения данных в формате xls, которые могут быть использованы в электронных таблицах. Вариант с сохранением может быть использован при малом количестве запросов и небольшом объеме сохраненной информации. Данное решение уместно при работе в локальной сети небольшого предприятия. При возрастающей нагрузке на сервер возникнут следующие проблемы:
2 Проектирование и реализация базы данных
2.1 Сущности и структура базы данных
Из требований к проектируемой информационной системе можно выделить следующие сущности и их характеристики:
Роль пользователя – которая разграничит пользовательские полномочия
Пользователь – содержит логин, пароль и роль пользователя
Товар – содержит название, описание, стоимость и изображение
Заказ - содержит данные пользователя, товара, и дату заказа.
Чтобы отобразить структуру проектируемой базы данных, можно воспользоваться средством проектирования ERWin, который позволяет строить логические схемы без привязки к конкретной СУБД.
2.2 Реализация базы данных
Чтобы реализовать базу данных в SQlite необходимо воспользоваться графическим клиентом DB Browser [5], который имеет форму для выполнения SQL скриптов, где и будет сформирован запрос на создание и заполнение базы данных.
3. Проектирование приложения
3.1 Разработка пользовательского интерфейса
Разрабатываемый тип приложения нацелен на использование на локальной машине без выхода в интернет. То есть приложение на рабочий стол. В качестве инструмента для создания пользовательского интерфейса, которые можно задействовать в приложениях на Python был выбран Tkinter [6].
Tkinter — это стандартная библиотека Python для создания графических пользовательских интерфейсов (GUI). Она предоставляет набор инструментов и виджетов для разработки настольных приложений с графическим интерфейсом. Tkinter является оберткой вокруг библиотеки Tk, которая была разработана для создания графических интерфейсов и используется в различных языках программирования.
Пользовательский интерфейс приложения сводится к работе с главным окном, от которого создаются дочерние формы для работы со своими задачами. Основными элементами форм в нашем случае будут списки, текстовые поля, метки для названий полей ввода, а также кнопки для вызова обработчиков событий.
3.2 Связка моделей с таблицами базы данных
Чтобы приложение было связано с базой данных необходимо сделать несколько шагов. В приложении должны быть созданы специальные классы, которые будут дублировать таблицы в базе данных. Такие классы называют моделями данных. Для проекта они были реализованы следующим образом:
У каждого класса определен конструктор, в который добавляется вся необходимая информация, после чего объект класса чаще всего добавляется в список объектов для дальнейшей работы с ним. Второй важный шаг это реализация взаимодействия с базой данных из программного кода, для этого будет задействована специальная библиотека sqlite, которая позволяет устанавливать соединение с базой данных. В качестве примера будет предоставлен код, который при соединении с базой данных заполняет списки объектов приложения, которые были реализованы как модели:
В данном методе пользователь после выбора файла базы данных передает строку соединения в приложение. При удачном соединении выполняется SQL скрипт, который запрашивает содержание всех необходимых таблиц, после чего реализуются циклы, в каждом из которых извлекается необходимый объект и на каждой итерации, полученный объект помещается в список. Таким образом, приложение вбирает в себя данные для дальнейшей работы.
На практике после нажатия кнопки «Выбрать базу данных», пользователю отображается форма для поиска файла, после чего происходит алгоритм считывания.
Заключение
В ходе данной работы было создано приложение для магазина настольных игр. Для работы были использованы инструменты, которые используют возможности языка программирования Python. Начиная от построения пользовательского интерфейса и заканчивая работой с данными. Кроме того средства разработки позволяют создать файл готового к запуску рабочего приложения, с помощью специальной библиотеки Pyinstaller.