Файл: Разработка службы курьерской доставки в мобильном приложении.docx

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 12.12.2023

Просмотров: 142

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

Раздел 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Общая характеристика организации

1.2 Концепция Службы

1.3 Анализ существующих решений

Раздел 2. РАЗРАБОТКА СЦЕНАРИЕВ ПОВЕДЕНИЯ ПРИЛОЖЕНИЙ НА ЭТАПАХ ВЫПОЛНЕНИЯ КУРЬЕРСКОГО ЗАКАЗА

2.1 Алгоритм формирования заказа и поиска курьера

2.2 Алгоритм выполнения курьерского заказа

Раздел 3. ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ СЕРВЕРНОЙ ЧАСТИ СИСТЕМЫ И МОБИЛЬНЫХ ПРИЛОЖЕНИЙ

3.1 Архитектура серверной части системы

3.2 Выбор оптимальной базы данных для разрабатываемой системы

3.2.1 SQLite

3.2.2 MySQL

3.2.3 PostgreSQL

3.3 Архитектура мобильных приложений

3.4 Средства разработки мобильных приложений

Раздел 4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СЕРВЕРНОЙ ЧАСТИ СИСТЕМЫ И МОБИЛЬНЫХ ПРИЛОЖЕНИЙ

4.1 Разработка структуры базы данных

4.2 API для работы с мобильными приложениями

4.3 Структура Android приложения

4.4 Проверка выполнения разработанных сценариев для реализованной системы

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Приложение 1.

Приложение 2.

Раздел 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

email

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

email

String

rate

double

achieve

int

avatar

String