close

Вход

Забыли?

вход по аккаунту

Камышников Николай Александрович. Разработка онлайн-сервиса записи на мойку автомобилей для мессенджера Telegram

код для вставки
1
2
3
4
АННОТАЦИЯ
ВКР 73 с., 33 рис., 2 табл., 13 источников, 1 прил.
ОНЛАЙН-СЕРВИС,
МОЙКА
АВТОМОБИЛЕЙ,
МЕССЕНДЖЕР,
TELEGRAM.
Выпускная квалификационная работа посвящена онлайн-сервиса записи
на мойку автомобилей для мессенджера Telegram.
В первой главе произведен анализ предметной области и постановка
задачи, выявлена актуальность проблемы, выполнен анализ аналогичных
разработок, произведено описание процесса, определены функциональные
требования к разрабатываемой системе, описаны инструменты разработки
онлайн-сервиса записи на мойку автомобилей для мессенджера Telegram.
Во второй главе произведено проектирование системы, разработана
архитектура и функциональная схема разработки онлайн-сервиса записи на
мойку автомобилей для мессенджера Telegram, спроектирована база данных.
В третьей главе произведена разработка онлайн-сервиса записи на мойку
автомобилей для мессенджера Telegram.
5
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
7
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ
9
1.1 Анализ предметной области
9
1.2 Анализ процесса автоматизации записи на мойку автомобиля
18
1.3 Сравнительный анализ средств автоматизации процесса записи на мойку
автомобиля
20
1.4 Постановка задачи
24
1.5 Анализ функциональных и нефункциональных требований к
разрабатываемому сервису
26
1.5.1 Функциональные требования
26
1.5.2 Нефункциональные требования
27
1.6 Описание бизнес процесса
27
2 ПРОЕКТИРОВАНИЕ ОНЛАЙН-СЕРВИСА ЗАПИСИ НА МОЙКУ
АВТОМОБИЛЕЙ ДЛЯ МЕССЕНДЖЕРА TELEGRAM
31
2.1 Архитектура системы
31
2.2 Выбор инструментальных средств разработки онлайн-сервиса записи на мойку
автомобилей для мессенджера Telegram
32
2.3 Проектирование базы данных
33
2.3.1 Обзор систем управления базами данных
33
2.3.2 Определение сущностей базы данных и их атрибутов
36
2.3.3 Нормализация концептуальной схемы базы данных
37
2.3.4 Описание структуры данных
39
3 РЕАЛИЗАЦИЯ ОНЛАЙН-СЕРВИСА ЗАПИСИ НА МОЙКУ АВТОМОБИЛЕЙ
ДЛЯ МЕССЕНДЖЕРА TELEGRAM
44
3.1 Проектирование алгоритмов
44
3.1.1 Алгоритм регистрации пользователя в системе
44
3.1.2 Алгоритм проверки истории пользователей
44
3.1.3 Алгоритм онлайн-записи пользователей на мойку
46
6
3.1.4 Алгоритм бронирования живой очереди администратором
47
3.2 Логика диалога с пользователем
48
3.3 Экранные формы разработанного онлайн-сервиса записи на мойку
автомобилей для мессенджера Telegram
50
3.3.1 Экранные формы администратора
50
3.3.2 Экранные формы пользователя
53
ЗАКЛЮЧЕНИЕ
63
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
64
ПРИЛОЖЕНИЕ А (ОБЯЗАТЕЛЬНОЕ)
66
УДОСТОВЕРЯЮЩИЙ ЛИСТ
73
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА ДОКУМЕНТА НА
ЭЛЕКТРОННОМ НОСИТЕЛЕ
74
7
ВВЕДЕНИЕ
Автомобиль нуждается в обслуживании со стороны различных сервисов,
одним из них является сервис мойки автомобилей. Он предоставляет ряд полезных
услуг, основные из них:

мойка кузова;

уборка салона автомобиля;

химическая чистка;

полировочные услуги.
В нашей стране чисто автовладельцев растет из года в год, соответственно,
растет и спрос на услуги сервиса мойки автомобилей.
Так как сервис мойки автомобилей – это коммерческая организация, его
задачей является поиск новых клиентов и удержание старых. Поиск новых
клиентов осуществляется рекламной компанией, удержание происходит путем
скидок, дисконтных карт. Одной из важных задач сервиса мойки автомобилей,
является получение контактных данных клиента с целью информирования о новых
услугах.
Еще одним видом получения новых клиентов является использование
мобильных сервисов, таких как ВКонтакте, Одноклассники, Facebook, Telegram.
Актуальность разработки онлайн-сервиса записи на мойку автомобилей для
мессенджера Telegram обусловлена следующими факторами:

стоимость разработки онлайн сервиса для Telegram существенно ниже
разработки приложений и сайтов;

популярность сервиса дает право гарантировать удобство пользования
у пользователей;

упрощение работы администратора автомойки за счет Telegram – bot;

при
ручной
записи
велика
вероятность
ошибки
человеческого фактора, Telegram – bot исключает данные инциденты.
вследствие
8
Целью данной выпускной квалифицированной работы является разработка
онлайн-сервиса записи на мойку автомобилей для мессенджера Telegram.
Для достижения поставленной цели необходимо решить ряд задач:
а)
провести
анализ
предметной
области,
осуществить
анализ
существующих видов записи на сервисы мойки автомобилей;
б)
определить функциональные и нефункциональные требования к
разрабатываемой системе;
в)
выбрать средства для разработки системы;
г)
разработать модель базы данных;
д)
спроектировать схему логики диалога с пользователем;
е)
разработать онлайн-сервис записи на мойку автомобилей для
мессенджера Telegram.
9
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ
1.1 Анализ предметной области
Количество автомобилей с каждым годом увеличивается. Такая тенденция
особенно характерна для мегаполисов, где обеспеченность автомобилями может
превышать 300 авто на 1000 человек [1]. Пропорционально росту численности
автомобилистов увеличивается и спрос на услуги по содержанию автомобилей, в
том числе услуги автомоек.
Зачастую автомойки располагаются на автозаправочных станциях, рядом с
автомагазинами и станциями технического обслуживания автомобилей.
По
типу
обслуживания
самообслуживания
и
где
автомойки
операции
с
делятся
на
две
автомобилем
категории:
осуществляются
обслуживающим персоналом – автомойщиками и механизированные мойки, где
процесс мойки осуществляется автоматически оборудованием автомойки.
Механизм мойки бывает контактный: предполагает механическое удаление
грязи с поверхности автомобиля с использованием щеток, тряпок, губок и др.
Бесконтактный:
специальных
удаление
загрязнений
сильнодействующих
осуществляется
моющих
веществ
с
использованием
(активная
пена
или
бесконтактный шампунь) и мощных струй воды под высоким давлением
Основные услуги, оказываемые автомойками:
1.
Мойка кузова автомобиля. В неё входит мойка кузова и колесных
дисков. Будет оказываться двумя мойщиками в течении 10 минут.
2.
Уборка салона авто. В данную услугу будет входить протирка стекол,
чистка тканевых и кожаных поверхностей салона, уборка пыли и мусора (пылесос).
3.
Химическая чистка салона. В данную услугу входит чистка сидений,
пола, потолка, дверей, ремней безопасности, пластика.
4.
Полировочные услуги. Сюда входят обработка кузова жидким воском,
полировка кузова полиролью, полировка передней панели и пластика и т.д.
5.
Дополнительные услуги. Это такие услуги как очистка дисков,
чернение колес, обработка замков, удаление следов насекомых и т.д.
10
На автомойке всегда регулируется график рабочих в связи с занятостью
боксов, количество рабочих зависит от количества открытых боксов, а также от
потока клиентов. Максимальная загрузка происходит с утра и в вечернее время
Автомойка по своей сути является коммерческой организацией, нацеленной
на получение прибыли. И как у каждой коммерческой организации у нее
существует два варианта поддерживать и увеличивать свою прибыль. Первый
искать новых клиентов, акцентируя внимание на рекламе и второй - расширять
свой спектр услуг и информировать своих клиентов об этом, а так же не упускать
из внимания такую важную вещь как система скидок.
Привлечение новых клиентов достигается в большей степени из-за рекламы.
Существует четыре вида рекламы [2]:
a)
реклама в сети Internet;
b)
медийная (баннерная) реклама;
c)
реклама в видеороликах;
d)
таргетинг в мессенджерах.
Реклама в сети Internet делится на контекстную и таргетированную.
Контекстная реклама — это текстовые объявления, которые показываются
пользователю
в
момент
проявления
заинтересованности
к
товару,
они
генерируются по запросам пользователя, если эти запросы рекламодатель добавил
в настройки рекламной компании. Контекстная реклама бывает поисковой
и тематической.
Контекстные рекламные объявления – с их помощью высока вероятность
привлечения целевых посетителей на сайт рекламодателя и добиться повышения
показателей продаж, это один из наиболее эффективных способов интернет
рекламы.
Поисковая контекстная реклама.
Поисковая контекстная реклама показывается в результатах поиска
в крупнейших
поисковых
системах
(Яндексе, Google, Рамблере, Поиск@mail.ru и др.) или по сайту (так называемые
11
вертикальные поиски) в том случае, если запрос пользователя совпадает
с ключевыми словами контекстного объявления.
Существует большой сегмент специализированных сайтов, в структуре
которых
поиск
играет
важную
роль:
top100.rambler.ru,
auto.rambler.ru,
automobile.ru, go.km.ru и многие другие.
Тематическая контекстная реклама.
Тематическая контекстная реклама показывается на странице сайта,
входящего в партнерскую сеть рекламных систем, если тематика рекламы
соответствует интересам пользователя. Тематическая реклама показывается как
дополнительная информация к содержанию страниц, которые просматривает
пользователь.
Показы тематической рекламы осуществляются на основе нескольких
технологий:

контекстный таргетинг — контекстная система в автоматическом
режиме считывает контент страниц сайта и показывает максимально релевантные
содержанию страницы рекламные объявления;

поведенческие технологии - при показе объявлений система учитывает
историю поиска пользователя в интернете;

ремаркетинг
–
это
инструмент
ориентируется
на поведение
пользователя на сайтах рекламодателей и показывает рекламу тех товаров и услуг,
которые он просматривал, добавлял в корзину и пр.
В Партнерскую
сеть
контекстной
системы
принимаются
только
посещаемые и качественные сайты. Каждый сайт, подавший заявку на вступление
в Партнерскую сеть, проверяется на соответствие условиям участия. Рекламные
системы не принимают в Партнерскую сеть ресурсы с некачественным контентом
и сайты, созданные специально для заработка на размещении рекламы.
У основных контекстных систем есть обширные Партнерские сети сайтов:

у системы Яндекс.Директ — это Рекламная сеть Яндекса (РСЯ);
12

у системы
Google
AdWords —
это
система Google
Display
Network (Контекстно-медийная сеть, КМС);

у Бегуна — это Рекламная сеть Бегуна.
Пользователя интернета можно сравнить с покупателем, пытающимся
выбрать товар в огромном супермаркете. Он вводит запросы, чтобы найти нужную
информацию, в том числе по товарам и услугам, а вы предлагаете ему помощь,
рассказывая о своих предложениях, разместив контекстные рекламные объявления
по его запросам.
В контекстной
рекламе
рекламодатели
полностью
сами
руководят
ее стоимостью и назначают допустимые для себя ставки клика по объявлению.
В системе Яндекс.Директ минимальная ставка составляет 40 коп., в Google
AdWords — $ 0,02, в системе Бегун — 2 руб.
2) Таргетированная реклама в социальных сетях: ВКонтакте, Одноклассники,
Facebook, Instagram.
Отдельной группой можно выделить рекламные компании, проводимые в
социальных сетях. Это и неудивительно – ведь миллионы людей предпочитают
проводить свое свободное времени именно на таких сайтах как ВКонтакте или в
Facebook.
При регистрации в социальных сетях большая часть пользователей
предоставляют довольно полезную информацию о себе, например, возраст, пол,
страну и город проживания, а также свои увлечения.
Для рекламодателей это значит, что можно не просто рекламировать какойлибо свой продукт, но делать это исключительно для тех пользователей, кто
является целевой аудиторией рекламодателя.
Возможности размещения рекламы в социальных сетях достаточно
обширны.
Сюда относятся:

размещение рекламных текстов и объявлений на собственной странице
под своим аккаунтом (не требует никаких средств);
13

на
создание специальной группы или сообщества (потребует только время
создание
и
оплату
сотруднику,
который
будет
заниматься
администрированием);

платное размещение рекламных объявлений;

проведение различных конкурсов, для победы в которых необходимо
сделать репост какой-либо записи (в этом случае стоимость проведения рекламы
определяется ценой приза).
Таргетированная, то есть нацеленная на целевую аудиторию, реклама в
социальных сетях обладает целым рядом преимуществ:

пользователю не требуется переходить на сторонний ресурс,
обеспечивая себе тем самым удобство и комфорт;

простота размещения рекламы, часто для этого даже не требуется
специальных знаний – достаточно просто загрузить отснятое фото или написать
нужный текст.
В первую очередь для рекламодателя любопытны самые популярные
сервисы, ведь именно здесь можно найти огромное количество потенциальных
покупателей.
Реклама ВКонтакте.
Если говорить о российском сегменте Интернета, то вряд ли какой-либо
ресурс может конкурировать с этим детищем Павла Дурова. Тем более что здесь
существует и своя рекламная сеть, подобная тем, что существуют у Яндекса и
Google. Принцип ее действия прост – необходимо настроить показ рекламы с
учетом имеющегося бюджета.
Важно отметить, что рекламировать таким образом стоит только недорогие
и уже раскрученные, пользующиеся популярностью, товары.
Реклама в Одноклассниках.
Еще одна популярная российская социальная сеть, Одноклассники, также
предлагает интересные варианты недорогого размещения своих объявлений. Здесь
14
аудитория, как правило, постарше, чем на предыдущем сервисе, а потому более
платежеспособная. Так что здесь возможно продвижение и более дорогих услуг.
Особенностями размещения рекламных объявления в Одноклассниках
являются:

возможность настраивать время показа, что обеспечивает большую
эффективность;

показ рекламы осуществляется и на других сервисах, принадлежащих
Mail.ru, например, в «Мой мир»;

возможность ремаркетинга, то есть автоматическое отслеживание тех,
кто уже совершил какое-либо действие по размещенному объявлению, с целью
повторного привлечения.
Реклама в Instagram.
В отличие от двух уже указанных выше соцсетей, у Инстаграма есть своя
специализация – картинки и короткие видео. Общение здесь сводится к
выкладыванию фотографий, сделанных здесь и сейчас, и к получению лайков и
комментариев к ним.
До недавнего времени вся реклама в Инстаграм была возможно только
ограниченными способами:

создание специальных сообществ и приглашение в них пользователей;

подписка на профили других пользователей с тем, чтобы они
подписались на аккаунт рекламодателя в ответ;

размещение рекламных постов в популярных аккаунтах.
Текстовая информация в Instagram играет значительно меньшую роль. А
потому и продвигаемый продукт должен хорошо и эффектно смотреться на
фотографиях. Не стоит забывать и о том, что этот ресурс пользуется
популярностью прежде всего у женщин, а потому рекламируемый продукт должен
соответствовать этой категории клиентов.
15
Медийная (баннерная) реклама.
Продвигать услуги или товары с помощью баннера достаточно во многом
схоже с традиционной рекламой, когда объявление, большое или маленькое,
располагается в газетах или журналах.
Важное свойство баннеров – это их интерактивность. Очень часто при
нажатии на баннер пользователь попадает на сайт рекламодателя. Нередко можно
повстречать флэш-баннеры в виде коротеньких игр или маленьких заданий. После
прохождения такой игры потенциальному клиенту ненавязчиво сообщают о
продвигаемой услуге или товаре.
Особенностью баннеров является формирование у пользователя интернета
узнаваемости какого-либо продукта или марки, зафиксировать назначенный
ассоциативный ряд.
Таким образом, баннеры могут разделяться на две категории:

побуждающие
пользователя
совершить
определенное
действие
(например, перейти на сайт);

создающие определенный стиль и узнаваемость рекламодателя.
Для размещения баннера компания или предприниматель договаривается с
владельцем какого-либо сайта о том, чтобы тот поставит на принадлежащем ему
ресурсе искомую картинку или анимированный ролик.
Стоимость баннерной рекламы зависит от многих параметров, в числе
которых:

популярность ресурса, на котором размещается баннер;

размер самого баннера;

местоположение его на странице.
Чаще всего оплата производится либо за количество показов баннера,
либо за
количество
переходов
по
нему на
сайт
рекламодателя. Изредка
применяется оплата за постоянное размещение баннера на какой-либо странице.
Как правило, такой способ применяется на короткое время на сайтах с большой
16
проходимостью. Ведь через какое-то время на привычную картинку или анимацию
люди попросту перестают обращать внимание.
Реклама в видеороликах.
В чем-то схожей с социальными сетями структурой обладает крайне
популярный ресурс YouTube, где выкладывается большое число видеороликов
пользователей со всего мира.
Просмотры отдельных роликов могут зашкаливать за миллионы! Можно
представить, какое огромное количество потенциальных клиентов возможно
привлечь таким способом.
На Youtube существует несколько видов размещения рекламы:

сам выложенный видеоролик на каком-либо канале – как на
собственном, так и за плату на чужом, пользующемся популярностью;

небольшой рекламный ролик, который демонстрируется перед показом
основного;
Так же, как и предыдущие способы рекламы, этот вид продвижения дает
возможность выборки показов только целевой аудитории.

чтобы рекламу увидели, как можно больше потенциальных клиентов,
ее нужно размещать на очень популярных каналах, а это стоит крайне недешево;

пользователи имеют возможность отключать рекламу, а также
использовать специальные программные средства для ее блокировки.
Таргеттинг в мессенджерах.
За последние два года мессенджеры ввел много новшеств. Одно из них —
разделение аккаунтов на коммерческие и личные. Теперь эти социальные сети из
приложения с красивыми картинками превратилась в удобный инструмент
маркетинга. После перехода на коммерческий аккаунт собственники бизнеса
получили доступ к статистике эффективности постов, вовлеченности аудитории и
новому инструменту продвижения — таргетированной рекламе в новостной ленте.
17
Мессенджеры — визуальные социальные сети, продвигаться в них хорошо
бизнесам, чьи товары и услуги можно представить красивым визуальным
контентом.
Пользователи мессенджеров воспринимают информацию в первую очередь
на эмоциях. Средний чек покупки через мессенджеры не превышает 10000 рублей.
Наиболее хорошо продаются товары и услуги стоимостью 3000—4000 рублей.
В таблице 1 представлен сводный анализ описанных видов интернетрекламы
Таблица 1 – Сводный анализ описанных видов интернет-рекламы
Вид рекламы
Стоимость
Попадание в
целевую
аудиторию
Эффективность
1
Контекстная
Средняя (+)
Высокое (+)
Высокая (+)
2
Таргетированная,
в соц. Сетях
Средняя
(+/-)
Очень высокое
(+)
Высокая (+)
3
Банерная
Высокая (-)
Среднее (+/-)
Низкая (-)
4
Видеоролики
Средняя
(+/-)
Среднее (+/-)
Высокая (+)
5
Таргетинг в
мессенджерах
Низкая (+)
Высокое (+)
Высокая (+)
№
Удержание постоянных клиентов возможно за счет лояльной системы
скидок. Она служит долгосрочным договором между клиентом и автомойкой, где
18
обе стороны действуют во благо друг другу. Пользователь соглашается на
использование его персональных данных и рассылки рекламных материалов через
сервис Telegram, а также по его истории заказов предприятие ориентируется на
предпочтение
клиента
и
реализует
выгодные
рекламные
предложения
индивидуально в соответствии с выбираемым спектром услуг на автомойке.
Существует три группы клиентов:
–
группа «Цена»;
–
группа «Цена и качество»;
–
группа «Цена, качество и сервис».
Самая массивная группа – это группа «Цена», более 50% клиентов. Это те
клиенты, когда цена интересует в первую очередь. Это основная группа, на
которую нацелена любая компания. Скидочная компания должна быть регулярна и
последовательна в данном случае. Большой разброс скидок и разнообразие
скидочных услуг.
Вторая группа «Цена и качество» - это более въедливые клиенты. Для них
мало сделать просто скидку, нужно еще и обозначить, что из себя представляет
товар. Для данной группы не стоит делать больших скидок и нужно правильно
написать о скидках. Для группы «Цена и качество» должен быть повод для скидки.
Третья группа «Цена, качество и сервис». К таким клиентам нужен
персональный подход. Таким клиентам не нужна скидка, потому что они приходят,
когда довольны всеми показателями вместе взятыми.
Гибкая система скидок максимально эффективная тогда, когда работает
сразу все три группы клиентов и она дает максимальную прибыль.
1.2 Анализ процесса автоматизации записи на мойку автомобиля
На данный момент автомойки используют две формы записи: по телефону
и через интернет, в том числе актуален вопрос о онлайн-записи через мессенджеры
Facebook Messenger, ВКонтакте и Telegram.
19
Запись по телефону удобно использовать на автомойках, с маленьким
потоком и высоким средним чеком. Здесь главная цель телефонного разговора ―
не собственно запись, а возможность поговорить с клиентом, выяснить его
пожелания и предложить оптимальный набор услуг.
Запись через интернет происходит с помощью сайтов и приложений.
Запись
экономит
время
клиентов,
делает
случайного
посетителя
постоянным, дает возможность не потерять клиента, который не хочет стоять в
очереди.
Запись ― это удобство, которое увеличивает поток клиентов и делает их
лояльными. Она упорядочивает поток, делает его более предсказуемым. Кроме
того, запись можно использовать, как механизм продвижения услуг.
Если запись по телефону довольна простая и на все интересующие вопросы
вам ответит администратор, то запись через интернет должна обладать
определенным набором возможностей:

информация о загрузке бокса, клиент должен быть уверен, в том, что в
нужное время для него зарезервируют место, иначе запись теряет смысл;

учет живой очереди при записи. если бокс используется одновременно
под запись и живую очередь, нужно блокировать запись, когда там находятся
машины из живой очереди;

быстрая связь с клиентом через приложение, администратору не нужны
другие технические средства для связи, он может написать клиенту через
приложение;

отмена заказа клиентом, обстоятельства могли измениться, и надо дать
клиенту возможность отменить запись.
20
1.3 Сравнительный анализ средств автоматизации процесса записи на
мойку автомобиля
Что бы выделить преимущества разрабатываемой подсистемы необходимо
рассмотреть
аналоги,
которые
выступают
рынка
подобных
сервисов,
направленных на онлайн-запись.
1. Мобильное приложение агрегатора сервиса мойки автомобилей
«RocketWash» [3].
Автовладелец устанавливает на мобильное устройство приложение,
которое принадлежит компании-агрегатору автомоек. Можно записаться на любую
автомойку, которая участвует в партнерской системе агрегатора «RocketWash».
Плюсы для клиента:
Удобный интерфейс.

клиент не привязан к конкретной мойке;

вместо множества разных приложений под каждую мойку, у него на
телефоне одно;

выбор автомойки по отзывам и оценке других клиентов.
Минусы для клиента:

недостоверная информация о загрузке мойки: у приложения нет
обратной связи с учетной системой, т.е. не учитывается живая очередь;

не всегда актуальный прайс, это связано с ошибками массовой загрузки
данных от разных моек и проблемами с обновлением данных при изменении прайса
на конкретной мойке;

затруднена обратная связь, не из всех приложений можно обратиться к
руководству мойки: максимум дан телефон мойки.
Плюсы для мойки:

дополнительный поток клиентов, мойка тратит минимум средств на
продвижение, за нее это делает агрегатор;

минимальные вложения, так как уже готовое решение тебе продают
или дают в лизинг, за абонемент или процент за каждое обращение.
21
Минусы для мойки:

клиент может не приехать на забронированное время;

затруднен маркетинг, потому что нет возможности организации
массовых рассылок и оповещений.
2. Мобильное приложение «СОЮЗ – автомойка» [4].
Автовладелец устанавливает на мобильное устройство приложение,
которое принадлежит автомойке «СОЮЗ – автомойка», и сразу может записаться
на учетной. Приложение связано с учетной системой (АСУ). Оттуда оно получает
сведения о текущей загрузке автомойки, услугах и персональных скидках.
Плюсы для клиента:

удобный интерфейс, клиент записывается в два-три клика;

достоверная информация о загрузке мойки и актуальный прайс,
приложение получает данные напрямую из учетной системы;

сохранение данных пользователя, клиент вводит сведения о себе и
автомобиле один раз, далее приложение подставляет их в нужное место;

дополнительный функционал, к приложению можно подключить
любой сервис: вызов эвакуатора, оплату штрафов и т.п;

обратная связь с мойкой, приложение позволяет клиенту оставлять
отзывы, предложения и комментарии;
Минусы для клиента в том, что при использовании нескольких автомоек,
необходимо скачивать приложение под конкретную автомойку.
Плюсы для автомойки:

через приложение автовладельцы записываются только к вам, все
пользователи приложения — ваши клиенты;

бесплатные push-уведомления с рекламой, это отличная замена
скучной и блеклой SMS-рекламе.
22
Минусы для автомойки:

скудные возможности по привлечению новых клиентов;

дороговизна разработки или владения, программисты попросят за
разработку приложения для одной из платформ (Android или iOS) от 30 до 100 тыс.
рублей, в зависимости от функционала, также на ваши плечи лягут апгрейд и
исправление ошибок, альтернативный вариант — аренда (покупка) готового
приложения, годовое владение таким приложением может сравниться по
стоимости с разработкой;

поддерживаются не все платформы, например, через компьютер клиент
записаться не сможет.
3. Сайт автомойки «Революция» [5].
Разработчики компьютерных систем учета для автомоек предлагают еще
одно решение: вы ставите на свой сайт кнопку, которая интегрирована с учетной
программой. Клиенты могут записаться на услуги прямо с сайта.
Плюсы для клиента:

актуальная информация о загрузке мойки;

актуальный прайс;

мультиплатформенность,
клиент
может
записаться
с
любого
устройства, под любой ОС.
Минусы для клиента:

менее удобный интерфейс, чем в приложениях;

запись на конкретную мойку, если она занята, обращаемся к другому
ресурсу.
Плюсы для мойки:

клиент записывается конкретно к вам, и только к вам;

обратная связь с клиентом, клиент может оставить жалобу,
благодарность.

минимальные затраты, возможно скоро разработчики учетных систем
станут предлагать приложение вообще бесплатно;
23

отсутствие регулярных платежей за сервис.
Минусы для мойки в том, что нужен сайт, если его нет, то соответственно
будут затраты на его создание.
4. Группа в социальных сетях с кнопкой записи
Социальные сети стали популярными. Для многих людей интернет
ассоциируется с социальными сетями: там они читают новости, слушают музыку,
общаются. Сейчас автомойки имеют свои группы в социальных сетях. Можно
вставить кнопку для записи непосредственно в группу в социальной сети. Само
собой, запись через группу должна быть интегрирована с учетной системой
автомойки.
Плюсы для клиента:

удобный интерфейс, как в приложении;

достоверная информация о загрузке мойки;

актуальный прайс;

обратная связь, отзыв можно написать прямо в группу;
Минусы для клиента:

каждая мойка — это своя группа в социальной сети, а значит куча спама
в ленте;

привязка к конкретной социальной сети.
Плюсы для мойки:

продвижение с помощью таргетированной рекламы: платишь ВК за
рассылку пользователям вашего района, информация появляется в их ленте и они
сами находят и записываются, это почти идеальное совмещение клиентского
сервиса и инструмента продвижения;

минимальные вложения, стоимость кнопки — 3-5 тысяч рублей;

бесплатные
рассылки
программах лояльности;

обратная связь.
и
уведомления:
о
записи,
готовности,
24
Минусы для мойки:

не все пользуются социальными сетями;

вложения в рекламу в социальные сети. Без нее эффективность
социальной сети, как инструмента продвижения утрачивается.
В таблице 2 представлена сравнительная характеристика основных функций
приложений-аналогов
Таблица 2 – Сравнительная сервисов автоматизированной записи на мойку
автомобиля
Мобильное
Функции /
Приложение
приложение
Приложение
RocketWash
СОЮЗ
автомойка
Информация о
загрузке мойки
Актуальный
прайс
Сайт
-
автомойки
Революция
Социальные сети
Разрабатываемый
Telegram-bot
Нет
Да
Да
Нет
Да
Нет
Да
Да
Да
Да
Нет
Да
Да
Да
Да
Высокие
Высокие
Высокие
Низкие
Низкие
Средняя
Средняя
Низкая
Низкая
Низкая
Реклама,
продвижение
услуг
Денежные
траты на
проектирование
Плата за
пользование
онлайн
сервисом
1.4 Постановка задачи
На основе анализа сервисов автоматизированной записи на мойку
автомобиля можно сделать вывод о более выгодном сервисе онлайн-записи
25
Telegram, а конкретно встроенная возможность создания Telegram-bot, которые
активно развиваются в последние годы.
Telegram bot – это специальные программы, выполняющие различные
функции и упрощающие жизнь их пользователей. Написанные для платформы
Telegram, они предназначены для выполнения самых разных функций: от
получения новостей до поиска информации и даже торговли акциями. Главное
задачей бота является автоматический ответ после введенной ему пользователем
команды.
Многие компании, развивающие бизнес через интернет, используют
возможности ботов по нескольким причинам:

они быстро выполняют однообразную работу, позволяя разгрузить
наемных сотрудников, тем самым экономя деньги компании;

они позволяют задействовать канал коммуникацией с целевой
аудиторией (в России Telegram пользуется около 10 миллионов человек).
В настоящее время большая часть сервисов мойки автомобилей не
используют сайты и приложения для записи клиентов онлайн, весь процесс
происходит по телефону с участием оператора.
Основной задачей разрабатываемого Telegram-bot является онлайн-запись
для сервиса мойки автомобилей. Telegram-bot учитывает живую очередь и
блокирует
запись,
когда
там
находятся
машины
из
живой
очереди.
Информирования администратора так же присутствует, который своевременно
блокирует выбранную запись, а также блокирует множественную запись одним
клиентом. Предварительная запись за несколько дней так же присутствует в
сервисе. Клиент перед началом пользования соглашается на обработку
персональных данных и отправляет номер телефона, это необходимо в случае, если
клиент не может ответить администратору в Telergam, то с ним можно связаться по
телефону и уточнить интересующую информацию. Далее клиент выбирает нужную
ему дату и время посещения автомойки, онлайн – сервис записи выведет свободное
время на выбранную дату клиентом и администратор назначает свободный бокс.
26
Далее клиент указывает тип нужной ему услуги и вид его автомобиля. В конце он
оставляет свою марку и номер машины с комментариями по мойке его автомобиля.
Все вышесказанное свидетельствует об актуальности разработки онлайн
сервиса записи на мойку автомобилей для мессенджера Telegram, позволяющего в
полной автоматизировать процесс записи.
Таким образом потенциальный клиент автомойки бесплатно получает
возможность с записи общедоступного приложения, используя всего лишь
мобильный телефон. Автомойка, получает контактные данные потенциального
пользователя своих услуг, т.к. использование онлайн сервиса записи на мойку
автомобилей
для
мессенджера
Telegram
подразумевает
предварительную
регистрацию пользователя с использованием номера мобильного телефона.
1.5 Анализ функциональных и нефункциональных требований к
разрабатываемому сервису
1.5.1 Функциональные требования
На основе анализа деятельности сервисов по онлайн – записи на мойку
автомобилей,
были
сформулированы
функциональные
требования
к
разрабатываемому онлайн - сервису записи на мойку автомобилей для мессенджера
Telegram:

реализация регистрации пользователя в системе в двух вариантах;

хранение информации о пользователях сервиса и истории записи;

предоставление информации об услугах и ценах автомойки;

предоставление информации о загрузке автомойки;

реализация онлайн-записи с учетом «пакетных предложений» и с
возможностью выбора отдельных услуг;

расчет стоимости оказываемых услуг и времени их выполнения.
27
1.5.2 Нефункциональные требования
Для разрабатываемого онлайн – сервиса записи на мойку автомобилей для
мессенджера Telegram были сформулированы следующие нефункциональные
требования:

использование архитектуры «клиент-сервер»;

поддержка целостности и безопасности данных, обусловленные
нарушением в работе серверов и баз данных;

обеспечение
кроссплатформенности
(поддержка
мобильных
операционных систем iOs, Android, поддержка настольных операционных систем
Windows, Linux);

обеспечение поддержки;

ориентированность на конечных пользователей.
1.6 Описание бизнес процесса
Для описания модели бизнес процесса построим диаграмму IDEF0. Эта
методология предписывает построение иерархической системы диаграмм –
описаний фрагментов системы. Для начала можно провести описание системы в
целом и ее взаимодействие с внешней средой (контекстная диаграмма), а затем
необходимо осуществить функциональную декомпозицию – систему разбить на
подсистемы, каждую из которых описать отдельно (диаграммы декомпозиции). В
качестве основного моделируемого процессе возьмем автомойку.
Главный и единственный блок на рисунке 1 «Контекстная диаграмма»
представляет собой основной процесс предметной области. Вводными данными
являются данные пользователя. Управляющими являются набор команд ввода
данных, справочная информация, которую пользователь должен изучить перед
взаимодействием с системой. Механизмами будут являться клиент, администратор
и непосредственно управляющая система.
28
Рисунок 1 – Контекстная диаграмма
Декомпозиция блока А0 (рисунок 2) включает процессы:

регистрация пользователя;

выбор данных для записи;

запись пользователя в базу данных.
Рисунок 2 - Декомпозиционная диаграмма блока А0
29
Рисунок
2
«Декомпозиционная
диаграмма блока А0» показывает
детализированный процесс контекстной диаграммы. Новый пользователь должен
зарегистрироваться для дальнейшей работы (блок А1 на рисунке 2), так как
использование онлайн – сервиса записи доступно лишь зарегистрированным
пользователям
Зарегистрированный пользователь выбирает данные для записи (блок А2 на
рисунке 2) с использованием команд ввода данных. И уже сформированная запись
пользователя (блок А3 на рисунке 2) записывается базу данных.
На рисунке 3 изображена декомпозиция блока А1
(Регистрация
пользователя)
Рисунок 3 – Декомпозиционная диаграмма блока А1
Пользователь регистрируется в системе и вводит свои номер телефона( блок
А11 на рисунке 3), после чего он записывается в базу данных с уникальным ID.
На рисунке 4 изображена декомпозиция блока А2 (Ввод данных для записи)
30
Рисунок 4 – Декомпозиционная диаграмма блока А2
Зарегистрированный пользователь выбирает нужную ему услугу, дату и
время(блоки А21,А22,А23 на рисунке 4). Затем оставляет выбирает тип автомобиля
(блок А24 на рисунке 4). Сформированная запись пользователя вносится в базу
данных.
31
2 ПРОЕКТИРОВАНИЕ ОНЛАЙН-СЕРВИСА ЗАПИСИ НА МОЙКУ
АВТОМОБИЛЕЙ ДЛЯ МЕССЕНДЖЕРА TELEGRAM
2.1 Архитектура системы
Архитектура онлайн сервиса мойки автомобилей представляет один из
видов клиент - серверной архитектуры. Основными компонентами архитектуры
являются:

клиент, который использует интерфейс пользователя и выполняет
запросы к серверу, а также получает ответы от него и выполняет логику системы;

сервер, который управляет базами данных, выполняет запросы
клиентов и делегирующий права доступа к нему;

сеть, осуществляющая взаимодействие между сервером и клиентом.
Рисунок 5 – Архитектура «клиент – сервер»
Клиент-серверная архитектура наиболее часто используется для создания
корпоративных баз данных, в которых информация не только хранится, но и
периодически поддается обработке различными методами. Именно база данных
является главным элементом любой корпоративной информационной системы, а
на сервере располагается ядро этой базы. Так, на сервере происходят наиболее
сложные операции, касающиеся ввода, хранения, обработки и модификации
данных. Когда пользователь (клиент) обращается к базе данных (серверу),
32
происходит обработка запроса: непосредственно обращение к базе данных и
возврат ответа (результата обработки).
Для реализации онлайн сервиса мойки автомобилей такая архитектура
предпочтительна, так как она удовлетворяем требованиям к вычислительным
мощностям клиентов, а именно, снижает сетевой трафик при выполнении запросов,
обеспечивает поддержку малых вычислительных мощностей на стороне клиента,
легко масштабируема, быстро приспосабливается к увеличению объема баз данных
и количества пользователей, обеспечивает защищенность данных.
2.2 Выбор инструментальных средств разработки онлайн-сервиса
записи на мойку автомобилей для мессенджера Telegram
В качестве среды разработки для онлайн сервиса мойки автомобилей будет
использована среда быстрой разработки приложений Python [7-13]. Язык Python высокоуровневый язык программирования общего назначения с акцентом на
производительность разработчика и читаемость кода. Синтаксис ядра Python
минималистичен. В то же время стандартная библиотека включает большой объём
полезных функций.
Python поддерживает несколько парадигм программирования, в том числе
структурное, объектно-ориентированное, функциональное, императивное и
аспектно-ориентированное. Основные архитектурные черты — динамическая
типизация, автоматическое управление памятью, полная интроспекция, механизм
обработки исключений, поддержка многопоточных вычислений и удобные
высокоуровневые структуры данных.
Есть реализации интерпретаторов для JVM [6] (с возможностью
компиляции), MSIL (с возможностью компиляции), LLVM и других. Проект PyPy
предлагает реализацию Питона на самом Питоне, что уменьшает затраты на
изменения языка и постановку экспериментов над новыми возможностями.
Python — активно развивающийся язык программирования, новые версии (с
добавлением/изменением языковых свойств) выходят примерно раз в два с
половиной года. Вследствие этого и некоторых других причин на Python
33
отсутствуют ANSI, ISO или другие официальные стандарты, их роль выполняет
CPython.
К числу основных преимуществ Python можно отнести:

динамическая типизация. В Python не нужно заранее объявлять типы
переменных;

поддержка модульности. В некоторых случаях для написания
программного средства достаточно найти нужные модули и правильно их
скомбинировать.

интеграция
с
другими
языками.
Если
возможностей
Python
недостаточно, то возможно интегрировать код С/С++;

автоматический сборщик мусора;

лаконичный и понятный синтаксис. Удобная система функций
позволяет создавать код, в котором просто разобраться другому программисту в
случае необходимости. Так же это облегчает чтение и использование сторонних
модулей;

кроссплатформенность.
Язык Python идеально подходит для проектов, требующих быстрой
разработки. Он поддерживает несколько парадигм программирования, что хорошо
для программ, требующих гибкости, а наличие множества пакетов и модулей
обеспечивает универсальность и экономит время.
В разработке сервиса онлайн-записи были использованы такие библиотеки
как «MySql connector» и «Рytelegrambotapi».
2.3 Проектирование базы данных
2.3.1 Обзор систем управления базами данных
Для реализации основных функциональных требований к онлайн-сервису
записи на мойку автомобилей необходимо описание данных. Для баз данных (БД)
основой
является
информации).
модель
представления
данных
(структура
хранимой
34
Модель БД – это множество структур данных и действия, производимые с
этими структурами. Даже в БД без хранимых в ней данных все равно существует
информация – структура самой БД, определяющая, как будут заноситься и
храниться данные.
При проектировании БД основной задачей является разработка структуры
БД с учетом особенностей будущего использования. Помимо этого, ключевыми
задачами проектирования БД являются:

обеспечение хранения в базе данных всей необходимой информации.
Вся информация, необходимая во время функционирования системы, должна
храниться в базе;

обеспечение возможности получения данных по всем необходимым
запросам. Все данные, используемые во время функционирования системы,
должны быть доступны по заданным запросам;

сокращение дублирования и избыточности данных. Ни разу не
используемая информация не должна быть внесена в базу, а полезная информация
должна храниться лишь в одном экземпляре;

обеспечение целостности данных (правильности их содержания):
исключение противоречий в содержании данных, исключение их потери и т.д.
С целью управления БД разработаны наборы инструментов, названные
системами управления базами данных (СУБД).
Рассмотрим основные виды моделей данных:

иерархическая;

реляционная;

сетевая.
Иерархическая модель данных - модель данных, в которой совокупность
данных представляются в порядке подчинения их друг другу и расположенных в
виде перевернутого дерева.
В данной модели объекты стоят на разных уровнях и показывают
отношения предок-потомок. Предком называется объект модели данных более
35
высокого уровня, а потомком – объект более низкого уровня. Иерархическая
модель данных имеет следующие свойства:

у каждого потомка только один предок;

предок имеет от «0» до бесконечности потомков;

есть только один корневой, не подчиненный другим, узел.
Сетевая модель данных – это модель данных, похожая основными
понятиями с иерархической моделью, но в сетевой модели каждый узел может быть
связан с любым другим узлом. Узел — это совокупность атрибутов данных,
описывающих некоторый объект.
Реляционная модель данных – это модель данных, в которой данные
представлены в виде реляционных таблиц, которые в свою очередь являются
двумерным массивом (проекции ключ-значение. В ней у разработчика нет
рутинных операций работы с данными.
В реляционной модели СУБД достигается информационная и структурная
независимость. Записи не связаны между собой настолько, чтобы изменение одной
из них затронуло остальные (при необходимости это делается триггерами), а
измененная структура СУБД, базы данных не обязательно приводит к
перекомпиляции работающих с ней приложений.
Рассмотрим несколько типов реляционных СУБД:
1. MySQL – это система управления базами данных, которая входит в
число наиболее популярных в интернете. Данная система управления
хорошо подходит для работы с интернет сайтами, поэтому её часто используют при
разработке web-Приложений разного рода. Ее функциональных возможностей
достаточно для работы с базой данных любых размеров.
MySQL быстро работает на любых платформах, поддерживает механизмы
транзакций, имеет несколько типов таблиц для хранения, разрабатываемых целыми
командами программистов.
2. Oracle – система управления реляционными базами данных, реализующих
объектно-ориентированный подход, то есть обеспечивающих
36
управление создания и использования баз данных.
Oracle хорошо масштабируется, легко разрабатывается и самоуправляется
при перераспределении нагрузки.
3. InterBase - это система управления реляционными базами данных,
поставляемая корпорацией Borland для построения приложений с архитектурой
клиент-сервер произвольного масштаба.
InterBase надежно восстанавливает данные при неожиданных поломках и
поддерживает асинхронные запросы, триггеры и шифрование траффика, а также
обладает двухфазным подтверждением транзакций.
4. IBM DB2 – это система управления реляционными базами данных,
которая разрабатывается компанией IBM. Данная систем является самой
высокопроизводительной и мощной СУБД в мире.
Проанализировав достоинства и недостатки рассмотренных СУБД для
создания базы данных, была выбрана СУБД MySQL. Её функционала достаточно
для создания и обеспечения работоспособности базы данных, кроме того
преимуществом в разработке будет поддержка визуального создания объектов
базы данных. Стандарт языка SQL делает MySQL совместимой с другими СУБД.
2.3.2 Определение сущностей базы данных и их атрибутов
Сущность - это реальный или представляемый объект, информация о
котором должна сохраняться и быть доступна. Связь - это графически
изображаемая ассоциация, устанавливаемая между двумя сущностями. Атрибутом
сущности является любая деталь, которая служит для уточнения, идентификации,
классификации, числовой характеристики или выражения состояния сущности.
Рассмотрим сущности и их атрибуты, выявленные при переходе от модели
процессов предметной области. При разработке информационной системы
необходимо хранить информацию о людях, заказывающих услуги, для этого
определена сущность «Пользователь», первичным ключом которой является
атрибут «Номер пользователя».
37
Для хранения информации о записи на услугу введем сущность «Запись».
Ее первичным ключем будут номер пользователя, на которую идет запись.
Поскольку у нас есть ограничение, что услуга идет ровно час и запись идет с начала
каждого часа, то, для проверки этого условия введем сущность «Время» с
суррогатным первичным ключом «Номер времени»
Необходимо отметить, что большинство первичных ключей сущностей
являются суррогатными ключами, т.е. генерируемы искусственно, а не образуются
на основе каких-либо других данных из БД. Это сделано для обеспечения гарантии
уникальности, неизменности и эффективности первичного ключа.
2.3.3 Нормализация концептуальной схемы базы данных
Нормализация - процесс проверки и реорганизации сущностей и атрибутов
с целью удовлетворения требований к реляционной модели 28 данных.
Нормализация позволяет быть уверенным, что каждый атрибут определен для
своей сущности, значительно сократить объем памяти для хранения информации и
устранить аномалии в организации хранения данных.
В результате проведения нормализации должна быть создана структура
данных, при которой информация о каждом факте хранится только в одном месте.
Процесс нормализации сводится к последовательному приведению структуры
данных к нормальным формам - формализованным требованиям к организации
данных. Известны шесть нормальных форм:

первая нормальная форма (1NF);

вторая нормальная форма (2NF);

третья нормальная форма (3NF);

нормальная форма Бойса - Кодда (усиленная 3NF);

четвертая нормальная форма (4NF);

пятая нормальная форма (5NF).
Основные критерии первой нормальной формы (1NF):

все строки должны быть различными;
38

все элементы внутри ячеек должны быть атомарными (не списками).
Элемент является атомарным, если его нельзя разделить на части, которые
могут использовать в таблице независимо друг от друга. Можно утверждать, что
схема БД соответствует первой нормальной форме, поскольку значения доменов
всех атрибутов являются атомарными, то есть в приложении не будут
использоваться по частям. Чтобы выполнялось это условие, некоторые
первоначально выделенные атрибуты были разбиты на несколько частей.
Например, так вместо атрибута «ФИО» сущности «Пользователь» выделены
атомарные атрибуты «Фамилия», «Имя».
Основные критерии второй нормальной формы (2NF):

таблица должна находиться в первой нормальной форме;

любое её поле, не входящее в состав первичного ключа, функционально
полно зависит от первичного ключа.
Анализ отношений схем, имеющих составные ключи, позволяет сделать
вывод о том, что она удовлетворяет и требованиям второй нормальной формы, то
есть каждый не первичный атрибут полностью зависит от ключа, частичных
зависимостей не выявлено.
Основные критерии третьей нормальной формы (3NF):

таблица находится во второй нормальной форме;

любой её не ключевой атрибут функционально зависит только от
первичного ключа.
Так как ни один из не первичных атрибутов не является транзитивно
зависимым от ключа и схема находится во второй нормальной форме, то отсюда
следует вывод, что она находится и в третьей нормальной форме. Таким образом,
поскольку при проектировании концептуальной схемы особое внимание уделялось
предупреждению возникновения предпосылок для аномалий, была получена
нормализованная схема, находящаяся, согласно приведенным выше рассуждениям,
в третьей нормальной форме.
39
Перейдем к разработке физической модели базы данных. Целевая СУБД,
имена объектов и типы данных, индексы составляют второй (физический) уровень
модели ERwin. ERwin предоставляет возможности создавать и управлять этими
двумя различными уровнями представления одной диаграммы (модели), равно как
и иметь много вариантов отображения на каждом уровне. Для этого каждому
текстовому атрибуту в зависимости от его назначения поставим в соответствие тип
VARCHAR(20), VARCHAR(1000) и VARCHAR(10000), каждому целочисленному
атрибуту поставим в соответствие тип INTEGER, атрибуту даты сопоставим тип
DATE, атрибуту времени тип TIME. Поскольку значение поля «Комментарий»
сущности «Запись» может быть неограничено большое, сопоставим этому
атрибуту тип TEXT. Для каждой сущности определены альтернативные ключи и
инверсионные входы.
2.3.4 Описание структуры данных
В базе данных онлайн-сервиса мойки автомобилей должна хранится
следующая информация:
–
персональные данные пользователей (номер телефона пользователя, ID
в Telegram);
–
данные о записи пользователей (вид услуги, дата, время);
–
график работы сервиса мойки автомобилей (свободное время для
услуг).
Было принято решение использовать реляционную модель хранения данных
ввиду ее наглядности и простоты, а так же простоты преобразования сущностей и
связей в схему базы данных.
Для проектирования реляционной базы данных необходимо описать
сущности, которые отражают предметную область. Для базы данных онлайнсервиса мойки автомобилей для мессенджера Telegram можно выделить
следующие сущности:

пользователь;
40

пользователь_has_запись;

запись;

запись_has_дата;

тип машины;

дата;

время.
Каждая таблица содержит ключевое поле – первичный ключ, который будет
обеспечивать уникальность записей. Так же таблицы содержат внешние ключи –
необходимые для обеспечения связей между таблицами.
Перейдем к описанию самих сущностей. Сущность «Пользователь» будет
включать в себя следующие данные (рис.6):

идентификатор (первичный ключ);

телеграм_ID;

телефон.
Рисунок 6 – Атрибуты сущности «Пользователь»
Сущность «Пользователь_has_запись» будет включать в себя следующие
данные (рис.7):

fk_idПользователь (внешний ключ);

fk_idЗапись (внешний ключ).
Рисунок 7 – Атрибуты сущности «Пользователь_has_запись»
Сущность «Запись» будет включать в себя следующие данные (рис.8):

идентификатор (первичный ключ);
41

стоимость;

услуга;

примечание.
Рисунок 8 – Атрибуты сущности «Запись»
Сущность «Запись_has_дата» будет включать в себя следующие данные (рис.9):

fk_ idЗапись (внешний ключ);

fk_idДата (внешний ключ).
Рисунок 9 – Атрибуты сущности «Запись_has_дата»
Сущность «Тип машины» будет включать в себя следующие данные (рис.10):

идентификатор (первичный ключ);

fk_idЗапись (внешний ключ);

тип машины.
Рисунок 10 – Атрибуты сущности «Тип машины»
Сущность «Дата» будет включать в себя следующие данные (рис.11):
 idДата (первичный ключ);
 дата.
Рисунок 11 – Атрибуты сущности «Дата»
42
Сущность «Время» будет включать в себя следующие данные (рис.12):
 idВремя (первичный ключ);
 fk_fk_idДата (внешний ключ);
 fk_fk_idЗапись (внешний ключ);
 время.
Рисунок 12 – Атрибуты сущности «Время»
Теперь рассмотрим связи между описанными сущностями.
У многих
пользователей есть много записей, поэтому между сущностями «Пользователь» и
«Запись» применяем связь «многие-ко-многим». В записи может участвовать
множество пользователей, причем один пользователь может записаться несколько
раз,
поэтому
целесообразно
создать
промежуточную
таблицу
«Пользователь_has_запись», которая соответствует связи «многие-ко-многим».
У каждой отдельно записи есть своя отдельная машина, поэтому между
сущностями «Запись» и «Тип машины» применяем связь «один к одному».
У каждой отдельной записи есть своя дата, поэтому между сущностями
«Запись» и «Дата» применяем связь «многие-ко-многим». В записи может
участвовать множество дат, так как на одну дату можно записаться несколько раз,
поэтому целесообразно создать промежуточную таблицу «Запись_has_дата»,
которая соответствует связи «многие-ко-многим»
Для наглядного отображение объектов проектируемой системы была
составлена логическая модель, представленная на рисунке 13. Она показывает все
существующие классы объектов (сущности) в организации и связи между ними.
43
Рисунок 13 – Логическая модель онлайн-сервиса записи на мойку автомобилей
На рисунке 14 представлена физическая модель базы данных.
Рисунок 13 – Физическая модель онлайн-сервиса записи на мойку автомобилей
44
3 РЕАЛИЗАЦИЯ ОНЛАЙН-СЕРВИСА ЗАПИСИ НА МОЙКУ
АВТОМОБИЛЕЙ ДЛЯ МЕССЕНДЖЕРА TELEGRAM
3.1 Проектирование алгоритмов
В соответствии с функциональными требованиями разрабатываемая
система
проведения
интеллектуальных
игр
представлена
совокупностью
следующих алгоритмов:

регистрация пользователя в системе;

проверка истории пользователей;

запись пользователей в системе;

бронирование живой очереди администратором.
3.1.1 Алгоритм регистрации пользователя в системе
Работа алгоритма начинается при вводе соответствующей команды
пользователем, желающим зарегистрироваться в сервисе мойки автомобилей.
После ввода команды проводится получение и проверка информации из базы
данных об идентичном пользователе, если пользователь не зарегистрирован,
информация загружается в базу данных и регистрация будет успешно завершена.
На рисунке 15 представлена блок - схема алгоритма регистрации
пользователей.
3.1.2 Алгоритм проверки истории пользователей
Алгоритм проверки истории пользователя достаточно прост, так как
построен на базовых функциях и запросах к базе данных. Алгоритм начинает свою
работу с команды пользователя. Первым шагом алгоритма является проверка
существующих записей пользователя. Если пользователь уже имеет записи, то
алгоритм переходит ко второму шагу и показывает все данные из базы данных о
записях пользователя, если записей нет, то об этом так же сообщается.
На рисунке 16 представлена схема алгоритма проверки истории
пользователей.
45
Рисунок 15 - Блок - схема алгоритма регистрации пользователей
Рисунок 16 - блок - схема алгоритма проверки истории пользователей
46
3.1.3 Алгоритм онлайн-записи пользователей на мойку
Работа алгоритма начинается регистрация пользователя в системе. После
пользователь выбирает услугу, зачет дату регистрации на автомойку и время. Если
в базе уже существуют записи на определенное время дня, то пользователь увидит
свободные часы, которые он может забронировать. После пользователь выбирает
тип услуги. Все данные резервируются в базе данных.
В последующем пользователь может просматривать свою историю записи.
Все шаги алгоритма спроектированы таким образом, что пользователь изолирован
от работы алгоритма и при корректном введении данных обеспечивается точные
инъекции данные в базу данных, что повышает безопасность системы и
увеличивает защищенность конфиденциальных данных.
На рисунке 17 представлена блок - схема алгоритма записи пользователей.
Рисунок 17 – Блок - схема алгоритма записи пользователей
47
3.1.4 Алгоритм бронирования живой очереди администратором
Алгоритм начинается с принятия живой очереди администратором. Далее
администратор, узнав нужные дату и время бронирования, проверяет их занятость
в базе данных, если они свободны, то он резервирует дату и время в базе данных и
данные дата и время будут недоступны для бронирования с онлайн сервиса. Если
дата и время заняты, то администратор с клиентом выбирает подходящую дату и
время. При успешном выборе дата и время бронируются администратором и их
бронирование с онлайн сервиса будет недоступно.
Рисунок 18 – алгоритм бронирования живой очереди администратором
48
3.2 Логика диалога с пользователем
Диалог пользователя с системой описан с помощью диаграммы вариантов
использования, которая является один из способов отражения логики диалога.
Диаграмма вариантов использования – это концептуальная модель системы
или концептуальное представление системы в процессе ее разработки и
проектирования, на ней изображаются отношения между актерами и вариантами
использования.
Для отражения модели прецедентов на диаграмме используются:

актер – имитация человечка, которая обозначает набор ролей
пользователя (понимается в обширном смысле: человек, класс, другая система),
взаимодействующего с некоторой сущностью (системой, классом);

прецедент – элипс с надписью, обозначающий выполняемые системой
действия, приводящие к наблюдаемым актерами результатам, имя прецедента
связано
с
конкретной
последовательностью
действий,
иллюстрирующей
поведение;

рамки системы – прямоугольник с названием в верхней части и
прецедентами внутри, довольно часто может не иллюстрироваться без потери
полезной информации.
В разрабатываемой системе существует два актера (рис. 19):
 администратор;
 пользователь.
Актер «Администратор» имеет возможность просматривать записи
пользователей, просматривать зарегистрированных пользователей, блокировать
аккаунты, добавлять живую очередь.
Актер «Пользователь» при работе с онлайн-сервисом записи на мойку
автомобилей для мессенджера Telegram имеет возможность регистрироваться в
системе посредством ввода номера телефона. Осуществлять запись на свободные
дату и время. После чего актер «Пользователь» имеет возможность просмотра
своих записей и их удалению.
49
50
3.3 Экранные формы разработанного онлайн-сервиса записи на мойку
автомобилей для мессенджера Telegram
3.3.1 Экранные формы администратора
Функции мессенджера Telegram позволяют создателю бота использоваться
метод администраторских команд. При входе в Telegram-bot администратор будет
проинформирован основными командами о работе с онлайн-сервисом записи на
мойку автомобилей.
Рисунок 20 – Информация об основных командах администратора онлайнсервиса записи на мойку автомобилей для мессенджера Telegram.
@bot.message_handler(commands=["admin"])
def command_admin_help(message):
bot.reply_to(message,'Для просмотра записей введите /watchall, для
просмотра
зарегистрированных
пользователей
введите
/watchpeople,
для
блокировки пользователя ввдеите /ban номер пользователя') #чисто инфа, готово
if __name__ == '__main__':
bot.polling(none_stop=True)
При выборе команды /watchall администратор увидит список записей
пользователей на мойку автомобилей со всей информацией о записи.
51
Рисунок 21 – Просмотр всех записей в онлайн-сервисе администратором
@bot.message_handler(commands=["watchall"])
def command_comments(message):
sql = """SELECT * FROM users,entries,dates """
cursor.execute(sql)
for x in sql:
bot.send_message(message.chat.id,i+', '+sql[x])
Для
просмотра
зарегистрированных
пользователей
администратору
необходимо ввести команду /watchallpeople.
Рисунок 22 – Просмотр зарегистрированных пользователей в онлайнсервисе администратором
@bot.message_handler(commands=["watchpeople"])
def command_ban(message):
sql = """SELECT * FROM users """
cursor.execute(sql)
for x in sql:
i+= 1
bot.send_message(message.chat.id,i+', '+sql[x])
52
Для блокировки пользователя необходимо ввести команду /watchallpeople,
а затем /ban и номер пользователя.
Рисунок 23 – Удаление пользователя в онлайн-сервисе администратором
@bot.message_handler(commands=["ban"])
def command_ban(message):
spn=message.text.split(' ')
try:
sql
=
"DELETE
FROM
users
%s'",(message.message.from_user.id)
cursor.execute(sql)
db.commit()
except:
db.rollback()
bot.send_message(message.chat.id, 'Успешно')
WHERE
telegram_id
=
53
3.3.2 Экранные формы пользователя
С самого начала пользователь будет проинформирован списком команд в
разработанном онлайн сервисе Telegram – bot
Рисунок 24 – Начало работы пользователя с онлайн сервисом Telegram – bot
@bot.message_handler(commands=["start"])
def start_help(message):
bot.send_message(message.chat.id,"Приветствуем,
чтобы
увидеть
информацию введите /command_help")
Далее пользователь будет проинформирован командами для начала работы
с онлайн сервисом Telegram – bot
Рисунок 26 – Информация о начальных командах
@bot.message_handler(commands=["help"])
def command_help(message):
54
bot.reply_to(message,'Привет,первым
делом
зарегестрируйтесь
в
системе.Для этого введите /reg. Чтобы записаться на мойку, введите /entry. Чтобы
посмотреть ваши записи введите команду /history')
Для регистрации необходимо занести уникальный ID пользователя и его
имя в мессенджере. Далее пользователь вводит свой номер телефона и соглашается
с обработкой личных данных и получать оповещения и звонки от сотрудников
автомойки в первом варианте регистрации и без оповещений сотрудников во
втором. В программном коде, представленном ниже, происходит считывание
данных пользователя.
@bot.message_handler(commands=["reg"])
def command_reg(message):
print(message.from_user.id)
print(message.from_user.last_name)
bot.send_message(message.chat.id,'Введите номер телефона: ')
bot.send_message(message.chat.id,'При регистрации вы соглашаетесь на
обработку личных данных и получение оповещений, рекламы и звонков от
сотрудников мойки. Если вы согласны с этим введите команду /yes, вам будет
предоставлена скидка на все услуги 10% ')
bot.send_message(message.chat.id,'В противном случае введить /no и вы
будете зарегистрированы в системе без получения оповещения и рекламы ')
@bot.message_handler(func=lambda m: True)
def enter_number(message):
global _phone
_phone=message.text
# @bot.message_handler(commands=["yes"])
# def apply(message):
#
bot.reply_to(message,
message.from_user.first_name+'
,вы
успешно
зарегистрированы в системе ')
# return message.from_user.id, message.from_user.last_name,_phone
#заносим в базу, чтобы потом сортировать записи на мойку
55
@bot.message_handler(commands=["yes"])
def yes(message):
bot.send_message(message.chat.id,'Вы успешно зарегистрированы в
системе,вам будет предоставлена скидка в 10% ')
@bot.message_handler(commands=["no"])
def no(message):
bot.send_message(message.chat.id,'Вы успешно зарегистрированы в системе)
Рисунок 27 – Первый вариант регистрации пользователя в онлайн сервисе
56
Рисунок 28 – Второй вариант регистрации пользователя в онлайн сервисе
После регистрации пользователь выбирает нужную услугу командой
«/entry»
Рисунок 29 – Выбор услуги пользователем
57
@bot.message_handler(commands=["entry"])
def command_entry(message):
bot.send_message(message.chat.id,"Выберите
пакет
услуг:1.
Премиум:
(Комплексная мойка/уборка с сушкой(кузов с протиркой + салон) , пылесос, уборка
ковриков, мойка двигателя, мойка днища) (1000 рублей, 1 час) )")
bot.send_message(message.chat.id,"2. Медиум: (Комплекс Мойка/Уборка с
сушкой (кузов без протирки + салон), пылесос, уборка ковриков)(700 рублей, 30
минут)")
bot.send_message(message.chat.id,"3. Стандарт: Комплекс Мойка/Уборка с
сушкой(кузов с протиркой + салон)(300 рублей), 15 минут")
bot.send_message(message.chat.id,"Если вам не подходят пакеты, вы можете
ввести услуги отдельно. Услуги следует вводить через запятую.:
4.Мойка(200р, 10 минут)
5.Уборка с сушкой (150р, 10 минут)
6.Пылесос (150р, 10 минут)
7.Уборка ковриков (100р, 10 минут)
8.Мойка двигателя (200р, 10 минут)")
@bot.message_handler(func=lambda m: True)
def сheck_uslugi(message):
print(message.text)
Затем пользователь выбирает дату и время, которое ему необходимо и тип
автомобиля.
58
Рисунок 30 – Выбор даты, времени и тип автомобиля пользователем
При выборе других услуг время будет показано с интервалом в тридцать
минут, из-за разницы в продолжительности услуг.
59
Рисунок 31 – Выбор даты и времени пользователем
bot.send_message(message.chat.id,'Чтобы записаться введите дату в формате
ГОД.МЕСЯЦ.ЧИСЛО ')
@bot.message_handler(regexp="([12]\d{3}.(0[1-9]|1[0-2]).(0[19]|[12]\d|3[01]))")
def check_date(message):
global _timee
_timee= message.text
bot.reply_to(message,'На это число свободны следующие даты: ')
60
#тут из базы будет тянутся день и доступное время и отсылаться в чат
global _time
_time = {id: id+10 for id in range(10)} #id нужен чтобы выбрать время и
отослать его в бот, время тянется из базы, пока чисто рандомный словарь
for key in _time.keys():
bot.send_message(message.chat.id,"%s. Время %s:00" % (key, _time[key]))
bot.send_message(message.chat.id,"Выберите время которое вам подходит и
отправьте его номер")
@bot.message_handler(regexp="[0-9]+$")
def select_time(message):
print(message.text) #по номеру выбираем время и отправляем запрос в бд,тем
самым забивая время
# bot.send_message(message.chat.id,"Напишите какие типы услуг вы хотите
забронировать(Мойка, Пылесос, Чистка салона, Полировка, )")
bot.send_message(message.chat.id,"Выберите тип автомобиля: Легковой, Грузовой")
@bot.message_handler(func=lambda m: True)
def сheck_auto(message):
print(message.text)
После пользователь получает оповещение со всей информацией об онлайн
– записи.
Рисунок 32 – Окончательное оповещения пользователя о записи.
После записи пользователь может просмотреть и удалить любую из своих записей.
61
Рисунок 33 – Просмотр и удаление записей
@bot.message_handler(commands=["history"])
def command_comments(message):
bot.reply_to(message,'Ваши записи: ')
sql = """SELECT * FROM entry """
cursor.execute(sql)
for x in sql:
bot.send_message(message.chat.id,'1.Вы записаны:'+sql[x])
bot.send_message(message.chat.id,'Чтобы удалить запись введите /delete
и номер записи')
@bot.message_handler(commands=["delete"])
62
def command_comments(message):
spn=message.text.split(' ')
try:
cursor.execute("""
DELETE
entry
""",('',_answers[i],team))
db.commit()
except:
db.rollback()
bot.send_message(message.chat.id,'Запись удалена.')
if __name__ == '__main__':
bot.polling(none_stop=True)
where
(%s,%s,%s)
63
ЗАКЛЮЧЕНИЕ
Задача автоматизации сервиса мойки автомобилей является актуальной, так
как весьма малое количество сервисов имеет автоматизированные системы. В
рамках данной выпускной квалификационной работы реализован онлайн-сервис
записи на мойку автомобилей для мессенджера Telegram.
В ходе выполнения данной работы были выполнены все поставленные
задачи. Проведен анализ предметной области, выявлены критерии и виды записей
на сервис мойки автомобилей. Был проведен сравнительный анализ и обзор системаналогов, в результате рассмотрены достоинства и недостатки существующих
систем. Было проведено проектирование базы данных онлайн-сервиса мойки
автомобилей для мессенджера Telegram, построена схема базы данных, описаны
сущности и связи.
На этапе проектирования онлайн-сервиса записи были разработаны
алгоритмы регистрации пользователя в онлайн-сервисе, проверка истории
пользователя, алгоритм онлайн-записи пользователя на мойку, а также алгоритм
бронирования живой очереди администратором. Сформулирована логика диалога
с пользователем и представлены экранные формы разработанного сервиса.
Таким образом, можно сделать вывод о том, что поставленная цель была
достигнута.
64
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.
Статистика количества машин на человека в России [Электронный
ресурс]. – Режим доступа: http://fb.ru/article/384167/skolko-mashin-v-rossii-vidyiavtomobiley-statistika-kolichestvo-avto-na-cheloveka. Дата доступа: 04.06.2018.
2.
Реклама в интернете — ТОП-10 эффективных видов интернет-ре-
кламы с примерами + стоимость их размещения [Электронный ресурс]. – Режим
доступа:
https://richpro.ru/internet/reklama-v-internete-vidy-i-stoimost-internet-
reklamy.html. Дата доступа: 04.06.2018.
3.
Мобильное приложение агрегатора сервиса мойки автомобилей
«RocketWash»
[Электронный
ресурс].
–
Режим
доступа:
http://www.rocketwash.ru/vladeltsam-avtomoyki/personal-mobile-app. Дата доступа:
04.06.2018.
4.
Мобильное приложение «СОЮЗ - автомойка» [Электронный ресурс]. –
Режим доступа: https://play.google.com/store/apps/details?imen.app.client117&hl=is.
Дата доступа: 04.06.2018.
5.
Сайт автомойки «Революция» [Электронный ресурс]. – Режим доступа:
http://rcarwash.ru. Дата доступа: 04.06.2018.
6.
Интерпретатор для JVM [Электронный ресурс]. – Режим доступа:
http://qaru.site/questions/318420/java-compilerinterpreter. Дата доступа: 04.06.2018.
7.
Что такое Python и где он пригодится [Электронный ресурс]. – Режим
доступа: https://netology.ru/blog/python. Дата доступа: 04.06.2018.
8.
Луц, М. Программирование на Python, том II, 4-е издание / Луц, М –
СПб.: Символ-Плюс, 2011. – 129с.
9.
Любанович, Б. Простой Python. Современный стиль программирования
/ Любанович, Б. – Питер. 2009. – 480с.
10. Доусон, М. Программируем на Python / Доусон, М – СПб.: Питер, 2014.
– 416с.
11. Прохоренок, Н.А. Python 3 и PyQt. Разработка приложений /
Прохоренок, Н.А. – СПб.: БХВ-Петербург, 2012. – 704 с.
65
12. Briggs, J. R. Python for Kids / Briggs, J. R. – Manning. 2012, 424с.
13. Саммерфилд, М. Программирование на Python 3. Подробное
руководство / М. Саммерфилд. - СПб.: Символ-плюс, 2015. - 608 c.
66
ПРИЛОЖЕНИЕ А (ОБЯЗАТЕЛЬНОЕ)
Фрагменты кода программы
import requests
import json
import telebot
import config
from telebot import apihelper
from datetime import datetime
bot = telebot.TeleBot(config.token)
apihelper.proxy = {'https': '71.13.112.152:3128'} #прокси для обхода
блокировки
@bot.message_handler(commands=["start"])
def start_help(message):
bot.send_message(message.chat.id,"Приветствуем,
чтобы
увидеть
информацию введите /command_help")
@bot.message_handler(commands=["help"])
def command_help(message):
bot.reply_to(message,'Привет,первым
делом
зарегестрируйтесь
в
системе.Для этого введите /reg. Чтобы записаться на мойку, введите /entry. Чтобы
посмотреть ваши записи введите команду /history') #чисто инфа, готово
67
@bot.message_handler(commands=["reg"])
def command_reg(message):
print(message.from_user.id)
print(message.from_user.last_name)
bot.send_message(message.chat.id,'Введите номер телефона: ')
bot.send_message(message.chat.id,'При регистрации вы соглашаетесь на
обработку личных данных и получение оповещений, рекламы и звонков от
сотрудников мойки. Если вы согласны с этим введите команду /yes, вам будет
предоставлена скидка на все услуги 10% ')
bot.send_message(message.chat.id,'В противном случае введить /no и вы
будете зарегистрированы в системе без получения оповещения и рекламы ')
@bot.message_handler(func=lambda m: True)
def enter_number(message):
global _phone
_phone=message.text
# @bot.message_handler(commands=["yes"])
# def apply(message):
#
bot.reply_to(message,
message.from_user.first_name+'
,вы
успешно
зарегистрированы в системе ')
#
return message.from_user.id, message.from_user.last_name,_phone
#заносим в базу, чтобы потом сортировать записи на мойку
@bot.message_handler(commands=["yes"])
def yes(message):
bot.send_message(message.chat.id,'Вы
успешно
системе,вам будет предоставлена скидка в 10% ')
@bot.message_handler(commands=["no"])
зарегистрированы
в
68
def no(message):
bot.send_message(message.chat.id,'Вы успешно зарегистрированы в системе
')
@bot.message_handler(commands=["entry"])
def command_entry(message):
bot.send_message(message.chat.id,"Выберите
пакет
услуг:1.
Премиум:
(Комплексная мойка/уборка с сушкой(кузов с протиркой + салон) , пылесос, уборка
ковриков, мойка двигателя, мойка днища) (1000 рублей, 1 час) )")
bot.send_message(message.chat.id,"2. Медиум: (Комплекс Мойка/Уборка с
сушкой (кузов без протирки + салон), пылесос, уборка ковриков)(700 рублей, 30
минут)")
bot.send_message(message.chat.id,"3. Стандарт: Комплекс Мойка/Уборка с
сушкой(кузов с протиркой + салон)(300 рублей), 15 минут")
bot.send_message(message.chat.id,"Если вам не подходят пакеты, вы можете
ввести услуги отдельно. Услуги следует вводить через запятую.: 4.Мойка(200р, 10
минут) 5.Уборка с сушкой (150р, 10 минут) 6.Пылесос (150р, 10 минут) 7.Уборка
ковриков (100р, 10 минут) 8. Мойка двигателя (200р, 10 минут)")
@bot.message_handler(func=lambda m: True)
def сheck_uslugi(message):
print(message.text)
global _ucl
_usl = message.text
bot.send_message(message.chat.id,'Чтобы записаться введите дату в формате
ГОД.МЕСЯЦ.ЧИСЛО ')
@bot.message_handler(regexp="([12]\d{3}.(0[1-9]|1[0-2]).(0[19]|[12]\d|3[01]))")
def check_date(message):
69
global _timee
_timee = message.text
bot.reply_to(message,'На это число свободны следующие даты: ')
#тут из базы будет тянутся день и доступное время и отсылаться в чат
global _time
_time = {id: id+10 for id in range(10)}
for key in _time.keys():
bot.send_message(message.chat.id,"%s. Время %s:00" % (key, _time[key]))
# bot.send_message(message.chat.id,"%s. Время %s:30" % (key, _time[key]))
bot.send_message(message.chat.id,"Выберите время которое вам подходит и
отправьте его номер")
@bot.message_handler(regexp="[0-9]+$")
def select_time(message):
print(message.text)
# bot.send_message(message.chat.id,"Напишите какие типы услуг вы хотите
забронировать(Мойка, Пылесос, Чистка салона, Полировка, )")
bot.send_message(message.chat.id,"Выберите тип автомобиля: Легковой,
Грузовой")
@bot.message_handler(func=lambda m: True)
def сheck_auto(message):
print(message.text)
global _cartype
_cartype = message.text
bot.send_message(message.chat.id,"Введите марку Автомобиля")
@bot.message_handler(func=lambda m: True)
def сheck_type(message):
print(message.text)
global _cartypee
_cartypee = message.text
70
bot.send_message(message.chat.id,"Введите
государственный
номер
Автомобиля")
@bot.message_handler(func=lambda m: True)
def сheck_auto2(message):
print(message.text)
global _carnum
_carnum = message.text
bot.send_message(message.chat.id,_timee+' '+ _ucl+' '+_cartype+' '+ _cartypee)
@bot.message_handler(commands=["history"])
def command_comments(message):
bot.reply_to(message,'Ваши записи: ')
sql = """SELECT * FROM entry """
cursor.execute(sql)
for x in sql:
i+= 1
bot.send_message(message.chat.id,i+'Вы записаны:'+sql[x])
bot.send_message(message.chat.id,'Чтобы удалить запись введите /delete и
номер записи')
@bot.message_handler(commands=["delete"])
def command_comments(message):
spn=message.text.split(' ')
try:
cursor.execute(""" DELETE entry where (%s,%s,%s) """,('',_answers[i],team))
db.commit()
except:
71
db.rollback()
bot.send_message(message.chat.id,'Запись удалена.')
@bot.message_handler(commands=["watchall"])
def command_comments(message):
sql = """SELECT * FROM users,entries,dates """
cursor.execute(sql)
for x in sql:
bot.send_message(message.chat.id,i+', '+sql[x])
@bot.message_handler(commands=["watchpeople"])
def command_ban(message):
sql = """SELECT * FROM users """
cursor.execute(sql)
for x in sql:
i+= 1
bot.send_message(message.chat.id,i+', '+sql[x])
@bot.message_handler(commands=["ban"])
def command_ban(message):
spn=message.text.split(' ')
try:
sql
=
"DELETE
FROM
users
%s'",(message.message.from_user.id)
cursor.execute(sql)
db.commit()
except:
db.rollback()
bot.send_message(message.chat.id, 'Успешно')
WHERE
telegram_id
=
72
@bot.message_handler(commands=["admin"])
def command_admin_help(message):
bot.reply_to(message,'Для
просмотра
зарегистрированных
просмотра
записей
пользователей
введите
введите
/watchall,
для
/watchpeople,
для
блокировки пользователя ввдеите /ban номер пользователя') #чисто инфа, готово
if __name__ == '__main__':
bot.polling(none_stop=True)
73
УДОСТОВЕРЯЮЩИЙ ЛИСТ
74
ИНФОРМАЦИОННО-ПОИСКОВАЯ ХАРАКТЕРИСТИКА
ДОКУМЕНТА НА ЭЛЕКТРОННОМ НОСИТЕЛЕ
группы
атрибутов
1. Описание
документа
Наименование
атрибута
Обозначение
документа
(идентификатор(ы)
файла(ов))
Наименование
документа
Класс документа
Вид документа
Аннотация
Использование
документа
2. Даты и время
3. Создатели
4. Внешние
ссылки
5. Защита
6.
Характеристик
и содержания
Дата и время
копирования
документа
Дата создания
документа
Дата утверждения
документа
Автор
Изготовитель
Ссылки на другие
документы
Санкционирование
Классификация
защиты
Объем информации
документа
Характеристики
документа на
электронном носителе
\Плакаты\
Камышников_Презентация
.pptx
Демонстрационные
плакаты к выпускной
квалификационной работе
ЕСКД
Оригинал документа на
электронном носителе
Демонстрационный
материал, отображающий
основные этапы
выполнения выпускной
квалификационной работы
Операционная система
Windows 8, Microsoft
PowerPoint 2016
18.06.2018
20.05.2018
18.06.2018
Камышников Н.А.
Камышников Н.А.
Удостоверяющий лист
№ 140199
ОГУ имени И.С.
Тургенева
По законодательству РФ
1 010 Б
75
7. Структура
документа(ов)
Наименование
плаката (слайда) №1
Наименование
плаката (слайда) №2
Наименование
плаката (слайда) №3
Наименование
плаката (слайда) №4
Наименование
плаката (слайда) №5
Наименование
плаката (слайда) №6
Наименование
плаката (слайда) №7
Наименование
плаката (слайда) №8
Наименование
плаката (слайда) №9
Наименование
плаката (слайда) №10
Наименование
плаката (слайда) №11
Титульный лист
Цели и задачи работы
Сравнительный
анализ оналайнсервисов записи на
мойку автомобилей
Функциональные
требования к
разрабатываемой
системе
Декомпозиция
процесса
«Запись на мойку»
Декомпозиция
процесса
«регистрация
пользователя»
Схема базы данных на
логическом уровне
Диаграмма вариантов
использования
Этапы регистрации в
онлайн - сервисе
записи на мойку
автомобилей
Telegram-bot
Экранные формы
администратора
Экранные формы
пользователя
76
1/--страниц
Пожаловаться на содержимое документа