Сервис бронирования столиков в заведениях ZakaZone

 

Введение


Актуальность проекта определяется постоянно увеличивающимися темпами автоматизации во всех областях жизни и стремительно возрастающими возможностями вычислительных систем. В свете появившихся в последние десятилетия технических возможностей, все чаще обслуживание пользователей осуществляется с помощью данных систем. Особенно растет потребность в программных продуктах, позволяющих пользователю производить самообслуживание - таких как системы электронных платежей или справки покупки билетов и заказа еды. Покупка и заказ посредством интернет сервисом набирает все большую популярность, так как это является удобным способом сделать это быстро и без использования третьих лиц. В том числе стало актуальным бронирование столиков в заведениях с помощью мобильных приложений и сайтов.

На данный момент уже накоплен некоторый опыт разработок в данной области, но от этого круг задач только расширяется. Имеется множество сервисов осуществляющих бронирование, однако каждый из них имеет свои преимущества и недостатки. Точнее говоря, большинство создающихся программных комплексов ориентированы на конкретные задачи и определенные условия.

автоматизированный сервер бронирование столик

1.Описание предметной области


Бронирование осуществляется во многих отраслях. Например, бронирование билетов на концерты, кино. Данный сервис используется для бронирования мест в различных заведениях (кафе, ресторанах и т.п.). Заведения имеют разные способы брони, некоторые поддерживают бронирование любого столика в заведении, другие имеют большой поток клиентов и только администратор решает, какой конкретно столик будет забронирован, а бронь ставится только по времени и количеству человек. Количество человек, собирающихся посетить заведение/забронировать столик, имеет важное значение. Также следует учитывать и другие параметры, например, время работы заведения, возможность посадки в курящем и некурящем зале, цены бронирования. В некоторых заведениях бронирование подразумевает заказ на определенную сумму или же определенной категории блюд.

Бронирование может осуществляться разными способами. Например, непосредственно занесением в базу данных заведения или просто оставлением заявки с последующим звонком администратора заведения для подтверждения.

Сервисы бронирования могут предлагать бронирование для одного заведения или сети заведений или для многих, например, заведения города или даже нескольких городов.

Цели и задачи

Целью выполняемого проекта является разработка автоматизированной системы приёма и обработки заказов столиков в заведениях различного профиля. В связи с тем, что спектр услуг предоставляемых различными заведениями широк, система должна обладать возможностью адаптации.

Главными задачами системы являются:

приём заказов на резервирование столиков;

реализация удобного пользовательского интерфейса;

содействие администратору в выполнении задач управления заведением.


2.Используемые технологии и инструменты


Сервер и сайт

Разработка серверной части системы выполняется в среде Microsoft Visual Studio 2012, используя язык C#и платформу .NetFramework.

Разработка сайта, выполняется в среде Microsoft Visual Studio 2012 на языке C# с применением платформы ASP.NET.

Серверная часть системы расположена на облачной платформе с применением операционной системы Windows Server 2012.

Тестовая версия серверной части расположена на VPS с применением операционной системы Windows Server 2008.

Применяемой системой управления базами данных является реляционная Microsoft Sql Server 2008.

Сайт располагается на Windows хостинге, использующем IISв качестве сервера.

В качестве системы контроля версий по типу git используется BitBucket.

IOS приложение.

При разработке IOS приложения использовались следующие технологии:

1)среда разработки XCode с встроенным Interface Builder версий 4.2 и позднее - 5.1.1, язык - Objective C с фреймворком Cocoa и Cocoa Touch;

2)для разработки криптографической части была использована библиотека Chilkat RSA и Chilkat Crypto версии 2;

)для работы с XML была использована библиотека Touch XML , основанная на библиотеке libXml;

)система контроля версий git с хранением на внешнем репозитории bitbucket.com.

Android приложение:

1)сервис проектирования интерфейсов ninjamock.com;

2)среда разработки Android Development Tools, язык - Java;

3)встроенная функциональность альфа и бета тестирования Google Play.


3.Участники проекта и их обязанности


Романов Андрей Владимирович - разработка серверной части проекта, а именно:

1)проектирование модели базы данных проекта;

2)проектирование API взаимодействия с клиентами (языка обмена информацией клиентов и сервера);

)проектирование серверной части проекта;

)разработка сервера на языке C#;

)тестирование сервера;

)составление документации сервера;

)настройка и конфигурирование системы для использования сервера, в том числе настройка веб-сервера, а также создание и конфигурирование базы данных.

Марунько Антон Евгеньевич:

разработка клиентского приложения для платформы IOS, а именно:

1)проектирование модели базы данных проекта;

2)проектирование API взаимодействия с клиентами;

)проектирование клиентского приложения для платформы IOS (проектирование интерфейса и программной части);

)разработка клиентского приложения для платформы IOS;

)тестирование клиентского приложения;

)написание документации клиентского приложения;

)публикация клиентского приложения в App Store;

менеджмент проекта, а именно:

1)управление разработкой проекта;

2)формирование задач участникам проекта;

)интеграция участников между собой;

)тестирование системы в целом;

)написание текстов технического задания;

)проектирование интерфейса Android приложений;

)публикация приложений платформы Android.

Синчурин Станислав - разработка клиентского и администраторского приложения для платформы Android, а именно:

1)проектирование клиентского и администраторского приложения для платформы Android (проектирование интерфейса и программной части)

2)разработка клиентского и администраторского приложения для платформы Android;

)тестирование Android приложений;

)написание документации Android приложений.

Николаева Валерия Сергеевна - разработка дизайна проекта, а именно:

1)проектирование интерфейсов приложений и сайта;

2)создание графики для приложений и сайта;

)разработка рекламных макетов проекта и представительской графики.

Ащепков Павел - разработка сайта проекта, а именно:

1)проектирование сайта проекта;

2)разработка сайта проекта;

)размещение и конфигурация сайта на хостинге, в том числе привязка домена;

)тестирование сайта;

)написание документации сайта.

Веревкин Владислав:

1)финансовое сопровождение проекта;

2)подготовка отчетов (в государственные структуры);

)юридическое сопровождение проекта;

)распространение проекта.


4.Структура системы


Диаграмма компонентов IOS приложения:


Рис.

5.Стадии и этапы разработки


В проекте можно выделить следующие стадии разработки.

1.Анализ требований, предъявленных к системе

Были определены используемые технологии разработки проекта, требуемые ресурсы - материальные, людские, сроки разработки проекта, стоимость ошибок при проектировании проекта

. Определение спецификаций

На этапе описания спецификаций были определены требуемые функции системы, данные, необходимые для проверки системы на работоспособность.

. Проектирование

На стадии проектирования была разработана модель проекта, схема взаимодействия клиента и сервера и примерное API, а также модель базы данных проекта в соответствии с идеологией IDEF1X и архитектура сервера, приложений, примерный интерфейс приложений и сайта. Примерный интерфейс администраторского приложения приведен в приложении А. База данных на стадии проектирования была переработана множество раз. Проектирование базы данных выполнялось с использованием методологии IDEF1X.


Рисунок 6.1 - Модель базы данных

На рисунке 6.1, располагается исходный вариант диаграммы FA уровня.

Диаграмма представлена следующими сущностями, описание в таблице 6.1.


Таблица 6.1. - Сущности

СущностьОпределениеUSERЗарегистрированный в системе пользовательBOOKINGМетка для стола, в которой указано, время заказа, ФИО и телефон заказавшего.TABLEОбъект в пространстве зала, имеющий определенные координаты и оборудованный местами для сиденияREVIEWSЗапись оставленная пользователем, на сайте или в приложении о заведении.DISHБлюдо, которое можно получить в данном заведении и которое входит в меню.MENUСовокупность блюд для данного заведенияBARПредставляет собой заведение, имеющее определенный адрес, время работы, тип.LOUGEПредставляет собой помещение в заведении с находящимися в нем столикамиTOWNОбласть расположения нескольких заведений

Таблица 6.2 - Атрибуты

АтрибутОпределениеСущностьTelefonКонтактный телефон пользователяUSERPasswordПароль пользователя для доступа к сервисуUSERFioФамилия Имя Отчество пользователяUSERDateTimeВремя от начала работы заведения, до окончанияBOOKINGReviewЗапись о заведении, созданная пользователем на сайте или в мобильном приложенииREVIEWSDishIdИдентификатор блюдаDISHPriceЦена за одну порцию блюдаDISHDescriptionКраткое описание блюдаDISHtownIdИдентификатор городаBARNameНазвание городаTOWNAddressФизический адрес заведенияBARBarIdИдентификатор бараBARTableCountКоличество столиков в заведенииBARShowBookForTableМетка, указывающая можно ли при заказе указать идентификатор столикаBARTableIdИдентификатор столикаTABLESeatsКоличество место за столикомTABLELoungeIdИдентификатор залаLOUNGEIDisSmokeМетка, указыв. можно ли курить в данном залеLOUNGEIDImageУказывает место расположения на жестком диске сервера, картинки залаLOUNGEID

Ниже представлен конечный вариант модели базы данных.


Рисунок 6.2 - Конечная версия модели структуры базы данных


Таблица 6.3 - Обновление сущностей

СущностьОпределениеSESSIONСущность, характеризующая факт авторизации пользователя.ROLEМетка уровня прав которая может быть сопоставлена пользователюUSER-BARФакт соп. сотрудника заведения (пользователя) с конкретным заведением.USER-BAR-ROLEФакт сопоставления метки уровня прав с некоторым пользователем

Таблица 6.4 - Обновление атрибутов

АтрибутОпределениеСущностьTypeТип заведенияBARWorkTimeВремя от начала работы заведения, до окончанияBARTableCountКоличество столиков в залеLOUNGEcoordГеометрическое расположение центра стола на плоскости залаTABLEHashTelSHA1 хэш от номера телефона пользователяSESSIONSIDИдентификатор сессииSESSIONSessionKeyСессионный ключ, используемый в алгоритме AESSESSIONPathПуть до хранилища информации о сессииSESSIONDomainURI для которого идентификатор сессии считается правильнымSESSIONDataEndВремя и дата окончания действия сессииSESSIONInitialVectorВектор инициализации, используемый в алгоритме AESSESSIONLoginЛогин администратора для досутпа к сервисуADMINPasswordПароль администратора для досутпа к сервисуADMINDescBarОписание заведенияBARMapAttrКоординаты геометрического центра заведения на картеBARroleIdИдентификатор ролиROLEnameroleОписание ролиROLE

В конце стадии проектирования были разработаны технические задания, определены сроки разработки проекта и вывода его на рынок. Пример технического задания на разработку сайта в приложении Б.

. Кодирование

На этапе кодирования были разработаны модули системы, клиентская и серверная часть.

Представим реализацию этапа кодирования в виде снимков экрана системы контроля версий.

Серверная часть:

автоматизированный сервер бронирование столик

Рисунок 6.3 - система контроля версий сервера, часть 1

Рисунок 6.4 - система контроля версий сервера, часть 2


Рисунок 6.5 - система контроля версий сервера, часть 3


Рисунок 6.6 - система контроля версий сервера, часть 4

Рисунок 6.7 - система контроля версий сервера, часть 5


Приложение платформы IOS:


Рисунок 6.8 - система контроля версий IOS приложения


Приложение платформы Android:


Рисунок 6.9 - система контроля версий Android приложения

6. Тестирование системы


Сервис тестировался автономно, комплексно и системно.

В качестве примера комплексного тестирования можно привести таблицу автоматического тестирования сервера:

Для системного тестирования были использованы различные устройства на платформах Android (версий API -2.2; 2.3.3; 4.0; 4.1; 4.2; 4.4) и IOS (версии 6.0, 6.1.1, 7.0, 7.1). Для тестирования использовались максимально возможно устройства с разными характеристиками ( размером экрана, мощностью процессоров и прочими аппаратными характеристиками). Для тестирования сайта использовались различные браузеры - Mozilla Firefox, Safari, Opera, Google Chrome, Internet Explorer версий 7.0 и выше, а также мобильные аналоги браузеров Safari, Google Chrome, Opera.

Заключение


В ходе проделанной работы был разработан сервис, который делает обслуживание заведения администратором удобнее и автоматизирует его. Сервис помогает наполнить заведение клиентами из сети и увеличивает его посещаемость, а значит и экономическую выгоду.

Сервис упрощает бронирование для конечных пользователей, позволяет бронировать столики круглосуточно и выбирать их на удобной 3d схеме зала.

Итогом работы над проектом является разработанный сервис бронирования, а именно - серверная часть, клиентские части - сайт, мобильные приложения, был заключен договор на обслуживание системой в одном из заведений города. Итоговые снимки экранов можно посмотреть в приложении В.

Список использованной литературы


1.В.Д. Сибилев «Базы данных»: Учебное пособие - Томск: ТУСУР, 2006

.С. Макконнелл «Совершенный код» - Санкт-Петербург: Питер, 2007

.MSDN [Электронный ресурс] - #"justify">.Android for developers [Электронный ресурс] - #"justify">.IOS for developers [Электронный ресурс] - http://developer.apple.com/ (дата обращения 12.02.2014)


Приложение А


Рисунок А.1 - окно авторизации

Рисунок А.2 - окно с схемой зала

Рисунок А.3 - окно удаления и добавления брони


Приложение Б


Цель - создание сервиса бронирования столиков.

Структура сайта.

a.Главная страница

В верхней части располагается картинка с логотипом. Визуально видно три колонки. Первая колонка содержит - кнопка для владельцев заведений с ссылкой или кнопкой на страницу контактов.

Вторая колонка - описание сервиса. Внизу кнопка «начать работу с сервисом» с ссылкой на страницу бронирования.

Третья - вход для пользователей. Текстовые поля для ввода телефона и пароля. Кнопка «войти» и ссылка на форму регистрации.

После успешного входа - открыть страницу бронирования.

После неудачного входа - вывести сообщение об этом и предложить зарегистрироваться.

Внизу страницы - ссылки на Google Play и App store.


Рисунок Б.1 - вид главной страницы

Страница бронирования:

Верхняя часть - неизменяемая картинка с логотипом.

Несколько checkboxов, а именно - выбор города, выбор заведения, выбор даты.

Выбор даты - возможен только на сегодня и последующий месяц. При нажатии на выбор даты, появляется маленький всплывающий календарь, например:


Рисунок Б.2 - вид календаря для выбора даты


После выбора всех параметров в нижней части окна, если такое возможно - появляется картинка с основным залом заведения. При возможности выбора столика (параметр заведения, узнаваемый при запросе на сервер) вывод меток на каждый столик, с красным идентификатором - занят сегодня, зеленым - свободен.

Если у заведения несколько залов - картинки залов можно листать влево - вправо. Небольшими стрелками сбоку.

При отсутствии бронирования по столикам у заведения - появление внизу кнопки «забронировать». При нажатии переход на форму бронирования (рисунок б.3).

Рисунок Б.3 - вид заведения с метками


Для заведения с отсутствием меток:


Рисунок Б.4 - вид заведения без меток

При нажатии на метку - открыть форму бронирования, если пользователь уже вошел, или открыть форму входа, подобную форме на главной странице:

7.Форма входа:

При входе, отправить пользователя на форму бронирования с данными, которые он уже выбрал.


Рисунок Б.5 - вид формы входа


8.Форма бронирования:

В основной области сначала - вывод параметров, выбранных пользователем - город, заведение, дата.

Затем checkbox с выбором доступного времени ( в зависимости от выбранного столика (брони уже существующей для него) и часов работы заведения, а также, если выбрана сегодняшняя дата - выбор лишь времени на час больше текущего.

Подтверждение выбора параметров брони. Всплывающее окошко для ввода смс-кода подтверждения брони. При успешном вводе - показать сообщение об этом с данными о бронировании (времени, даты, заведения)

Рисунок Б.6 - вид формы бронирования


9.Форма регистрации:

Заполнение параметров формы - имя, фамилия, отчество, телефон и пароль, и кнопка зарегистрироваться. При правильном вводе всех полей - отправка на сервер, нет - сообщение о неправильном вводе. Подтверждение регистрации по смс.


Рисунок Б.7 - вид формы регистрации

Приложение В


Рисунок В.1 - окно опций администраторского приложения

Рисунок В.2 - окно бронирования Android приложения

Рисунок В.3 - окно входа Android приложения

Рисунок В.4 - окно входа приложение IOS

Рисунок В.5 - главная страница сайта


Рисунок В.6 - страница выбора столика на сайте


Рисунок В.7 - заставка при запуске приложения IOS

ено н


Введение Актуальность проекта определяется постоянно увеличивающимися темпами автоматизации во всех областях жизни и стремительно возрастающими возможнос

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ