📄Работа №184725

Тема: РАЗРАБОТКА ВЕРСИИ 3.0 СЕРВЕРНОГО ПРИЛОЖЕНИЯ TSU.INTIME

📝
Тип работы Бакалаврская работа
📚
Предмет информационные системы
📄
Объем: 61 листов
📅
Год: 2024
👁️
Просмотров: 92
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

Перечень условных обозначений, символов, сокращений, терминов 3
Введение 4
1 Анализ требований к новым возможностям 6
1.1 Новые возможности для студентов и преподавателей 6
1.2 Новые возможности для мини-приложений 9
1.3 Новые возможности для разработчиков TSU.InTime 11
2 Анализ недостатков реализации второй версии приложения 12
2.1 Недостатки структуры приложения 12
2.2 Негибкая система задач по расписанию 15
2.3 Недостатки реализации модерации контента 15
2.4 Недостатки исходного кода 17
3 Рефакторинг приложения 20
3.1 Проектирование обновлённой структуры приложения 20
3.2 Реализация обновлённой структуры приложения 22
3.3 Рефакторинг работы с задачами по расписанию 30
3.4 Рефакторинг модерации контента 32
3.5 Исправление выявленных недостатков исходного кода 34
4 Реализация новых возможностей 37
4.1 Сохранение расписаний 37
4.2 Получение информации об учебной нагрузке преподавателей 39
4.3 Получение информации об образовании 42
4.4 Управление разрешениями мини-приложения 42
4.5 Ролевая система 46
4.6 Отправка уведомлений модераторам об отправке контента на модерацию 48
4.7 Изменение порядка страниц мини-приложения 51
4.8 Фича-тогглы 51
Заключение 52
Список использованных источников и литературы 53
Приложение А Реализация паттерна «Шаблонный метод» при рефакторинге изменения мини-приложений

📖 Введение

TSU.InTime — платформа для студентов и преподавателей Томского государственного университета, позволяющая получать информацию о расписании любой группы или преподавателя и занятости аудиторий университета, а также многое другое. Платформа включает два клиентских веб-приложения и мобильные приложения для Android и iOS. Клиентские приложения взаимодействуют с серверным приложением, которое занимается получением данных от разных сервисов ТГУ и их преобразованием под нужды клиентских приложений.
Осенью 2021 года вышла версия 2.0 серверного приложения, в которой оно было переписано на язык программирования Kotlin с использованием фреймворка Ktor. На тот момент платформа предназначалась исключительно для получения расписания и проектировалась соответствующим образом. Однако в дальнейшем она предоставляла всё более многочисленные возможности: например, возможность бронирования аудиторий и управления бронированиями, отправки обратной связи разработчикам, получения данных об образовании или должности [2].
В 2023 году с версией 3.5 мобильные приложения TSU.InTime были преобразованы в суперприложения — большие приложениями с расширенным набором функций [3]. Это потребовало разработки платформы для публикации сторонними разработчиками своих мини-приложений, реализованных через конструктор или при помощи фреймворка React [4], для чего было разработано отдельное веб-приложение для разработчиков и доработано серверное приложение TSU.InTime. Итоговый список компонентов платформы представлен на рисунке 1.
В данный момент платформа активно развивается, предоставляя новые возможности. Однако их реализация затрудняется тем, что изначально она не была рассчитана на добавление функциональных возможностей помимо получения информации о расписании и наличие большого количества клиентских приложений.
Целью работы является разработка версии 3.0 серверного приложения TSU.InTime.
Исходя из рассуждений выше, были поставлены и выполнены следующие задачи:
1. Провести анализ требований к новым возможностям.
2. Провести анализ недостатков реализации второй версии приложения.
3. Провести рефакторинг приложения.
4. Реализовать новые возможности.

Возникли сложности?

Нужна качественная помощь преподавателя?

👨‍🎓 Помощь в написании

✅ Заключение

В результате проделанной работы был проведён рефакторинг серверного приложения TSU.InTime и разработана его новая версия с новыми возможностями. Все поставленные задачи были выполнены в соответствии с требованиями. Был проведён анализ недостатков реализации предыдущей версии приложения и возможных вариантов решения выявленных проблем. В рамках рефакторинга был проведён анализ различных архитектурных подходов, на основе которого была спроектирована новая структура приложения, позволяющая в дальнейшем при необходимости разбить приложение на микросервисы. В ходе рефакторинга удалось исправить недостатки реализации предыдущей версии, что позволило реализовать новую версию приложения с новыми возможностями.
На текущий момент новая версия серверного приложения полностью реализована и находится на этапе тестирования. В дальнейшем планируется добавление новых возможностей и возможное разделение приложения на микросервисы.
В ходе работы был получен опыт рефакторинга больших систем и проектирования многомодульной структуры, работы с Discord API и реализации сложных функциональных возможностей, таких как разрешения и ролевая система мини-приложений.

Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

1. Sealed classes and interface // Kotlin. — [Б. м.], 2024. — URL: https://kotlinlang.org/docs/sealed-classes.html(дата обращения: 06.05.2024).
2. Разработка суперприложения TSU.InTime : магистерская диссертация / Д. А. Шарапов. — Томск, 2023.
3. Яндекс Go, WeChat, Uber: почему компании переходят на суперприложения // РБК. — [Б. м.], 2021. — URL: https://trends.rbc.ru/trends/industry/5f442cce9a79470716c04b5e(дата обращения: 23.02.2024).
4. React. — [Б. м.], 2024. — URL: https://react.dev(дата обращения: 06.05.2024).
5. Discord. — [Б. м.], 2024. — URL: https://discord.com(дата обращения: 02.03.2024).
6. Feature Toggles (aka Feature Flags) // martinFowler.com — [Б. м.], 2024. — URL: https://martinfowler.com/articles/feature-toggles.html(дата обращения: 02.03.2024).
7. Мартин Р Чистая архитектура. Искусство разработки программного обеспечения / Р Мартин. — СПб. : Питер, 2018.
8. Как создать эндпоинты и зачем они нужны? // vc.ru. — [Б. м.], 2022. — URL: https://vc.ru/dev/391965-kak-sozdat-endpointy-i-zachem-oni-nuzhny(дата обращения: 10.03.2024).
9. Ларман К. Применение UML и шаблонов проектирования / К. Ларман ; пер. с. англ. А.Ю. Шелестова — 2-е изд. — М. : Издательский дом «Вильямс», 2004. — 624 с.
10. Фаулер М. Рефакторинг: улучшение существующего кода. / М. Фаулер ; пер. с. англ. С. Маккавеева — СПб: Символ-Плюс, 2003. — 432 с.
11. UUID // Baeldung. — [Б. м.], 2024. — URL: https://www.baeldung.com/java-uuid(дата обращения: 07.04.2024).
12. Parnas D.L. On the Criteria To Be Used in Decomposing Systems into Modules // Communications of the ACM. — 1972. — Vol. 15, №12. — P. 1053-1058.
13. Сравнение микросервисной и монолитной архитектур / Atlassian. — [Б. м.], 2023. — URL: https://www.atlassian.com/ru/microservices/microservices-architecture/ microservices-vs-monolith (дата обращения: 06.05.2024).
14. Еще раз про многомодульность Android-приложений // Хабр. — [Б. м.], 2020. — URL: https://habr.com/ru/companies/kaspersky/articles/520766(дата обращения: 06.05.2024).
15. Polymophism // GitHub. — [Б. м.], 2024. — URL:
https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/polymorphism.md#sealed- classes(дата обращения: 06.05.2024).
16. Riel, Arthur J. Object-Oriented Design Heuristics / Arthur J. Riel. — Boston, MA: Addison-Wesley, 1996. — 379 p.
17. Quartz Enterprise Job Scheduler // Quartz. - [Б. м.], 2023. - URL: https://www.quartz- scheduler.org(дата обращения: 06.05.2024).
18. Ranges and progressions // Kotlin. — [Б. м.], 2023. — URL:
https://kotlinlang.org/docs/ranges.html(дата обращения: 06.05.2024).
19. Type-safe builders // Kotlin. — [Б. м.], 2024. — URL: https://kotlinlang.org/docs/type- safe-builders.html(дата обращения: 07.04.2024).
20. Приемы объектно-ориентированного проектирования. Паттерны
проектирования / Э. Гамма, Р Хелм, Р Джонсон, Дж. Влиссидес ; пер. с англ.
А. Слинкина — СПб. : Питер, 2001. — 368 с.
21. Inline value classes // Kotlin. — [Б. м.], 2023. — URL:
https://kotlinlang.org/docs/inline-classes.html(дата обращения: 06.05.2024).
22. Visibility modifiers // Kotlin. — [Б. м.], 2024. — URL:
https://kotlinlang.org/docs/visibility-modifiers.html(дата обращения: 06.05.2024).
23. Алгоритм SHA-3 // Хабр. — [Б м.], 2022. — URL:
https://habr.com/ru/articles/534082(дата обращения: 05.05.2024).
24. Личный кабинет студента — [Б. м.], 2024. — URL: https://lk.student.tsu.ru(дата обращения: 05.05.2024).
25. ТГУАккаунты — [Б. м.], 2024. — URL: https://accounts.tsu.ru(дата обращения: 05.05.2024).
26. ТГУ Сотрудники — [Б. м.], 2024. — URL: https://persona.tsu.ru(дата обращения: 10.04.2024).
27. Object expressions and declarations // Kotlin. — [Б. м.], 2024. — URL: https://kotlinlang.org/docs/object-declarations.html(дата обращения: 29.05.2024).
28. Кириевски, Дж. Рефакторинг с использованием шаблонов / Дж. Кириевски. — СПб. : ООО «Диалектика», 2019. — 400 с.
29. Webhook Resource // Discord Developer Portal. — [Б. м.], 2024. — URL: https://discord.com/developers/docs/resources/webhook(дата обращения: 06.05.2024).

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.

©2026 Cервис помощи студентам в выполнении работ