1. Разработка проектных решений
Схема базы данных разработана в программе Mysql Workbench в виде EER-диаграммы (рис.1).
У каждой таблицы задан первичный ключ (как правило, id), благодаря которому можно однозначно идентифицировать любую запись таблицы.
Рисунок 1 – Схема базы данных
На рис.2 приведена структура таблицы departments (кафедры). Назначение и смысл полей таблицы понятен из столбца «комментарии».
При входе пользователь увидит окно авторизации с запросом логина и пароля. Логин и пароль выдается администратором.
Рисунок 2 – Окно авторизации
В тестовом режиме на данный момент (на момент разработки программы) окно авторизации позволяет легко войти под правами администратора (верный логин и пароль уже введены) (рис. 3). Пароль администратора тестовый: pass1.
Рисунок 3 – Окно авторизации в тестовом режиме
После авторизации с правами администратора доступно максимальное количество функций (рис.4).
Рисунок 4 – Главное окно с правами администратора
После авторизации с правами студента/родителя доступно ограниченное количество функций (рис.5).
Тестовый вход под студентом: логин – student, пароль – pass3.
Рисунок 5 – Главное окно с правами студента/родителя
После авторизации с правами преподавателя доступно ограниченное количество функций (рис.6).
Рисунок 6 – Главное окно с правами преподавателя
После авторизации с правами преподавателя доступно ограниченное количество функций (рис.7).
Тестовый вход под студентом: логин – teacher, пароль – pass6.
Рисунок 7 – Главное окно с правами преподавателя
Преподаватель может выставлять оценки в разделе «Редактор отметок» (рис. 8).
Рисунок 8 – Редактор отметок
Чтобы выставить отметку необходимо выбрать курс. При этом автоматически будет подгружен список групп, принадлежащих выбранному курсу. При выборе нужной группы автоматически будет подгружен список студентов данной группы и список предметов данной группы. Т.е. исключены некорректные выборы.
Для простоты разработки функция удаления оценки за нужную дату по нужному студенту и нужному предмету реализована выбором отметки «пусто» и нажатие на кнопку «Добавить отметку».
При нажатии на кнопку «Показать отметки» показывается ведомость отметок по данному студенту (рис. 9).
Рисунок 9 – Ведомость отметок
Студенты и их родители могут просмотреть свое расписание (рис.40). При этом нет необходимости выбирать группу. Т.к. группа уже известна (по логину). Необходимо лишь выбрать номер учебной недели (если расписание меняется и зависит от недели).
Чтобы опубликовать веб-сайт, необходим либо статический, либо динамический веб-сервер.
Статический веб-сервер, состоит из компьютера («железо») с сервером HTTP (ПО). Мы называем это «статикой», потому что сервер посылает размещенные файлы в браузер «как есть».
Динамический веб-сервер состоит из статического веб-сервера и дополнительного программного обеспечения, чаще всего сервера приложения и базы данных. Мы называем его «динамическим», потому что сервер приложений изменяет исходные файлы перед отправкой в ваш браузер по HTTP.
Веб-сервер сложно настраивать для обычного пользователя. Его настройками занимаются специально обученные люди – системные администраторы. Администрирование веб-сервера – очень сложный процесс, требующий высокой квалификации. Это обусловлено в первую очередь тем, что необходимо максимум внимания оказать безопасности. Ведь сервер, т.е. компьютер, должен быть подключен к сети интернет, и любой может подключиться к нему и произвести несанкционированные действия в случае обнаружения дыр в безопасности. Кроме того, веб-сервер должен работать (быть включенным) и быть подключен к сети Интернет круглосуточно. Что не всегда возможно для обычных компьютеров. В таких случаях на помощь приходят специализированные организации – веб-хостеры. Они предоставляют услуги аренды своих мощностей – позволяют арендовать веб-серверы, либо виртуальные вычислительные мощности, на которых можно установить веб-серверы. Эти услуги носят название веб-хостинг.
На данное время самым известным и распространенным является Apache. Он распространяется бесплатно, т.е. является свободно-распространяемым. Используется как часть UNIX – подобной операционной системы, однако программисты нашли способы откомпилировать его и под другие операционные системы, в том числе, под windows, например.
Также имеются другие варианты веб-серверов:
IIS от компании Microsoft, распространяемый с ОС семейства Windows
nginx — свободный веб-сервер, разрабатываемый Игорем Сысоевым с 2002 года и пользующийся большой популярностью на крупных сайтах [2],[3]
lighttpd — свободный веб-сервер.
Google Web Server — веб-сервер, основанный на Apache и доработанный компанией Google.
Resin — свободный веб-сервер приложений.
Cherokee — свободный веб-сервер, управляемый только через web-интерфейс.
Rootage — веб-сервер, написанный на java.
THTTPD — простой, маленький, быстрый и безопасный веб-сервер.
Open Server — бесплатная программа с графическим интерфейсом использует множество исключительно свободного программного комплекса.
H2O — свободный быстрый веб-сервер, написанный на C.
Однако использовать в проекте будем именно Apache.
Данный веб-сервер имеет следующие преимущества:
— Бесплатность использования, даже при использовании с коммерческими целями.
— Надежность, стабильность. Т.к. он сделан на основе системы модуля unix, известной своей надежностью, простотой и стабильностью.
— Безопасный благодаря регулярным обновлениям.
— Гибкость. Apache гибок, учитывая наличие модульной структуры. Можно, например, подключить/отключить один или несколько любых модулей. Для этого необходимо лишь подредактировать ini-файл и перезапустить веб-сервер.
— Простота в использовании. Как правило, он работает сразу после установки. Во многих сборках unix-linux-подобных ОС Apache уже установлен и работает «из коробки». В других сборках его установка достаточно проста. Разве что есть вопросы по конфигурированию для работы с базами данных.
— Кроссплатформенность. После успеха на Unix-системах, была разработана версия и для windows.
— Большое сообщество. Например, на форуме https://www.linux.org.ru/tag/apache?section=2 находятся много советов и статей по настройкам.
Недостатки:
— Производительность. На высоконагруженных сайтах бывают проблемы производительности, особенно, при работе с большим трафиком.
— Сложность в конфигурации безопасности. Настройкой Apache необходимо заниматься профессиональным системным администраторам, иначе могут быть проблемы с безопасностью.
Остальные части данного отчета по практике: