Диплом: Разработка веб-сайта для компании "SUSHI KING"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
77
на страницу процессингового центра интернет-эквайринга Сбербанк, где в
соответствующей форме указывает свои данные по банковской карте и при
помощи смс-сообщений подтверждает выполнения операции. После
успешной онлайн-оплаты идет переадресация на страницу созданной CRM
Smatromato с сообщением об успешной оплатой или в противном случае с
сообщением об ошибке.
В случае, когда пользователь неавторизован ему предлагается выбор
авторизации или покупки в 1 клик (рис. 25).
Рис. 25. Страница оформления заказа для неавторизованного
пользователя
Если пользователь соглашается с тем, что он хочет участвовать в
системе лояльности и получать бонусы он проходит регистрацию или
авторизацию либо в противном случае совершает покупку в 1 клик. Для
покупки в один клин требуется ввода телефона для связи и необязательное
поле имя (рис. 26).
78
Рис. 26. Форма покупки в 1 клик
После выполнения процедуры оформления заказа выбранными
способами, пользователь получает на странице номер заказа. В это время
необходимы данные передаются в CRM Smartomato, где менеджер увидит
новый заказ. Менеджер совершает звонок по указанным контактным
данным, проверяет введенную пользователем информацию и ставит статус
«Подтвержден».
После того, как менеджер поставил статус «подтвержден» и любой
другой доступный к выбору статусу, в CMR срабатывает callback, в
котором он посредством http протокола передает сведения о заказе в
разработанную информационную систему.
На сайте вызывается специально написанный модуль, который
обрабатывает присланную ему информацию. Данный модуль работает по
следующему алгоритму:
1. принимает сведения от CRM;
2. проверяет заказ в наличии собственной базе;
3. если заказ найден и имеет статус «подтвержден» запрашивает у
CRM обновленный список блюд;
4. если заказ не найден, то создает в базе данных
соответствующую запись о новом заказе и запрашивает у CRM
список блюд для данного заказа;
5. если статус заказа отличается от статуса «подтвержден», то
меняется статус на тот, который прислала CRM.
79
Приведенный алгоритм позволяет производить все необходимые
действия в дальнейшем. При отсутствии данного функционала была
невозможно реализация функций для поваров и печати этикеток.
Доступ в интерфейс поваров доступен только администраторам
сайта и самими поварами. Он необходим для оперативного отслеживания
необходимости приготовления новых блюд. Существует разграничение
доступа на конкретные категории блюд, например, у сушиста
отображаются все блюда, которые закреплены за категориями «Суши»,
«Роллы» и т.п., а пицмейкер видит все блюда для выпекания из категории
«итальянская пицца», «пицца на толстом тесте». Разграничение уровня
выводимой информации задает администратор сайта (рис. 26). Для каждой
категории он выбирает зарегистрированного пользователя, который
должен видеть блюдо. Для каждой привязки «сайт - категория» можно
привязать только одного повара.
Рис. 26. Привязка поваров к категориям
80
Случается, что привязать категорию необходимо к разным поварам и
для это привязка не осуществляется. Все повара, закрепленные за
установленным сайтом, видят блюда без особых ограничений. Решение о
готовке данного блюда выбирается самостоятельно.
Функционал поваров включает в себя следующее:
отображение закрепленных категорий блюд;
изменение статуса в CRM Smartomato;
изменение внешнего вида заказа в режиме «готовится»;
изменение внешнего вида блюд, для которых была напечатана
этикетка;
непосредственно сама печать этикеток;
изменение статуса в CRM «приготовлен».
На странице разработан специальный JavaScript который на основе
технологий Ajax проверяет каждую минуту о наличии нового блюда.
Клиентская часть приложения отправляет запрос на веб-сервер запрос о
наличии новых блюд с специально сгенерированной служебной
информацией. Веб-сервер после обработки данного запроса сообщает о
наличии нового заказа или его отсутствия клиенту. Скрипт анализирует
присланные данные и если новых блюд не поступало, то он завершает
свою работу и будет вызван через минуту для повторного выполнения.
Если скрипт получил сведения о новом блюде, то воспроизводится
звуковой сигнал и происходит обновление страницы, после которой буду
отображены обновленные данные.
Повар имеет возможность печати этикетки приготовленного блюда.
Для этого от него требуется нажать кнопку «печать». В это время
происходят следующие действия:
1. авторизация аккаунта Google Cloud Print;
81
2. генерация служебной информации для отправки задания в GCP
(например размер бумаги в микронах и содержимое для печати
в формате HTML) и ее отправка;
3. GCP принимает задание и отправляет на указанный в
настройках принтер на печать этикетки;
4. изменяется статус заказа «готовится» или «приготовлен» в
зависимости ко всем блюдам была напечатана этикетка или
нет;
5. отправляется статус в CRM;
6. изменяется статус блюда на «напечатан».
Третье действие для печати этикеток для сушистов увеличивается,
так как принимающий АРМ отправляет задание на печать по локально-
вычислительной сети принтсерверу, после чего идет непосредственно на
принтер. В результате повар получает
Административная панель веб-сайта доступна только по
установленному адресу. Заход через созданные сайты невозможен. Панель
разработана для управления содержимом сайта и позвоволяет оперативно
выполнять следующие функции:
управление доступом;
установка значений для фильтра товаров;
управление баннерами;
управление временем работы;
управление зонами доставками;
экспорт каталога в CRM Smartomato;
просмотр статуса экспорта каталога в CRM Smartomato;
просмотр отчета о продажах в разрезе конкретного блюда по
установленному диапазону дат;
82
управление каталогом товаров и их модификаторами, и
дополнительными товарами к блюдам;
управление категориями, их сортировкой при выводе на экран;
управление сайтами, конфигурирование;
управление слайдером, привязка к необходимым сайтам;
привязка категорий к сайту;
привязка товаров к сайту;
управление статичными страницами;
управление скидками;
интерфейс поваров;
управление push-уведомлениями.
Реализованный список функционала довольно внушительный, что
можно назвать проект гибким под многочисленные задачи предприятия
заказчика. В приложении 1-15 отображен графический интерфейс
административной панели сайта, что позволит увидеть детальную
информацию о доступном функционале.
Спроектированная база данных состоит из 37 реляционных
связанных между собой таблиц. База данных и таблицы имеют тип InnoDB
и работают на основе кодировки utf8_general_ci.
InnoDB — одна из выбираемых подсистем низкого уровня в СУБД
MySQL, входит во все типовые сборки для различных операционных
систем. Основным отличием InnoDB от других подсистем низкого уровня
MySQL является наличие механизма транзакций и внешних ключей.
В отличие от таблиц MyISAM, где для каждой таблицы создается
один файл данных, данные InnoDB в настройках по умолчанию хранятся в
больших совместно используемых файлах, что позволяет использовать
постраничный кэш страниц базы данных. Формат данных InnoDB
83
обеспечивает надежное хранение данных за счет транзакционности и
блокировки данных на уровне строки.
UTF-8 распространённый стандарт кодирования текста,
позволяющий более компактно хранить и передавать символы Юникода,
используя переменное количество байт (от 1 до 4), и обеспечивающий
полную обратную совместимость с 7-битной кодировкой ASCII. Стандарт
UTF-8 официально закреплён в документах RFC 3629 и ISO/IEC 10646
Annex D. Кодировка UTF-8 сейчас является доминирующей в веб-
пространстве. Она также нашла широкое применение в UNIX-подобных
операционных системах. Для указания, что файл закодирован UTF-8,
используется трёхбайтовая отметка (Byte order mark (BOM)): EF16, BB16,
BF16.
84
Список таблиц базы данных изображен на рисунке 27.
Рис. 27. Список таблиц базы данных
В таблицах базы данных записываются все данные, с которыми идет
обработка. Одна из основных таблиц отвечающая за хранение данных о
пользователях, их служебной информации для восстановления пароля и
сам закодированный пароль таблица «tvrssh_user» (рис. 28).
85
Рис. 28. Таблица «tvrssh_user»
Данная таблица имеет индексы, отвечающие за свое назначение, в
них хранится информация о количестве баллов, персональной скидке и т.д.
В таблице 2 представлено описание каждого индекса таблицы.
86
Таблица 2. Описание индексов таблицы «tvrssh_user»
Индекс
Назначение
id
Уникальный идентификатор записи.
Первичный ключ
username
Логин пользователя для входа
auth_key
Хеш сессии
password_hash
Хеш пароля пользователя
password_reset_token
Токен для восстановления пароля
email
Электронная почта
status
Статус – активные, не активный
created_at
Дата и время создания
updated_at
Дата и время изменения
name
Имя пользователя
phone
Телефон пользователя
billStreet
Улица
billHome
Дом
billPod
Подьезд
billEt
Этаж
billApart
Квартира/ офис
score
Количество накопленных баллов
sale
Персональная скидка в процентах
Таблица была создана в соответствии с требованиями технического
задания и интеграции системы CRM Smartomato. Не содержит излишних
данных и имеет только один первичный и внешний ключ «id».
Наименование индексов составлены на латинице и имеют понятное
назначение, не требующие изучения инструкции администратора баз
данных.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран