Введение
С развитием информационных технологий в современном мире во многих сферах жизни возникает необходимость использования современных IT-решений, включая образование. Например они применяются для управления расписанием занятий в образовательных учреждениях. Ручное создание и поддержка расписания требуют значительных трудовых и временных затрат, что часто приводит к ошибкам. Чтобы обеспечить максимальную эффективность обучения в современных техникумах и колледжах с большим количеством студентов и преподавателей, необходимо эффективно организовать учебный процесс. Разработка автоматизированной информационной системы «Расписание» является одной из ключевых задач в этом контексте, так как она позволит автоматизировать процесс составления расписания занятий для учебных групп, а также обеспечит быстрый и удобный доступ к информации о расписании как для студентов, так и для преподавателей.
Рассматриваемая проблема до сих пор остается актуальной, ее решением занимаются многие исследователи: И.В. Артамонов и А.Д. Дмитриева [1] описывают основные проблемы использования и создания «плавающего» расписания; С.Н. Широбокова и О.Н. Сериков [2] предлагают вариант формализованной модели задачи составления расписания учебных занятий в условиях применения ограничительных мер (в частности, сдвига потоков по времени); Д.И. Биков и М.Р. Хамидуллин [3] разработали систему мониторинга расписания в образовательных учреждениях; А.Н. Шелестова [4] раскрывает преимущества применения электронной учебной документации в образовательном процессе вуза, рассматривая веб-сайт вуза как ключевой компонент веб-ориентированного информационно-образовательного пространства.
В настоящее время существует ряд готовых решений для управления расписанием в образовательных учреждениях. Но, как отмечают в своих исследованиях ряд авторов [5, 6], универсального программного средства нет, в каждой автоматизированной системе есть свои достоинства и недостатки. Но самым перспективным является решение, представленное в виде веб-сайта.
Цель исследования – разработать веб-приложение «Расписание» для управления расписанием занятий в КГБПОУ «Лесосибирский технологический техникум».
Материал и методы исследования
Анализ предметной области является важным этапом в проектировании веб-приложения «Расписание». Этот этап включает в себя изучение особенностей образовательного процесса, структуры учебного заведения, текущих методов управления расписанием, а также выявление требований и ожиданий пользователей системы. Потенциальными пользователями системы являются обучающиеся и преподаватели (неавторизованные пользователи), диспетчер и администратор системы (авторизованные пользователи).
Анализ текущих методов управления расписанием выявил ряд проблем и ограничений, которые могут быть решены с помощью автоматизации:
а) высокая трудоемкость:
− ручное составление и обновление расписания требует значительных временных затрат со стороны администраторов;
− процесс подвержен ошибкам из-за человеческого фактора;
б) низкая оперативность:
− внесение изменений в расписание занимает много времени, что затрудняет оперативное реагирование на изменения и потребности;
в) отсутствие прозрачности:
− обучающиеся и преподаватели могут испытывать трудности с доступом к актуальной информации о расписании;
− расписание может быть недоступно вне учебного заведения или в нерабочее время;
г) ограниченная гибкость:
− ручное планирование ограничивает возможности оптимизации и автоматической проверки расписания на наличие конфликтов.
Для визуализации и анализа потоков данных, а также для понимания логики взаимодействия между различными элементами системы используются диаграммы взаимодействия, которые Л.А. Мацяшек описал следующим образом: «Диаграммы взаимодействий разделяются на два вида – диаграммы последовательностей и диаграммы коммуникации (до появления версии UML 2.0 они назывались диаграммами кооперации). Диаграмма последовательностей представляет собой двумерный граф. Роли (объекты) располагаются по горизонтали» [7, с. 223]. На рисунке 1 представлены диаграммы взаимодействия пользователей системы (обучающихся и диспетчера расписания) с системой.
Созданные диаграммы позволяют четко представить последовательность действий и обмена данными между различными участниками и компонентами системы, что способствует более эффективной разработке веб-приложения.
Основой для системы «Расписание» является клиент-серверная архитектура, которая обеспечивает эффективное взаимодействие между компонентами через сеть.
Для разработки клиентской части системы была выбрана библиотека React JS, так как она обладает высокой производительностью, компонентным подходом, также существует большая поддержка сообщества разработчиков и имеется множество готовых библиотек. React JS позволяет создавать интерактивные пользовательские интерфейсы и управлять состоянием приложения с использованием Redux или Context API.
Серверная часть системы использует язык программирования Python. Его основные преимущества включают простоту и удобочитаемость, обширную стандартную библиотеку и поддержку множества фреймворков и инструментов. В качестве веб-фреймворка был выбран Flask, который отличается легковесностью, гибкостью и возможностью быстрого старта разработки. Flask легко интегрируется с различными библиотеками и инструментами.
Рис. 1. Диаграммы взаимодействия пользователей с системой
В качестве хранения данных используется реляционная система управления базами данных MySQL, обеспечивающая высокую производительность и надежность. MySQL применяется для хранения информации о расписании, пользователях, учебных группах и аудиториях.
Для управления исходным кодом и совместной работы используется система контроля версий Git. Инструментарий Gitflow помогает управлять версиями и координировать работу в команде, обеспечивая удобное введение новых функций, исправление ошибок и релизов, что способствует структурированному и упорядоченному процессу разработки.
Использование данных технологий и инструментов обеспечивает создание эффективной, надежной и легко поддерживаемой системы, соответствующей современным тенденциям и подходам к разработке программного обеспечения.
Результаты исследования и их обсуждение
Интеграция с базой данных в веб-приложении «Расписание» включает создание и использование нескольких таблиц для хранения данных. Каждая таблица представляет собой структурированное хранилище информации, необходимой для функционирования системы. Основные таблицы, используемые в разработанном приложении:
1) Buildings: хранит информацию о зданиях, включая их название и адрес;
2) ChangeNotifications: связывает уведомления об изменениях с соответствующими изменениями в системе;
3) Classrooms: содержит данные об аудиториях, включая номера аудиторий и связи с соответствующими зданиями;
4) days_of_week: представляет дни недели для использования в расписании;
5) FieldMappings: используется для сопоставления полей на разных языках, что может быть полезно для интернационализации системы;
6) Group_Subjects: связывает учебные группы с учебными предметами, которые они изучают;
7) Groups_table: хранит информацию об учебных группах, включая их название, курс и связь с соответствующим зданием;
8) lesson_type: содержит различные типы занятий, такие как лекции, семинары и т. д.;
9) Notifications: сохраняет уведомления для пользователей, например об изменениях в расписании;
10) role и roles_users: используются для управления ролями пользователей в системе;
11) Schedule и ScheduleChanges: хранят информацию о расписании занятий и его изменениях;
12) SubGroup: содержит информацию о подгруппах учебных групп;
13) Subjects: содержит данные об учебных предметах;
14) Teachers и Teachers_Subjects: связывают преподавателей с учебными предметами, которые они ведут;
15) time_intervals: хранит интервалы времени, используемые в расписании занятий.
Для каждой из таблиц были созданы классы на языке программирования Python с соответствующими полями. Данные классы позволяют работать с данными непосредственно в приложении и призваны структурировать работу с информацией и СУБД MySQL.
Разберем класс Schedule на основе языка программирования Python с использованием SQLAlchemy для взаимодействия с созданной базой данных. Рассмотрим основные аспекты этого класса.
Класс Schedule является моделью данных, которая отражает структуру таблицы Schedule в базе данных и содержит следующие поля, которые соответствуют полям в базе данных:
− id, который является первичным ключом и уникальным идентификатором каждой записи расписания;
− date представляющее собой дату;
− start_time и end_time, определяющие время начала и окончания занятия;
− lesson_type_id, teachers_subjects_id, classroom_id, group_id, subgroup_id, которые являются внешними ключами, связывающими запись в таблице Schedule с соответствующими данными в других таблицах, такими как тип занятия, преподаватели и предметы, аудитории, группы и подгруппы.
В конструкторе __init__ класса Schedule проводится инициализация этих полей для создания новой записи в расписании или обновления существующей. Также был определен метод serialize, который преобразует объект Schedule в словарь Python, чтобы упростить передачу этих данных через API и их последующую обработку.
Такой подход позволяет управлять данными расписания в учебном заведении, обеспечивая быстрый доступ к актуальной информации и минимизацию ошибок при составлении расписания. А также он дает возможность работать с информацией в удобном для пользователей виде.
Графический пользовательский интерфейс веб-приложения «Расписание» представлен общедоступными страницами для неавторизованных пользователей (обучающихся и преподавателей) и административной панелью для авторизованных пользователей (диспетчера расписания).
В процессе разработки пользовательского интерфейса общедоступных страниц были созданы несколько ключевых элементов, обеспечивающих удобный и быстрый доступ к информации о расписании. Были разработаны три основные страницы:
− страница выбора группы, которая позволяет пользователю последовательно выбрать корпус, курс и группу;
− страница расписания для группы, представленная в виде карточек. Этот формат облегчает визуальное восприятие и навигацию по расписанию. Карточки являются интерактивными и позволяют быстро переходить к расписанию преподавателя;
− страница расписания преподавателя, где представлено расписание на текущую неделю с подробной информацией о каждом занятии. Это позволяет преподавателям эффективно планировать свое время и готовиться к занятиям.
На каждую страницу был интегрирован модуль поиска, позволяющий быстро находить нужные группы и преподавателей. Такой функционал помогает пользователям быстро получать доступ к необходимой информации. Внедрение такого пользовательского интерфейса обеспечивает эффективную навигацию в веб-приложении для обучающихся и преподавателей.
Для работы с расписанием авторизованного пользователя основной страницей является «Расписание занятий», которая представлена на рисунке 2.
На данной странице расположены параметры, которые нужно учитывать, чтобы начать заполнять расписание:
− выбор корпуса;
− выбор группы;
− выбор даты, на которую заполняется расписание.
На страницу «Расписание занятий» была добавлена сводная таблица расписания, представленная на рисунке 3. Эта таблица служит для контроля и проверки заполненного диспетчером расписания. Благодаря этому инструменту диспетчер может легко отслеживать актуальность и корректность введенных данных, своевременно вносить необходимые изменения и избегать возможных конфликтов в расписании.
Рис. 2. Страница «Расписание занятий» административной панели
Рис. 3. Сводная таблица расписания на один день
Для функционирования системы должны быть заполнены и актуализированы все справочники, заполнение каждого справочника и связей между ними осуществляется с помощью следующих форм:
− добавить предмет;
− добавить преподавателя;
− добавить группу;
− добавить предмет преподавателю.
Для взаимодействия клиентской части веб-приложения с серверной частью были определены конечные точки (endpoints). Каждая конечная точка определяет соответствующий URL и HTTP-метод, используемый для доступа к функционалу API.
Заключение
В ходе исследования с помощью современных технологий и инструментов, таких как Python, Flask, React и JavaScript, было спроектировано и разработано веб-приложение для управления расписанием в КГБПОУ «Лесосибирский технологический техникум». Архитектура веб-приложения разработана с учетом принципов чистой архитектуры, обеспечивающей масштабируемость и отказоустойчивость; определены методы взаимодействия компонентов и меры обеспечения безопасности. Cоздана серверная часть (на основе Flask) и клиентская часть (с помощью React разработан пользовательский интерфейс как для панели администратора, так и для общедоступных страниц), реализована обработка HTTP запросов для взаимодействия клиентской и серверной частей веб-приложения, обеспечена интеграция с базой данных MySQL с использованием SQLAlchemy для управления данными расписания.
Данное приложение успешно прошло fuzzing-тестирование и внедрено в образовательный процесс КГБПОУ «Лесосибирский технологический техникум». Разработанное решение способствует более эффективному управлению учебным процессом, оперативному внесению изменений и улучшению взаимодействия между всеми участниками образовательного процесса.
Библиографическая ссылка
Фирер А.В., Киргизова Е.В., Копейкин А.А., Шелкунов П.А. ВЕБ-ПРИЛОЖЕНИЕ ДЛЯ УПРАВЛЕНИЯ РАСПИСАНИЕМ В ОБРАЗОВАТЕЛЬНОМ УЧРЕЖДЕНИИ // Современные наукоемкие технологии. – 2024. – № 7. – С. 60-66;URL: https://top-technologies.ru/ru/article/view?id=40086 (дата обращения: 21.11.2024).