МОБИЛЬНОЕ ПРИЛОЖЕНИЕ - АГРЕГАТОР СЕРВИСОВ ТПУ
|
Введение 21
Объект и методы исследования 23
Глава 1. Исследование предметной области 25
1.1 Инфраструктура информационных систем ТПУ 25
1.2 Выбор языка разработки мобильного приложения 26
1.3 Выбор инструментов работы с картами и изображениями в мобильном
приложении 30
1.4 Обзор технологий внутреннего позиционирования 31
1.5 Поэтажные планы учебных корпусов 34
1.6 Обзор архитектурных подходов при разработке сервера 35
1.6.1 Монолитная архитектура 36
1.6.2 Модульная архитектура 39
1.6.3 Микросервисная архитектура 40
1.6.4 Обоснование выбора архитектуры 42
1.7 Инструменты и методологии, используемые при разработке серверной
части 43
1.7.1 Обоснование выбора программной платформы 43
1.7.2 NestJS 44
1.7.3 PostgreSQL 44
1.7.4 MongoDB 45
1.7.5 Swagger 45
1.7.6 Docker 46
1.7.7 Kubernetes 47
1.7.9 Kong API Gateway 48
1.7.9 Grafana 49
1.7.10 Fluent-Bit 50
1.7.11 Redis 50
1.7.12 RabbitMQ 51
1.7.13 DevOps 51
1.7.14 VK Cloud 53
1.8 Вывод по главе 54
Глава 2. Проектирование Суперсервиса 56
2.1 Проектирование инфраструктуры indoor-навигации на примере
десятого учебного корпуса 56
2.2 Работа с BLE маячками 58
2.3 Требования к Мобильному приложению 59
2.4 Проектирование мобильного приложения 62
2.5 Проектирование UX / UI дизайна мобильного приложения 65
2.6 Описание процесса публикации нового сервиса 70
2.7 Проектирование архитектуры серверной части 73
2.8 Вывод по главе 75
Глава 3. Разработка Суперсервиса 76
3.1 Разработка приложения для работы с маячками 76
3.2 Разработка мобильного приложения «Суперсервис ТПУ» 78
3.3 Разработка кластера Kubernetes 79
3.4 Интеграция сторонних инструментов 87
3.5 Настройка CI/CD пайплайна 91
3.6 Разработка модуля пользователя 92
3.7 Вывод по главе 99
Глава 4. Результаты разработки Суперсервиса 100
4.1 Мобильное приложение «Суперсервис ТПУ» 100
4.2. Многофункциональный сервер 104
4.3 CI/CD пайплайн 106
Глава 5. Финансовый менеджмент, ресурсоэффективность и ресурсосбережение 109
Введение 109
5.1 Оценка коммерческого потенциала и перспективности научных
исследований 109
5.1.1 Потенциальные потребители результатов исследования 109
5.1.2 Анализ конкурентных технических решений 111
5.1.3 Технология QuaD 112
5.1.4 SWOT-анализ 114
5.2 Определение возможных альтернатив проведения научного
исследования 117
5.3 Планирование работ по научно-техническому исследованию 118
5.3.1 Структура работ в рамках научного исследования 118
5.3.2 Определение трудоемкости выполнения работ 120
5.3.3 Разработка графика проведения научного исследования 120
5.4 Бюджет научно-технического исследования (НТИ) 126
5.4.1 Расчет материальных затрат 127
5.4.2 Расчет затрат на специальное оборудование для научных работ . 127
5.4.3 Основная заработная плата исполнителя темы 128
5.4.4 Расчет дополнительной заработной платы 131
5.4.5 Отчисления во внебюджетные фонды 132
5.4.6 Накладные расходы 133
5.4.7 Формирование бюджета затрат научно-исследовательского проекта 133
5.5 Определение ресурсной (ресурсосберегающей), финансовой,
бюджетной, социальной и экономической эффективности исследования134 Вывод по главе 136
Глава 6. Социальная ответственность 137
Введение 137
6.1 Правовые и организационные вопросы обеспечения безопасности при
разработке проектного решения 137
6.1.1 Правовые нормы трудового законодательства 137
6.1.2 Эргономические требования к правильному расположению и
компоновке рабочей зоны 138
6.2 Производственная безопасность 139
6.2.1 Отсутствие или недостаток необходимого искусственного
освещения 140
6.2.2 Монотонность труда, вызывающая монотонию 142
6.2.3 Нагрузка на зрительный аппарат 142
6.2.4 Умственное перенапряжение, в том числе вызванное
информационной нагрузкой 143
6.2.5 Статические физические нагрузки, связанные с рабочей позой... 143
6.2.6 Аномальные микроклиматические параметры воздушной среды на
местонахождении рабочего 144
6.3 Экологическая безопасность 145
6.4 Безопасность в чрезвычайных ситуациях 146
Вывод по разделу 147
Заключение 149
Список публикаций студентов 151
Список использованных источников 152
Приложение А. Страницы приложения 157
Приложение Б. Диаграммы последовательностей 158
Приложение В. Docker Compose файл 160
Приложение Г. GitHub Actions 165
Приложение Д. Skaffold конфигурация 167
Объект и методы исследования 23
Глава 1. Исследование предметной области 25
1.1 Инфраструктура информационных систем ТПУ 25
1.2 Выбор языка разработки мобильного приложения 26
1.3 Выбор инструментов работы с картами и изображениями в мобильном
приложении 30
1.4 Обзор технологий внутреннего позиционирования 31
1.5 Поэтажные планы учебных корпусов 34
1.6 Обзор архитектурных подходов при разработке сервера 35
1.6.1 Монолитная архитектура 36
1.6.2 Модульная архитектура 39
1.6.3 Микросервисная архитектура 40
1.6.4 Обоснование выбора архитектуры 42
1.7 Инструменты и методологии, используемые при разработке серверной
части 43
1.7.1 Обоснование выбора программной платформы 43
1.7.2 NestJS 44
1.7.3 PostgreSQL 44
1.7.4 MongoDB 45
1.7.5 Swagger 45
1.7.6 Docker 46
1.7.7 Kubernetes 47
1.7.9 Kong API Gateway 48
1.7.9 Grafana 49
1.7.10 Fluent-Bit 50
1.7.11 Redis 50
1.7.12 RabbitMQ 51
1.7.13 DevOps 51
1.7.14 VK Cloud 53
1.8 Вывод по главе 54
Глава 2. Проектирование Суперсервиса 56
2.1 Проектирование инфраструктуры indoor-навигации на примере
десятого учебного корпуса 56
2.2 Работа с BLE маячками 58
2.3 Требования к Мобильному приложению 59
2.4 Проектирование мобильного приложения 62
2.5 Проектирование UX / UI дизайна мобильного приложения 65
2.6 Описание процесса публикации нового сервиса 70
2.7 Проектирование архитектуры серверной части 73
2.8 Вывод по главе 75
Глава 3. Разработка Суперсервиса 76
3.1 Разработка приложения для работы с маячками 76
3.2 Разработка мобильного приложения «Суперсервис ТПУ» 78
3.3 Разработка кластера Kubernetes 79
3.4 Интеграция сторонних инструментов 87
3.5 Настройка CI/CD пайплайна 91
3.6 Разработка модуля пользователя 92
3.7 Вывод по главе 99
Глава 4. Результаты разработки Суперсервиса 100
4.1 Мобильное приложение «Суперсервис ТПУ» 100
4.2. Многофункциональный сервер 104
4.3 CI/CD пайплайн 106
Глава 5. Финансовый менеджмент, ресурсоэффективность и ресурсосбережение 109
Введение 109
5.1 Оценка коммерческого потенциала и перспективности научных
исследований 109
5.1.1 Потенциальные потребители результатов исследования 109
5.1.2 Анализ конкурентных технических решений 111
5.1.3 Технология QuaD 112
5.1.4 SWOT-анализ 114
5.2 Определение возможных альтернатив проведения научного
исследования 117
5.3 Планирование работ по научно-техническому исследованию 118
5.3.1 Структура работ в рамках научного исследования 118
5.3.2 Определение трудоемкости выполнения работ 120
5.3.3 Разработка графика проведения научного исследования 120
5.4 Бюджет научно-технического исследования (НТИ) 126
5.4.1 Расчет материальных затрат 127
5.4.2 Расчет затрат на специальное оборудование для научных работ . 127
5.4.3 Основная заработная плата исполнителя темы 128
5.4.4 Расчет дополнительной заработной платы 131
5.4.5 Отчисления во внебюджетные фонды 132
5.4.6 Накладные расходы 133
5.4.7 Формирование бюджета затрат научно-исследовательского проекта 133
5.5 Определение ресурсной (ресурсосберегающей), финансовой,
бюджетной, социальной и экономической эффективности исследования134 Вывод по главе 136
Глава 6. Социальная ответственность 137
Введение 137
6.1 Правовые и организационные вопросы обеспечения безопасности при
разработке проектного решения 137
6.1.1 Правовые нормы трудового законодательства 137
6.1.2 Эргономические требования к правильному расположению и
компоновке рабочей зоны 138
6.2 Производственная безопасность 139
6.2.1 Отсутствие или недостаток необходимого искусственного
освещения 140
6.2.2 Монотонность труда, вызывающая монотонию 142
6.2.3 Нагрузка на зрительный аппарат 142
6.2.4 Умственное перенапряжение, в том числе вызванное
информационной нагрузкой 143
6.2.5 Статические физические нагрузки, связанные с рабочей позой... 143
6.2.6 Аномальные микроклиматические параметры воздушной среды на
местонахождении рабочего 144
6.3 Экологическая безопасность 145
6.4 Безопасность в чрезвычайных ситуациях 146
Вывод по разделу 147
Заключение 149
Список публикаций студентов 151
Список использованных источников 152
Приложение А. Страницы приложения 157
Приложение Б. Диаграммы последовательностей 158
Приложение В. Docker Compose файл 160
Приложение Г. GitHub Actions 165
Приложение Д. Skaffold конфигурация 167
С увеличением темпов роста использования информационных технологий увеличивается количество информации, которую необходимо собирать, хранить и обрабатывать [1]. Цифровизация проникает во все сферы жизни [2], ускоряя и усовершенствуя протекание бизнес-процессов. Множество преимуществ цифровизация дает и университету: широкий доступ обучающихся к ин-формационным ресурсам вуза, возможность строить индивидуализированные образовательные траектории, оптимизацию взаимодействия между преподавателями и студентами и др.
Томский Политехнический Университет можно назвать передовым в области цифровизации образования, на момент написания работы он имеет 110 действующих цифровых продуктов [3]. 1,5 года назад университет столкнулся с проблемой - большой спрос на новые продукты и сервисы не мог быть удовлетворен в условиях большой монолитной системы с закрытой архитектурой, в которой каждый компонент разрабатывался в разное время разными разработчиками, использовавшими разные технологии. Поэтому руководством университета было принято решение кардинально перестроить всю имеющуюся архитектуру следующим образом: в центр системы поместить плат-формы: «Образование», «Наука», «СОУД», «Кадры» и «Финансы», и с помощью мастер-данных, рассылки машиночитаемых документов и единого API и предоставить им возможность общаться между собой, и создать комфортную среду для микросервисов - отчуждаемых систем, разрабатываемых для ТПУ внешними разработчиками; сторонних систем, встроенных в инфраструктуру ТПУ; а также внешних систем, сопряженных с системой ТПУ [4].
Но у данного подхода тоже есть свои недостатки - единая точка входа хоть и позволят авторизовываться во всех сервисах, но каждый раз требует ввода логина и пароля. Большое количество распределенных сервисов хоть и оптимизируют многие задачи, но в то же время требуют осведомленности пользователей. Наиболее важные для студента сервисы, такие как, например, Корпоративный портал, не оптимизированы под маленькие экраны, что затрудняет их использование на смартфонах.
В то же время в цифровом мире наблюдается другой тренд - корпорации стремятся объединить все свои продукты в единое Суперприложение или Суперсервис, мобильный интерфейс для экосистемы, который объединяет ее продукты и сервисы в едином окне.
Авторы данной выпускной квалификационной работы приняли решение перенять опыт крупных компаний и спроектировать и разработать мобильное приложение - Агрегатор сервисов Томского Политехнического Университета «Суперсервис ТПУ». Для демонстрации возможностей платформы решено разработать 4 сервиса: улучшенное расписание, сервис для поиска ауди-торий и сервис для мероприятий.
Объект и методы исследования
Объект исследования: мобильное приложение - агрегатор сервисов Томского Политехнического Университета «Суперсервис ТПУ». В качестве методов исследования используются методы анализа и синтеза, проектирование общей структуры системы. Были использованы справочные и статистические материалы по выбранной теме.
Цель выпускной квалификационной работы: разработать платформу системы «Суперсервиса ТПУ» и на его основе запустить три сервиса - улучшенное расписание, сервис для поиска аудиторий, сервис для участников культмассовых мероприятий. Система должна иметь микросервисную архитектуру, а также предоставлять другим студентам возможность вести отдельную разработку своих сервисов и впоследствии интегрировать их в основное приложение
Для достижения поставленной цели необходимо решить задачи:
1. Проанализировать литературу и интернет-ресурсы по теме внутреннего устройства суперприложений и суперсервисов.
2. Проанализировать существующие сервисы и архитектуру серверов Томского Политехнического Университета. Сформировать запрос на получение нужных данных.
3. Подключиться к API Томского Политехнического Университета.
4. Спроектировать и разработать сервер для мобильного приложения «Суперсервис ТПУ».
5. Спроектировать и разработать мобильное приложение «Суперсервис ТПУ».
6. Спроектировать и разработать 3 сервиса - улучшенное расписание, сервис для поиска аудиторий, сервис для участников культмассовых мероприятий.
Актуальность работы обусловлена наличием большого количества слабо связанных и не адаптированных под мобильные устройства сервисов Томского Политехнического Университета. При использовании разных сервисов необходимо заново проходить процесс авторизации. Сервис расписания необходим для более глубокой персонализации действующего расписания; сервис поиска аудиторий - для помощи студентам в ориентировании в учебных корпусах; сервис для культмассовых мероприятий - для создания нового вида взаимодействия между участниками и мероприятием.
Другая проблема - оторванность вузовского проектного обучения от реальной практики. Действующий Суперсервис позволит студентам обучаться программированию на создании реальных университетских сервисов.
Томский Политехнический Университет можно назвать передовым в области цифровизации образования, на момент написания работы он имеет 110 действующих цифровых продуктов [3]. 1,5 года назад университет столкнулся с проблемой - большой спрос на новые продукты и сервисы не мог быть удовлетворен в условиях большой монолитной системы с закрытой архитектурой, в которой каждый компонент разрабатывался в разное время разными разработчиками, использовавшими разные технологии. Поэтому руководством университета было принято решение кардинально перестроить всю имеющуюся архитектуру следующим образом: в центр системы поместить плат-формы: «Образование», «Наука», «СОУД», «Кадры» и «Финансы», и с помощью мастер-данных, рассылки машиночитаемых документов и единого API и предоставить им возможность общаться между собой, и создать комфортную среду для микросервисов - отчуждаемых систем, разрабатываемых для ТПУ внешними разработчиками; сторонних систем, встроенных в инфраструктуру ТПУ; а также внешних систем, сопряженных с системой ТПУ [4].
Но у данного подхода тоже есть свои недостатки - единая точка входа хоть и позволят авторизовываться во всех сервисах, но каждый раз требует ввода логина и пароля. Большое количество распределенных сервисов хоть и оптимизируют многие задачи, но в то же время требуют осведомленности пользователей. Наиболее важные для студента сервисы, такие как, например, Корпоративный портал, не оптимизированы под маленькие экраны, что затрудняет их использование на смартфонах.
В то же время в цифровом мире наблюдается другой тренд - корпорации стремятся объединить все свои продукты в единое Суперприложение или Суперсервис, мобильный интерфейс для экосистемы, который объединяет ее продукты и сервисы в едином окне.
Авторы данной выпускной квалификационной работы приняли решение перенять опыт крупных компаний и спроектировать и разработать мобильное приложение - Агрегатор сервисов Томского Политехнического Университета «Суперсервис ТПУ». Для демонстрации возможностей платформы решено разработать 4 сервиса: улучшенное расписание, сервис для поиска ауди-торий и сервис для мероприятий.
Объект и методы исследования
Объект исследования: мобильное приложение - агрегатор сервисов Томского Политехнического Университета «Суперсервис ТПУ». В качестве методов исследования используются методы анализа и синтеза, проектирование общей структуры системы. Были использованы справочные и статистические материалы по выбранной теме.
Цель выпускной квалификационной работы: разработать платформу системы «Суперсервиса ТПУ» и на его основе запустить три сервиса - улучшенное расписание, сервис для поиска аудиторий, сервис для участников культмассовых мероприятий. Система должна иметь микросервисную архитектуру, а также предоставлять другим студентам возможность вести отдельную разработку своих сервисов и впоследствии интегрировать их в основное приложение
Для достижения поставленной цели необходимо решить задачи:
1. Проанализировать литературу и интернет-ресурсы по теме внутреннего устройства суперприложений и суперсервисов.
2. Проанализировать существующие сервисы и архитектуру серверов Томского Политехнического Университета. Сформировать запрос на получение нужных данных.
3. Подключиться к API Томского Политехнического Университета.
4. Спроектировать и разработать сервер для мобильного приложения «Суперсервис ТПУ».
5. Спроектировать и разработать мобильное приложение «Суперсервис ТПУ».
6. Спроектировать и разработать 3 сервиса - улучшенное расписание, сервис для поиска аудиторий, сервис для участников культмассовых мероприятий.
Актуальность работы обусловлена наличием большого количества слабо связанных и не адаптированных под мобильные устройства сервисов Томского Политехнического Университета. При использовании разных сервисов необходимо заново проходить процесс авторизации. Сервис расписания необходим для более глубокой персонализации действующего расписания; сервис поиска аудиторий - для помощи студентам в ориентировании в учебных корпусах; сервис для культмассовых мероприятий - для создания нового вида взаимодействия между участниками и мероприятием.
Другая проблема - оторванность вузовского проектного обучения от реальной практики. Действующий Суперсервис позволит студентам обучаться программированию на создании реальных университетских сервисов.
В результате выполнения работы выпускной квалификационной работы было спроектировано и разработано приложение - агрегатор сервисов ТПУ. Для разработки использовались фреймворки Flutter и NestJS, для управления контейнеризованными модулями применяется Kubernetes.
Была исследована предметная область, а именно состояние информационной инфраструктуры Томского политехнического университета. Были выбраны архитектурные подходы к проектированию системы, инструменты разработки и службы развёртывания.
Перед началом процесса разработки были описаны бизнес-процессы, которые необходимо автоматизировать, а также спроектированы пользовательский интерфейс приложения и архитектура веб-сервера.
На этапе разработки системы Кудашкиным Алексеем Вячеславовичем было разработано мобильное кроссплатформенное приложение, которое можно автоматически расширять при помощи веб-представлений сервисов. Якубицким Владиславом Романовичем была реализована основа веб-сервера, который построен на микросервисной архитектуре, а также настроены каналы взаимодействия элементов системы и сформирован CI/CD пайплайн. Сенчиным Данилом Михайловичем были разработаны основные сервисы и подключены внешние службы для их работы.
Выполнены задания по разделам «Финансовый менеджмент, ресурсоэффективность и ресурсосбережение» и «Социальная ответственность», где была показана финансовая эффективность проекта и соответствие его правовым нормам по организации производственного процесса.
27.04.2022 была проведена встреча с представителями ТПУ, на которой Томский политехнический университет выразил интерес к разработанному продукту и пожелал выступить в роли заказчика, что определяет дальнейшее развитие проекта следующим образом: осуществить более тесную интеграцию сервера с api.tpu.ru, обеспечить взаимодействие клиента и сервера, собрать с заказчика требования, спроектировать, разработать и внедрить заказанные сервисы. Также планируется постепенно расширять количество функциональных возможностей системы.
В рамках выпускной квалификационной работы были выполнены все основные поставленные задачи, что позволило достигнуть цели работы.
Была исследована предметная область, а именно состояние информационной инфраструктуры Томского политехнического университета. Были выбраны архитектурные подходы к проектированию системы, инструменты разработки и службы развёртывания.
Перед началом процесса разработки были описаны бизнес-процессы, которые необходимо автоматизировать, а также спроектированы пользовательский интерфейс приложения и архитектура веб-сервера.
На этапе разработки системы Кудашкиным Алексеем Вячеславовичем было разработано мобильное кроссплатформенное приложение, которое можно автоматически расширять при помощи веб-представлений сервисов. Якубицким Владиславом Романовичем была реализована основа веб-сервера, который построен на микросервисной архитектуре, а также настроены каналы взаимодействия элементов системы и сформирован CI/CD пайплайн. Сенчиным Данилом Михайловичем были разработаны основные сервисы и подключены внешние службы для их работы.
Выполнены задания по разделам «Финансовый менеджмент, ресурсоэффективность и ресурсосбережение» и «Социальная ответственность», где была показана финансовая эффективность проекта и соответствие его правовым нормам по организации производственного процесса.
27.04.2022 была проведена встреча с представителями ТПУ, на которой Томский политехнический университет выразил интерес к разработанному продукту и пожелал выступить в роли заказчика, что определяет дальнейшее развитие проекта следующим образом: осуществить более тесную интеграцию сервера с api.tpu.ru, обеспечить взаимодействие клиента и сервера, собрать с заказчика требования, спроектировать, разработать и внедрить заказанные сервисы. Также планируется постепенно расширять количество функциональных возможностей системы.
В рамках выпускной квалификационной работы были выполнены все основные поставленные задачи, что позволило достигнуть цели работы.



