Обозначение проблемы.
В настоящее время повсеместно происходит автоматизация различных сфер деятельности. Одной из них является обучение на какой-либо кафедре в ВУЗе. В этой сфере внедрение автоматизированных информационных систем позволяет упростить работу со списками дисциплин, преподавательского состава, обучающихся студентов, а также с контролем успеваемости.
Цель работы.
Целью данной работы является создание веб-приложения для кафедры физвоспитания со следующими возможностями:
– Хранение списки преподавателей кафедры, студентов, дисциплин и нормативов
– Ведение посещаемости студентов
– Контроль сдачи нормативов
Разработка приложения.
Разработка базы данных.
На рисунке 1 представлена ER модель спроектированной базы данных [1]. Помимо хранения списков, расписания и нормативов, была добавлена таблица “group” для хранения информации о номере группы, факультете и курсе студента. Эта таблица необходима для формирования расписания, так как студенты одного потока (например, факультет КТИ 1 курс) занимаются различными дисциплинами в один день.
Каждую дисциплину могут вести несколько преподавателей, но один преподаватель может преподавать только одну дисциплину. Преподаватели закрепляют за собой студентов, которые обучаются на их дисциплине. При этом занятие может вести любой работник, преподающий выбранную студентом дисциплину.
Рис. 1. ER диаграмма
Спроектированная база данных была реализована с использованием СУБД MySQL [2–3].
Разработка веб-приложения.
Спроектированная система (веб-приложение и база данных) представлена на рисунке 2. Архитектура системы построена с использованием MVC (model-viewcontroller), который позволяет расширять и улучшать систему без изменения её архитектуры. В model перечислены созданные модули.
Рис. 2. Архитектура системы
Так как веб-приложение будет размещаться не на специальном мощном сервере, а на обычном компьютере, то для реализации серверной части веб-приложения необходимо выбрать технологию, которая обеспечивает его стабильную работу на малых вычислительных мощностях. Поэтому для разработки серверной части использовалась платформа Nodejs, основанная на JavaScript движке V8 [4–5]. Данная платформа поддерживает асинхронные запросы, передачу данных в формате JSON. Также для это платформы существует множество модулей, которые упрощают разработку.
При создании данной системы были использованы следующие модули:
– Express — фреймворк, построенный на концепции middleware. Middleware — это функции промежуточной обработки, имеющие доступ кобъекту запроса, объекту ответаи к следующей функции промежуточной обработки в цикле “запрос-ответ”. Архитектура middleware представлена рисунке 3. Замыкающий middleware обычно используется для обработки и вывода ошибок.
– Morgan — модуль для логирования клиент-сервер запросов.
– Sequelize — ORM (Object-RelationalMapping, объектно-реляционное отображение) для работы с СУБД MySQL. Данный модуль позволяет подключиться к базе данных и интерпретировать таблицы в виде моделей в Nodejs. Для этих моделей были написаны функции получения, изменения, добавления и удаления отдельных записей из таблиц, а также функции логики приложения. Например, функция получения дисциплины студента по его преподавателю и т. д.
Рис. 3. Архитектура middleware
Для разработки клиента использовался AngularJS, в котором реализована двухсторонняя связь между View и Model (см. рисунок 2). Любые изменения в модели автоматически отражаются на странице, а изменения на странице записываются в соответствующую модель. Контроллер осуществляет взаимодействие между View, Model и сервером. Например, при отправке формы добавления студента нового студента в соответствующий список, контроллер берёт соответствующие данные из модели, формирует запрос и отправляет его на сервер, а затем обрабатывает полученный ответ и сохраняет данные в своей модели.
Описание приложения.
Авторизация и регистрация в системе.
Для приложения реализованы авторизация и регистрация, формы которых вы видите на слайде. Зарегистрироваться может только преподаватель, который уже есть в списке работников кафедры. Для этого существует проверка по ФИО. После успешной авторизации или регистрации пользователь перенаправляется к списку студентов. Форма авторизации и регистрации представлена на рисунке 4.
Рис. 4. форма авторизации и регистрации
Списки.
Работа со списками показана на примере списка студентов, который представлен на рисунке 5.
Рис. 5. список студентов
Существующих студентов можно редактировать или удалять. При добавлении новых студентов или редактировании существующих, для полей, зависящих от других таблиц (например, номер группы), предусмотрены селекторы. Это позволяет избежать ввода некорректных данных. Также реализована фильтрация таблицы по полям. Все вышеперечисленные механизмы также предусмотрены и для других списков.
Журнал посещаемости.
На рисунке 6 представлен журнал по дисциплине, которую преподаёт авторизовавшийся преподаватель. Журнал формируется в зависимости от выбранного факультета, курса и промежутка дат. Для добавления сведений необходимо переключиться на соответствующую вкладку. Добавление происходит аналогично просмотру, только вместо промежутка дат выбирается конкретная дата и на пересечении ФИО студента и даты выбирается посещал ли студент дисциплину или нет.
Рис. 6. Журнал посещаемости
Результаты.
В результате разработки была создана система для кафедры физвоспитания. Данное приложение позволяет хранить списки студентов, преподавателей, дисциплин, нормативов и редактировать записи в этих списках; составлять журналы посещаемости и вести контроль сдачи нормативов. Данная система вводится в эксплуатацию на кафедре физвоспитания и будет использоваться, начиная со следующего учебного года.
Литература:
- Кириллов В. Введение в реляционные базы данных / В. Кириллов, Г. Громов. — СПб: БХВ-Петербург, 2012. — 464 с.
- Дюбуа П. MySQL / П. Дюбуа. — СПб: Вильямс, 2007. — 1168 с.
- Грабер, М. SQL для простых смертных / М. Грабер. — М: Лори, 2014. — 378 с.
- Пауэрс Ш. Изучаем Node.js / Ш. Пауэрс. — СПб: Питер, 2013. — 400 с.
- Флэнаган Д. JavaScript. Полное руководство / Д. Флэнаган. — СПб: Символ-Плюс, 2008. — 992 с.