Тема: РАЗРАБОТКА ВЕРСИИ 3.0 СЕРВЕРНОГО ПРИЛОЖЕНИЯ TSU.INTIME
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Введение 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
Приложение А Реализация паттерна «Шаблонный метод» при рефакторинге изменения мини-приложений
📖 Введение
Осенью 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. Реализовать новые возможности.
✅ Заключение
На текущий момент новая версия серверного приложения полностью реализована и находится на этапе тестирования. В дальнейшем планируется добавление новых возможностей и возможное разделение приложения на микросервисы.
В ходе работы был получен опыт рефакторинга больших систем и проектирования многомодульной структуры, работы с Discord API и реализации сложных функциональных возможностей, таких как разрешения и ролевая система мини-приложений.



