Телеграммбот построения маршрута с использованием общественного транспорта города Киева
Скачать 2.02 Mb.
|
НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ УКРАИНЫ «КИЕВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ имени ИГОРЯ СИКОРСКОГО» Факультет информатики и вычислительной техники Кафедра автоматики и управления в технических системах «К защите допущено» Заведующий кафедрой __________ «___»_____________2019 г. О.И. Ролик Дипломный проект на соискание степени бакалавра по направлению подготовки 6.050103 «Программная инженерия» на тему: «Телеграмм-бот построения маршрута с использованием общественного транспорта города Киева» Выполнил: студент IV курса, группы ИТ-51 Шородок Владимир Владимирович __________ Руководитель: Доцент Писаренко Андрей Владимирович __________ Рецензент: __________ Подтверждаю, что в этом дипломном проекте нет заимствований из работ других авторов без соответствующих ссылок. Студент _____________ Киев – 2019 год Перевод: украинский - русский - www.onlinedoctranslator.com Национальный технический университет Украины «Киевский политехнический институт имени Игоря Сикорского» Факультет информатики и вычислительной техники Кафедра автоматики и управления в технических системах Уровень высшего образования – первое (бакалаврское) Направление подготовки – 6.050103 «Программная инженерия» УТВЕРЖДАЮ Заведующий кафедрой __________ О.И. Ролик «___»_____________2019 г. ЗАДАНИЕ на дипломный проект студенту Шородко Владимиру Владимировичу 1.Тема проекта «Телеграмм-бот построения маршрута с использованием общественного транспорта города Киева» руководитель проекта доцент кафедры АУТС Писаренко Андрей Владимирович, утвержденные приказом по университету от «___»_________ 2019 г. №_____ 2. Срок представления студентом проекта ________________________________________ 3. Исходные данные к проекту Операционная система Windows, языки программирования Python и Javascript, среда программирования Microsoft Visual Studio, целевая платформа Telegram, выбранная для разработки технологии – Telebot, CherryPy, Requests, СУБД – MongoDB. 4. Содержание пояснительной записки 1. Введение 2. Проектирование 3. Анализ требований 4. Анализ предметной области 5 Обзор существующих решений 6.Разработка телеграмм-бота. 7. База данных – MongoDB 8.Telegram 9. Тестирование системы 10. Описание своей реализации. 11. выводы Приложения: ________________________________________________________________ 5. Код программы_ 6. Список графического материала UML Диаграмма вариантов использования, UML Диаграмма активности телеграмм-бота, UML Диаграмма классов айроки сообщения, UML Диаграмма последовательности обработки пользовательского запроса. 7. Дата выдачи задания ____________________________________________________ Календарный план Срок исполнение этапов проекта № з/п Название этапов выполнения дипломного проекта Примечание 1 Выбор согласование темы дипломного проекта тематического направлении да 22.02.2019 2 Анализ изучение предметной области теоретических материалов да 15.04.2019 3 Разработка технического задания, выбор методов и средств реализации задачи 24.04.2019 4 Обзор существующих решений по тематике работы 27.04.2019 5 Разработка проектирование системы структуры прототипа да 06.05.2019 6 Реализация проекта 20.05.2019 7 Настройка и проверка программы 23.05.2019 8 Оформление пояснительной записки 03.06.2019 9 Предзащита дипломного проекта 04.06.2019 10 Доработка пояснительной записки и подготовка презентации 18.06.2019 11 Защита дипломного проекта 20.06.2019 Студент Шеродок В.В. Руководитель проекта Писаренко А.В. АННОТАЦИЯ Шеродок В.В. Телеграмм-бот построения маршрута с использованием общественного транспорта города Киева КПИ им. Игоря Сикорского, Киев, 2019. Объяснительная записка дипломного проекта содержит 15 таблиц, 1 приложение, 12 рисунков и 21 источник – всего 66 страниц. Объект исследования: чат-бот постройки маршрута с использованием общественного транспорта города Киева. Цель дипломного проекта: повышение удобства пользования общественным транспортом посредством разработки телеграмм-бота, строящего маршруты с использованием общественного транспорта г. Киева. КЛЮЧЕВЫЕ СЛОВА: БОТ, ЧАТ-БОТ, РАБОТ, ТЕЛЕГРАМ-БОТ, PYTHON, МЕССЕНДЖЕР, TELEGRAM, МАРШРУТЫ, ОБЩЕСТВЕННЫЙ ТРАНСПОРТ. SUMMARY Shroodok VV Телеграмма по созданию коммуникации с помощью общественного транспорта в городе Киив Игорь Сикорский KPI, Kyiv, 2019. Explanatory note of the diploma project contains 15 tables, 1 application, 12 figures and 21 sources - a total of 66 pages. Object of research: chat-bot of construction of route using public transport of city of Kiev. Существует диплома проект: увеличить способность использования общественного транспорта через развитие телеграмм, которые создают коммуникации с помощью общественного транспорта в Киеве. KEYWORDS: BOT, CHAT-BOT, ROBOT, TELEGRAM-BOT, PYTHON, MESSENGER, TELEGRAM, ROADS, PUBLIC TRANSPORT. Обозначение Наименование Примечание 1 2 3 4 5 6 7 8 9 Документация общая Вновь разработана А4 ИТ51.320БАК.002 ПО объяснительная записка 61 А3 ИТ51.320БАК.003 Д1 Диаграмма активности 1 А3 ИТ51.320БАК.004 Д2 Диаграмма вариантов использование 1 10 11 А3 ИТ51.320БАК.005 Д3 Диаграмма последовательностей 1 12 13 14 15 16 17 18 19 20 21 22 А3 ИТ51.320БАК.006 Д4 Диаграмма классов 1 ИТ51.320БАК.001 ТП Изм. Арк. Разработ. Проверь. Рецензирование. Н. Контр. Утверд. № докум. Шеродок В.В. Писаренко А.В. Подпись Дата Телеграмм-бот для построения маршрута с использованием общественного транспорта. Ведомость технического проекта Лит. Арк. 1 Акрушев 1 КПИ им. Игоря Сикорского ФИОТ, гр. ИТ-51 Шинкевич М.К Номер строки Формат Кол. писем № экз. СОДЕРЖАНИЕ СОДЕРЖАНИЕ ................................................. .................................................. ........................ 2 ВВЕДЕНИЕ ................................................. .................................................. ...................... 4 1 ПРОЕКТИРОВАНИЕ................................................ .................................................. .. 7 2 АНАЛИЗ ТРЕБОВАЛ............................................... .................................................. ..... 8 3 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ ................................................. ........................ 10 4 ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ ................................................. ............................... 11 4.1. Приложение Eway................................................ ............................................ 11 4.2. Synbot ................................................. .................................................. ..... 12 5 РАЗРАБОТКА TELEGRAM-БОТА ............................................. .............................. 14 5.1 Регистрация чат-бота для Telegram Bot API ......................................... ..... 14 5.2 Размещение чат-бота на удаленном сервере Heroku ........................... 15 5.3 Среда разработки............................................... ................................ 16 5.4 Язык программирования – Python ............................................. .................... 18 5.4.1 Модуль TeleBot ............................................. ................................ 19 5.4.2 Модуль CherryPy ............................................. ............................. 20 5.4.3 Модуль Requests ............................................. .............................. 21 5.5 REST API, HTTP-запросы, JSON и череда сообщений .......................... 21 5.5.1 REST API............................................. .......................................... 21 5.5.2 HTTP-запросы............................................ ..................................... 22 5.5.3 Формат JSON............................................. ................................... 24 5.5.4 Платформа Heroku ............................................. .......................... 27 5.5.5 Очередь сообщений ............................................. .......................... 28 5.6 Telegram Bot API.............................................. .......................................... 29 6 БАЗА ДАННЫХ – MONGODB............................................. ................................... 46 7 TELEGRAM ................................................ .................................................. .......... 50 ИТ51.320БАК.001 ТП Изм. Арк. Разработ. Проверь. Рецензирование. Н. Контр. Утверд. № докум. Шеродок В.В. Писаренко А.В. Подпись Дата Телеграмм-бот для построения маршрута с использованием общественного транспорта. Ведомость технического проекта Лит. Арк. 2 Акрушев 61 К ПИ им. Игоря Сикорского ФИОТ, гр. ИТ-51 Шинкевич М.К 8 ТЕСТИРОВАНИЕ СИСТЕМЫ............................................... .................................... 52 9 ОПИСАНИЕ СОБСТВЕННОЙ РЕАЛИЗАЦИИ.............................................. ............................... 57 ВЫВОДЫ................................................. .................................................. ............ 59 Письмо ИТ51.320БАК.002 ПО 3 Изм. Письмо № докум. Подпись Дата ВВЕДЕНИЕ Поскольку современный мир не стоит на месте, технологии стремительно развиваются и каждый день появляются новые тренды и идеи, многие имеют возможность повлиять на ИТ отрасль, которая в свою очередь влияет на другие отрасли, что в дальнейшем будет влиять на нашу повседневную жизнь. Если до недавнего времени популярны были приложения или компьютерные программы, то на данный момент лидерство занимают чат-боты, имеющие большие перспективы в разных сферах нашей жизни. Для начала нужно определить, что представляет собой чат-бот. Чат-бот – это специализированное приложение, позволяющее пользователям взаимодействовать со сторонними сервисами, если существует такая необходимость и все это выполнено через известный интерфейс чата. Чат-бот – это некоторый помощник, который общается с пользователями через сообщения и имеет множество определенных функций. То есть можно получить определенную информацию, написав чат-боту специальную команду, которую в свою очередь последний интерпретирует определенным образом. Так можно быстро переводить, комментировать, находить, тестировать, искать, обучать, транслировать, встраиваться в другие сервисы и платформы, взаимодействовать с датчиками и вещами, подключенными к Интернету. AI (Artificial intelligence) в общем используется для сокращения издержек и повышения качества услуг. Наиболее популярными направлениями развития AI являются распознавание голоса и текстовое общение с помощью разных поисковых роботов. К примеру можно упомянуть обо всем известных всплывающих окошках "консультантов" на многих сайтах. Однако о качестве таких консультаций можно поспорить, но тенденция очевидна и от нее не собираются отступать. Ярким примером автоматизации можно назвать множество ботов для приема заявок на доставку еды, бронирование столиков в ресторанах, рассылки рекламы и многое другое. Письмо ИТ51.320БАК.002 ПО 4 Изм. Письмо № докум. Подпись Дата Такие боты позволяют увеличить прибыль компаний, поскольку бот может обрабатывать заявки с большей скоростью, чем человек, и снизить нагрузку на рабочий персонал. Каждый день миллионы людей пользуются общественным транспортом города Киева, часто возникает необходимость быстро узнать о ближайших остановках, какой транспорт останавливается на них, когда прибудет на остановку и построить оптимальные маршруты. Также в Киеве, отрасль общественного транспорта развивается, на большинстве маршруток, трамваев и троллейбусов уже установлены GPS – маячки, которые дают возможность отслеживать местонахождение транспорта и рассчитывать время прибытия на ту или иную остановку. Поэтому, для решения определенных потребностей, приведенных ранее, чтобы сохранить время людей и сделать планирование маршрута легким делом, было решено создать телеграмм-бот построения маршрутов с использованием общественного транспорта в Киеве на платформе Telegram. Telegram – это приложение, разработанное на языке программирования C++, позволяющее обмениваться сообщениями и файлами большинства форматов. Мессенджер использует специально разработанную серверную часть с закрытым кодом, работающих на серверах Германии и США. Telegram имеет ряд преимуществ: а) конфиденциальность – все чаты зашифровываются, а сообщения уничтожаются через указанное время; б) скорость – скорость доставки сообщений выше, чем у аналогов; в) оптимизация – серверы Telegram расположены по всему миру, что повышает надежность; г) открытость – использование открытого протокола; д) отсутствие подписок и рекламы; е) отсутствие ограничений на размер сообщений и вложенных файлов. Письмо ИТ51.320БАК.002 ПО 5 Изм. Письмо № докум. Подпись Дата Актуальность бакалаврской работы обусловлена высокой популярностью мессенджеров и средств автоматизации как чат-боты среди пользователей сети Интернет. Чат-боты позволяют упростить ежедневные рутинные задачи, такие как получение информации о погоде, пробках, последних новостях и другие. Главным достоинством классических приложений является возможность замещения всех возможностей на платформе одного мессенджера. Была поставлена цель: создать телеграмм-бота, который сможет в соответствии с местонахождением пользователей, предоставить ему необходимую информацию о ближайших остановках, какой именно общественный транспорт останавливается на полученных остановках, при необходимости сообщать когда прибудет на остановку необходимый транспорт, строить оптимальные маршруты в соответствии с запросом пользователя . Исходя из поставленных целей, были поставлены следующие задачи: а) анализ выбранной предметной области; б) сравнение имеющихся аналогов чат-ботов; в) выбор технологий и среды разработки; г) разработка чат-бота на платформе Telegram. Письмо ИТ51.320БАК.002 ПО 6 Изм. Письмо № докум. Подпись Дата 1 ПРОЕКТИРОВАНИЕ Проектирование является неотъемлемой частью разработки любой программной системы. Условно этот процесс можно разделить на несколько последовательных, связанных друг с другом этапов: формулирование целей (сбор требований), анализ предметной области и создание прототипа системы. Анализ предметной области подразумевает более глубокое изучение требований, предъявляемых к функционалу проектируемой системы, проработку сценариев взаимодействия с системой и алгоритмов в бизнес-логике. Четко сформулированные цели и задачи, тщательно проведенный анализ требований, проработка сценариев взаимодействия с системой и проектирование бизнес-логики – все это ключ успеха в достижении необходимого результата. Таким образом, проектирование увеличивает шансы успешного составления проекта, а также экономит время и деньги, ведь внесение изменений на начальном этапе разработки не так критично, как, например, на этапе отладки уже разработанной системы. Письмо ИТ51.320БАК.002 ПО 7 Изм. Письмо № докум. Подпись Дата 2 АНАЛИЗ ТРЕБОВАНИЙ Задачей дипломного проекта было определено создание телеграмбота для построения маршрутов с использованием общественного транспорта города Киева. Перед началом проектирования и разработки телеграмма бота нужно определить основные требования и описать их. Кроме того, необходимо проанализировать предметную область и рассмотреть существующие решения, чтобы убедиться в целесообразности разработки. Поскольку разрабатываемая система планируется внедрять в уже существующий программный комплекс, это накладывает определенные ограничения на архитектуру и технологии, которые можно будет использовать. Исходя из поставленных целей, требуется разработка телеграмм бота, который: а) будет знать обо всех возможных остановках общественного транспорта и типе останавливаемого на них общественного транспорта; б) будет хранить полученные данные в специальной базе данных, оптимизированной для хранения метрик и временных данных; в) будет определенным образом сохранять маршруты и график работы общественного транспорта; г) позволит отслеживать текущее местонахождение пользователя и общественного транспорта; д) позволит получать информацию о прибытии общественного транспорта на остановку; е) позволит строить оптимальные маршруты движения с использованием общественного транспорта; ж) позволит находить ближайшие к местонахождению пользователя остановки общественного транспорта. А теперь подробно опишем каждый из пунктов. Пользователю нужно будет знать все возможные остановки общественного транспорта в соответствии с указанным адресом. Письмо ИТ51.320БАК.002 ПО 8 Изм. Письмо № докум. Подпись Дата Поскольку остановки общественного транспорта меняются не часто, мы можем хранить информацию о них в базе данных, чтобы не тратить время и ресурсы для поиска. Аналогично мы можем сделать с информацией о маршрутах и графиках общественного транспорта. Также пользователь захочет видеть график прибытия общественного транспорта на остановку, тип и маршрут. Для того чтобы находить остановки общественного транспорта, находящиеся неподалеку от пользователя, мы должны получить доступ от пользователя на отслеживание его местонахождение. Пользователю предоставляется возможность ввести нужный ему адрес или выбрать необходимую остановку и в зависимости от выбранного адреса или остановки телеграмм-бот строит для пользователя оптимальный маршрут передвижения по городу Киеву с использованием общественного транспорта. Письмо ИТ51.320БАК.002 ПО 9 Изм. Письмо № докум. Подпись Дата 3 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ |