Расписание занятий в университете
Тема моей дипломной работы — Разработка веб-интерфейса системы доступа к базам данных на примере расписания занятий на факультете.
Главной целью перед собой я ставлю достижение простоты и удобства пользования данной системой. Для этого необходимо:
- Разобраться со структурой расписания;
- Создать свою базу данных;
- Разработать интерфейс.
Моя работа представляет собой веб-приложение — сайт, на котором пользователь может легко и быстро найти свое расписание, а администратор может удобно и просто ввести уже составленное ранее расписание в базу данных.
Ранее уже была разработана подобная система расписания занятий на факультете. Но у нее были значительные недостатки. Во-первых, это не оптимальная структура базы данных. Все данные хранились в одной большой таблице. Во-вторых, для внесения изменений в такую базу данных требовались определенные знания самой базы данных.
Преимущества моей системы
В отличие от старой базы данных моя система имеет ряд существенных преимуществ.
Во-первых, это удобство и простота пользования. С моей системой может работать каждый желающий без предварительного обучения.
Во-вторых, это кроссплатформенность и кроссбраузерность. Для работы с системой можно пользоваться любой операционной системой и любым браузером. Расписание факультета доступно из любой точки мира, где есть интернет.
В-третьих, это модульная структура базы данных, состоящая из восьми связанных таблиц. В отдельных таблицах хранится список преподавателей, предметов, аудиторий и т.д. И только в двух таблицах описывается все расписание.
В-четвертых, экспорт данных в формате PDF.
Инструментарий
В работе я пользовался самыми популярными инструментами для разработки веб-приложений. Это язык программирования PHP, и база данных MySQL. Использовал следующее программное обеспечение:
- Графический редактор GIMP для создания макетов сайта.
- Zend Studio — для написания и отладки программного кода на PHP.
- Кросплатформенный веб-сервер XAMPP, который включает в себя Аpache, MySQL и PHP.
Все программы распространяются свободно.
Этапы разработки
Всю работу я разделил на этапы:
- Создание структуры расписания.
- Дизайн. Создание макетов.
- Верстка макетов в HTML.
- Создание структуры базы данных.
- Программирование.
Структура расписания
На первом этапе, я детально изучил расписание факультета и выявил такую особенность. Каждое занятие может проходить еженедельно или по числителю/знаменателю, для всей группы или по подгруппам. Таким образом, можно выделить пять различных видов занятий.

Каждое занятие имеет два одинаковых блока описания. Первый блок — это академ. группа, день недели и номер занятия. Второй блок — это предмет, преподаватель, аудитория и тип занятия. Между этими блоками существует блок с «адресом» занятия. В этом блоке описывается вид занятия. Таким образом, можно представить такую структуру расписания.
Дизайн
Имея такую структуру расписания, я разработал интерфейс и дизайн сайта. Основная задача дизайна — сделать информацию удобной для восприятия. На этом этапе очень важно детально продумать интерфейс сайта и проработать пользовательские сценарии поведения.
Главная страница. Здесь простой пользователь с помощью «Фильтра расписания» выбирает свою группу, день недели и получает свое расписание.
Администратор может не только просмотреть расписание, но и редактировать его. Для редактирования расписания администратору необходимо авторизироваться на сайте.
После этого он попадает на страницу администрирования, где ему доступны для редактирования базы данных преподавателей, предметов, академ. групп и аудиторий.
Редактирование этих баз данных происходит очень легко.
Редактирование расписания происходит при помощи фильтра расписания, где администратор выбирает группу, день недели и номера занятий, которые он хочет добавить или отредактировать. Нажимая на кнопку «Редактировать», администратор попадает на страницу редактирования расписания, где открыты необходимые занятия.
Верстка макетов в HTML
Следующий этап — это верстка макетов в формате HTML с использованием CSS. Верстка макета осуществляется соответственно его структуре.

Преимущество верстки слоями состоит в том, что данные отделяются от представления. То есть структура данных описывается в html, а все стили вынесены в отдельный файл css.
Структура базы данных
Разработка структуры базы данных. База данных состоит из восьми таблиц.

Все расписание формируется по правилу четыре переменных. DIF — идентификатор первого уровня ветвления. ORD — идентификтор второго уровня деления. ND — числитель/знаменатель. SB — разделение на подгруппы.
Таким образом, эти четыре переменные дают нам 81 комбинацию, из которых только 13 будут описывать необходимые нам виды занятий.

Последний этап — это программирование.
Таким образом, я разработал простой и удобный веб-интерфейс доступа к расписанию на факультете. Свою работу я показывал Артему Горбунову — известному специалисту в области дизайна пользовательских интерфейсов. Некоторые его советы были мной реализованы. Также, моя система прошла юзабилити-тестирование работником нашего деканата. Это тестирование показало, что системой действительно может пользоваться каждый, она проста и удобна в использовании.









