- •1 Формирование требований к программному продукту
- •1.1 Постановка задачи
- •1.2 Анализ аналогов на рынке
- •2 Проектирование и реализация программного продукта
- •2.1 База данных программного продукта
- •2.1.1 Описание таблиц базы данных
- •2.2 Структура приложения
- •2.3 Руководство пользователя
- •2.3.1 Главное меню
- •2.3.4 Создание списка
- •2.3.5 Редактирование списка
- •2.3.6 Сохранение списка
- •2.3.7 Карта
2 Проектирование и реализация программного продукта
2.1 База данных программного продукта
Для функционирования приложения, была реализована база данных, содержащая следующие таблицы: “taball”, “tablenta”, “tabgigant”, “tabashan”.
Все таблицы генерируются при первом запуске приложения, и в дальнейшем хранятся в памяти телефона. В случае добавления или обновления таблиц в базе данных, пользователю придется перекачать приложение. В дальнейшем, при развитии данного приложения, планируется введение клиент-серверной части, когда при обновлении базы данных будет заменяться лишь файл с БД и пользователю не придется загружать заново приложение.
2.1.1 Описание таблиц базы данных
В таблице 2.1 хранятся названия товаров которые могут быть представлены в любом магазине, и категории к которым данные товары относяться.
Название поля |
Тип |
Описание |
_id |
integer |
Уникальный номер поля |
name |
text |
Название продукта |
idex |
integer |
Номер категории товара |
Таблица 2.1 – taball
Таблица 2.2 является шаблонной и на основе ее структуры возможно создание таблиц для нового магазина.
Таблица 2.2 – tablenta, tabgigant, tabashan
Название поля |
Тип |
Описание |
_id |
integer |
Уникальный номер поля |
idexitem |
integer |
Номер названия товара из таблицы taball |
coast |
integer |
Цена товара |
xpint |
integer |
Координата расположение товара по оси X |
ypint |
integer |
Координата расположение товара по оси Y |
presentitem |
integer |
Наличие товара в магазине |
В таблице хранятся: идентификаторы названий продуктов из таблицы taball, что бы упростить процесс создания новых таблиц, цена товаров, в данном магазине, координаты X и Y для определения местоположения товара в магазине, наличие товара в данном магазине для формирования финального списка продуктов.
2.2 Структура приложения
Приложение “Помощник покупателя” включает в себя 6 Activity и 3 вспомогательных класса. Полную структуру можно увидеть на рисунки 2.1.
BoxAdapter
HelpActivity
MainActivity
…
ChooseActivity
SaveLoadActivity
MapActivity
OrderActivity
DB
Product
Рисунок 2.1 Структурная схема приложения “Помощник покупателя”.
MainActivity – это Activity будет запущенно при запуске приложения. Данное Activity представляет собой главное меню и предоставляет выбор дальнейшей работы с приложением, а именно:
Перейти в ChooseActivity и начать составлять новый список продуктов.
Перейти в SaveLoadActivity и загрузить уже готовый список.
Перейти в HelpActivity и получить справку по данному приложению.
Так же в этом Activity сформируется файл сохранений, если приложение будет запускаться в первый раз или же если данный файл отсутствует на устройстве по другим причинам.
HelpActivity – это Activity предоставляет помощь пользователям которые не знакомы с функционалом и особенностями данного приложения. На экран телефона будет выведена справка по работе с данным приложением. Так же из этого Activity, можно вернуться в главное меню (MainActivity).
SaveLoadActivity – это Activity позволит пользователю сохранять и загружать списки. Доступность функции загрузки или сохранения определяется тем, из какого Activity пришел сигнал Intent. Если это MainActivity, то будет доступна функция загрузки. Система проверит наличие сохранённых списков и в случае успешного поиска предложит загрузить один из них. Если пользователь захочет загрузить список, из памяти телефона будут считаны данные списка и сформирован Intent который переведет приложение в OrderActivity. Если сигнал пришел из OrderActivity, то будет доступна функция сохранения списка. Поля уже занятые сохранениями будут закрыты для сохранения списка, но будет доступна кнопка удаления уже существующих списков. В случае сохранения списка, система автоматически вернет приложение в OrderActivity.
Так же в любом из случаев будет возможность вернуться в Activity из которого поступил сигнал.
ChooseActivity – это Activity представляет собой первый этап формирования списка. Пользователь должен будет выбрать способ поиска товара. И после того как пользователь задаст фильтры поиска, система запросит данные из базы данных. После получения, данные от сортируются по заданному фильтру, и используя классы BoxAdapter и Product будет сформирован ListView и данные будут выведены на экран устройства.
После формирования ListView пользователю будет дана возможность складывать товары в корзину, тем самым формируя список. Когда корзина будет сформирована, пользователь сможет перейти к следующему Activity, а именно к OrderActivity или же вернуться в главное меню (MainActivity), но тогда список продуктов будет утерян, о чем будет сообщено пользователю в диалоговом окне.
OrderActivity – это Activity представляет собой второй этап составления списка. При получении данных из ChooseActivity или SaveLoadActivity, система обратиться к базе данных и загрузит данные по выбранным товарам, а именно цену и их наличие. На основе полученных данных, будет определен оптимальный магазин по максимальному количеству товаров в наличии и самой низкой цене товара. В случае если товара нет в магазине данные об этом будут выведены в отдельном ListView.
В данном Activity возможно редактирование списка, а именно: смена магазина из базы данных, удаление товара из списка, увеличение и уменьшение количества уже добавленных товаров. Так же можно будет добавить новые элементы в список. Данное действие вернет пользователя в ChooseActivity позволяя добавить элементы к списку.
Так же в данному Activity можно сохранить список, вернуться в главное меню (не сохраненные данные будут утеряны, о чем сообщит диалоговое окно), и найти магазин на карте.
MapActivity – это Activity показывает на карте города, магазины выбранные пользователем. Так же на карте отмечается местоположение пользователя (для функционирования данной опции, нужно подключение к сети интернет или GPS). Из данного Activity можно вернуться в OrderActivity.
BoxAdapter – является вспомогательным классом. В нем описана работа адаптера.
Product – является вспомогательным классом. В нем описывается структура элемента Product.
DB – в этом классе реализована база данных данного приложения. В ней формируются и заполняются таблицы. Так же к данному классу обращаются для получения данных из таблиц.
