Файл: Разработка службы курьерской доставки в мобильном приложении.docx
Добавлен: 12.12.2023
Просмотров: 143
Скачиваний: 2
СОДЕРЖАНИЕ
Раздел 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Общая характеристика организации
1.3 Анализ существующих решений
Раздел 2. РАЗРАБОТКА СЦЕНАРИЕВ ПОВЕДЕНИЯ ПРИЛОЖЕНИЙ НА ЭТАПАХ ВЫПОЛНЕНИЯ КУРЬЕРСКОГО ЗАКАЗА
2.1 Алгоритм формирования заказа и поиска курьера
2.2 Алгоритм выполнения курьерского заказа
Раздел 3. ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ СЕРВЕРНОЙ ЧАСТИ СИСТЕМЫ И МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
3.1 Архитектура серверной части системы
3.2 Выбор оптимальной базы данных для разрабатываемой системы
3.3 Архитектура мобильных приложений
3.4 Средства разработки мобильных приложений
Раздел 4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СЕРВЕРНОЙ ЧАСТИ СИСТЕМЫ И МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
4.1 Разработка структуры базы данных
4.2 API для работы с мобильными приложениями
4.3 Структура Android приложения
4.4 Проверка выполнения разработанных сценариев для реализованной системы
Раздел 4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СЕРВЕРНОЙ ЧАСТИ СИСТЕМЫ И МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
4.1 Разработка структуры базы данных
В процессе разработки системы была спроектирована база данных, представленная на рисунке 6. Структура позволяет гибко управлять как пользователями системы, так и курьерскими заказами, и их оплатой, а также устройствами пользователей с учетом того, что у пользователя может быть несколько устройств.
Рисунок 6 – Структура разработанной базы данных
Ниже, представлены основные таблицы, составляющие костяк системы. Все таблицы базы данных можно разделить на три категории:
Категория «Посылка»
Таблица t_order
Таблица содержит информацию о типе отправляемой посылки.
Таблица содержит следующие поля:
-
idt_order. Первичный ключ; -
size_x, size_y, size_z. Габариты груза, указывается если груз не является документами (указан параметр idc_packet_type); -
dc_packet_type. Тип документов (А3, А4, А5 и т.д.).
t_packet | |
idt_packet | int |
idc_packet_type | int |
size_x | int |
size_y | int |
size_z | int |
weight | int |
Таблица t_order
Таблица содержит информацию о текущем заказе.
Таблица содержит следующие поля:
-
idt_order. Первичный ключ; -
order_state. Статус заказа (курьер едет в точку «А», курьер находится в точке «А», получил посылку и т.д.); -
phone. Телефон отправителя; -
order_number. Уникальный номер заказа, необходим для идентификации заказов курьерами и клиентами; -
sender_name. Имя отправителя или название компании отправителя; -
rec_phone. Телефон получателя; -
rec_name. Имя получателя или название компании получателя; -
cost. Стоимость заказа; -
pickup_time. Время в которое необходимо забрать посылку. Храниться в виде таймштампа. По умолчанию, текущее время. -
delivery_time. Время доставки посылки, по умолчанию также текущее время. При сохранении значений происходит проверка pickup_time<= delivery_time; -
size_x, size_y, size_z. Габариты груза, указывается если груз не является документами (указан параметр idc_packet_type); -
idc_packet_type. Тип документов (А3, А4, А5 и т.д.); -
weight. Вес посылки; -
addr_a. Адрес точки А; -
lat_a, long_a. Координаты точки Б; -
addr_b. Адрес точки Б; -
lat_b, long_b. Координаты точки Б; -
cost_earn. Сумма выплаты курьеру за вычетом комиссии (20%); -
order_photo. Фотография груза. Храниться строка в виде Url фотографии на сервере; -
is_already_payed. Булевый флаг. Истина если заказ уже оплачен по безналичному расчету, ложь если оплата наличными.
t_order | |
idt_order | int |
order_state | int |
phone | String |
order_number | int |
sender_name | String |
rec_phone | String |
rec_name | String |
cost | int |
description | String |
pickup_time | long |
delivery_time | long |
size_x | int |
size_y | int |
size_z | int |
idc_packet_type | int |
weight | int |
addr_a | String |
lat_a | double |
long_a | double |
addr_b | String |
lat_b | double |
long_b | double |
cost_earn | int |
order_photo | String |
is_already_payed | booblean |
Категория «Клиент»
Таблица t_client
Таблица содержит информацию о клиенте сделавшем курьерский заказ.
Таблица содержит следующие поля:
-
idt_client. Первичный ключ; -
a_time. Дата регистрации пользователя; -
email. Электронный адрес; -
idt_city. Город проживания; -
first_name, last_name, middle_name. Фамилия имя и отчество пользователя; -
rate. Рейтиг пользователя в баллах от 1 до 5; -
statistic. Статистические данные. Собираются с помощью сервиса FabricCrashlytics (модель телефона, ip, браузер, источник трафика).
t_client | |
idt_client | int |
phone | String |
a_time | long |
| String |
idt_city | String |
first_name | String |
last_name | String |
middle_name | String |
rate | double |
statistic | String |
avatar | String |
Таблица t_pay_method
Таблица содержит информацию о платежной системе клиента.
Таблица содержит следующие поля:
-
idt_pay_method. Первичный ключ; -
idt_client. id клиента; -
idc_pay_method_type. id типа метода оплаты; -
is_default. Булевое значение метода по умолчанию. Истина, если наличными курьеру.
t_pay_method | |
idt_pay_method | int |
idt_client | int |
idc_pay_method_type | int |
is_default | boolean |
Категория «Курьер»
Таблица t_courier
Таблица содержит информацию о курьере.
Таблица содержит следующие поля:
-
idt_courier. Первичный ключ; -
first_name, last_name, middle_name. Фамилия имя и отчество курьера; -
phone. Номер телефона; -
idc_courier_status. Статус курьера (работает/отдыхает); -
birthday. Дата рождения; -
passport. Пароль, который генерируется автоматически после регистрации. Может свободно изменяться курьером; -
email. Электронный адрес; -
rate. Рейтинг курьера на основании оценок клиентами; -
achieve. Флаг для присвоения курьера мотивационных статусов (типа «Самый быстрый», «Самый пунктуальный» и т.д.) -
avatar. Фотография курьера.
t_courier | |
idt_courier | int |
first_name | String |
last_name | String |
middle_name | String |
phone | String |
idc_courier_status | int |
birthday | String |
passport | String |
| String |
rate | double |
achieve | int |
avatar | String |