Практическая работа №2. Разработка модуля сайта

Опубликовано пользователем Бессонов Л.В. 13.02.2010г.

Цель работы

Целью практической работы является разработка и написание модуля web-сайта, согласно индивидуальному заданию.

Теоретические материалы

Модулем web-сайта будем называть программу, хранящуюся и выполняющуюся на сервере, имеющую один или несколько вариантов представления хранимой на сервере информации и интерфейс управления этой информацией.

Общие требования к заданиям

Написанная по индивидуальному заданию система должна быть защищена от некорректной передачи параметров.

Для работы система должна подключать файл config.php, содержащий настройки для подключения к базе данных и параметр, управляющий детализацией протоколов работы.

Система должна вести протокол работы в файл <дата>.log со следующими возможными уровнями детализации (каждый больший номер включает в себя сообщения уровней с меньшими номерами):

  1. Ошибки: ошибки при соединении с базой данных, неверный ввод пароля при доступе к административному интерфейсу.
  2. Предупреждения: передача некорректных параметров.
  3. Сообщения: доступ к административному интерфейсу, добавление/изменение/удаление информации в базу данных.
  4. Отладка: все обращения к скрипту.

То есть, к примеру, отладка уровня 3 будет включать в себя ошибки, предупреждения и сообщения. А отладка уровня 2 — ошибки и предупреждения.

Записи протокола должны содержать дату-время события, наименование события (ошибка, предупреждение, сообщение, отладка), расшифровку (например, какого типа ошибка или какая страница запрошена), логин пользователя (например при попытке доступа и прочих манипуляциях с авторизацией).

Варианты индивидуальных заданий

Один вариант выполняется одним или двумя студентами. Варианты, помеченные знаком «звёздочка» выполняется четырьмя студентами.

Вариант 1

Базовая часть

Модуль "Система новостей". Информационная единица — новость — имеет структуру:

  • Идентификатор новости;
  • Дата-время размещения новости;
  • Заголовок (текст не более 50 символов);
  • Автор (выбор из списка авторов)
  • Рубрика (выбор из списка рубрик)
  • Анонс (краткий текст не более 250 символов);
  • Текст новости (текст не более 65535 символов).

 Модуль имеет представления:

  1. Вывод блоков {Дата-время, Заголовок, Анонс} в ленту новостей, отсортированную в обратном хронологическом порядке и разбиваемую на страницы (по 10 новостей на страницу).
  2. Вывод новостей по дате.
  3. Вывод новостей по рубрике.
  4. Вывод отдельной новости по идентификатору.

Модуль имеет интерфейс администратора, позволяющий добавлять, изменять и удалять отдельные новости.

Расширение задачи

Реализовать защиту интерфейса администратора системой аутентификации пользователей. Данные пользователей хранится в таблице:

  • Идентификатор;
  • Логин;
  • Хеш пароля;
  • Наличие прав суперпользователя;
  • ФИО;
  • Время последнего доступа к системе.

Вместо выбора из списка авторов для новостей реализуйте связь с таблицей пользователей. Система должна указывать автора автоматически, при добавлении новости аутентифицированным пользователем.

Система аутентификации имеет интерфейс суперпользователя, доступный только тем пользователям, кому назначено соответствующее право. Интерфейс суперпользователя позволяет добавлять и удалять пользователей системы, а также изменять различные атрибуты существующих пользователей.

Вариант 2

Базовая часть

Модуль "Учёт пользователей". Информационная единица — пользователь — имеет структуру:

  • Логин (текст не более 20 символов);
  • Фамилия (текст не более 50 символов);
  • Имя (текст не более 50 символов);
  • Отчество (текст не более 50 символов);
  • Должность (выбор из списка должностей);
  • Дата-время регистрации;

 Модуль имеет представления:

  1. Вывод списка пользователей с возможностью сортировки по колонкам, и разбиваемую на страницы (по 10 пользователей на страницу).
  2. Вывод списка пользователей по заданной должности.
  3. Вывод списка пользователей, зарегистрированных в заданном месяце.
  4. Вывод карточки пользователя по заданному логину.

Модуль имеет интерфейс администратора, позволяющий добавлять, изменять и удалять записи о пользователях.

Расширение задачи

Реализовать защиту интерфейса администратора системой аутентификации пользователей. Данные аутентификации хранится в отдельной таблице, связанной с таблицей пользователей и имеющей структуру:

  • Логин;
  • Хеш пароля;
  • Наличие прав суперпользователя;
  • Время последнего доступа к системе.

Система аутентификации имеет интерфейс суперпользователя, доступный только тем пользователям, кому назначено соответствующее право. Интерфейс суперпользователя позволяет назначать пользователям права входа в интерфейс администрирования и права суперпользователя.

Вариант 3

Базовая часть

Модуль "Библиотека". Информационная единица — книга — имеет структуру:

  • Идентификатор
  • Название книги (текст не более 100 символов);
  • Автор(ы) (текст не более 250 символов);
  • Год издания;
  • Аннотация (текст не более 65535 символов);
  • Тематика (выбор из списка тематик);
  • Выдана (NULL если книга не выдавалась, 0 если выдана);
  • Имя графического файла, содержащего фото обложки.

 Модуль имеет представления:

  1. Вывод списка книг библиотеки с возможностью сортировки по колонкам. Список разбивается на страницы (по 10 книг на страницу).
  2. Список доступных (не выданных) книг.
  3. Вывод карточки книги.

Модуль имеет интерфейс администратора, позволяющий добавлять, изменять и удалять записи о книгах.

Расширение задачи

Реализовать защиту интерфейса администратора системой аутентификации пользователей. Данные аутентификации хранится в отдельной таблице, имеющей структуру:

  • Идентификатор;
  • Логин;
  • ФИО пользователя;
  • Хеш пароля;
  • Наличие прав суперпользователя;
  • Время последнего доступа к системе.

В таблице записей о книгах модифицируйте атрибут "Выдана", чтобы он имел значение NULL, если книга никому не выдана в настоящий момент, и значение равное идентификатору пользователя, если книга выдана этому пользователю. Администраторский интерфейс позволяет указывать факт выдачи книги пользователю и возврата книги.

Добавьте представление "Задолжники".

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

Вариант 4

Базовая часть

Модуль "Доска объявления". Информационная единица — объявление — имеет структуру:

  • Идентификатор объявления;
  • Дата-время размещения объявления;
  • Заголовок (текст не более 100 символов);
  • Автор (текст не более 50 символов);
  • Email автора (текст не более 50 символов);
  • Телефон (текст не более 20 символов);
  • Текст объявления (текст не более 65535 символов).

 Модуль имеет представления:

  1. Вывод списка объявлений, отсортированный в обратном хронологическом порядке (по 20 объявлений на страницу).
  2. Вывод объявления по идентификатору.
  3. Вывод списка {Автор, Email, Телефон}.
  4. Вывод объявлений по дате.

Модуль имеет открытый интерфейс, позволяющий добавлять, объявления. Также модуль имеет интерфейс администратора, позволяющий удалять объявления.

Расширение задачи

Реализовать защиту интерфейса администратора системой аутентификации пользователей. Данные пользователей хранится в таблице:

  • Идентификатор;
  • Логин;
  • Хеш пароля;
  • ФИО;
  • Время последнего доступа к системе.

Система аутентификации имеет интерфейс суперпользователя, доступный только тем пользователям, кому назначено соответствующее право. Интерфейс суперпользователя позволяет добавлять и удалять пользователей системы, а также изменять различные атрибуты существующих пользователей.

Вариант 5

Базовая часть

Модуль "Геоинформационная база". Информационная единица — географический объект — имеет структуру:

  • Идентификатор объекта;
  • Координата X (вещественное число);
  • Координата Y (вещественное число);
  • Название (текст не более 50 символов);
  • Описание (текст не более 65535 символов).

Координаты будем считать декартовыми.

Модуль имеет представления:

  1. Вывод списка географических объектов (по 10 объектов на страницу).
  2. Вывод карточки объекта.
  3. Вывод списка объектов, удалённых друг от друга не дальше чем на указанное расстояние.
  4. Вывод карточки объекта, ближайшего к указанной точке.

Модуль имеет интерфейс администратора, позволяющий добавлять, изменять и удалять отдельные объекты.

Расширение задачи

Реализовать защиту интерфейса администратора системой аутентификации пользователей. Данные пользователей хранится в таблице:

  • Идентификатор;
  • Логин;
  • Хеш пароля;
  • Наличие прав суперпользователя;
  • ФИО;
  • Время последнего доступа к системе.

Система аутентификации имеет интерфейс суперпользователя, доступный только тем пользователям, кому назначено соответствующее право. Интерфейс суперпользователя позволяет добавлять и удалять пользователей системы, а также изменять различные атрибуты существующих пользователей.

Вариант 6

Базовая часть

Модуль "Телефонный справочник организации". Информационная единица — телефонный номер — имеет структуру:

  • Идентификатор;
  • Сотрудник, ответственный за телефон (выбор из списка сотрудников);
  • Отдел, которому принадлежит телефон (выбор из списка сотрудников);
  • Телефонный номер (текст не более 20 символов);
  • Описание (текст не более 65535 символов).

Модуль имеет представления:

  1. Вывод списка всех телефонных номеров, сгруппированных по отделам (по 15 записей на страницу).
  2. Вывод карточки телефона (полное описание).
  3. Вывод списка телефонных номеров указанного отдела.
  4. Вывод списка телефонных номеров указанного ответственного сотрудника.

Модуль имеет интерфейс администратора, позволяющий добавлять, изменять и удалять отдельные записи.

Расширение задачи

Реализовать защиту интерфейса администратора системой аутентификации пользователей. Данные пользователей хранится в таблице:

  • Идентификатор;
  • Логин;
  • Хеш пароля;
  • Наличие прав суперпользователя;
  • ФИО;
  • Время последнего доступа к системе.

Вместо использования перечисления сотрудников, используйте связь с таблицей пользователей.

Пользователь имеет право изменять или удалять запись о телефоне, если он является ответственным за эту запись.

При добавлении записи, ответственным сотрудником автоматически назначается создающий запись пользователь.

Система аутентификации имеет интерфейс суперпользователя, доступный только тем пользователям, кому назначено соответствующее право. Интерфейс суперпользователя позволяет добавлять и удалять пользователей системы, а также изменять различные атрибуты существующих пользователей. Кроме того, суперпользователь имеет право создания, изменения и удаления любых записей о телефонных номерах.

Вариант 7*

Базовая часть

Модуль "Распределение заданий". Информационная единица — задание — имеет структуру:

  • Идентификатор задания;
  • Дата-время добавления задания;
  • Сотрудник, которому назначено задание (выбор из списка сотрудников)
  • Планируемая дата завершения;
  • Фактическая дата завершения;
  • Заголовок (текст не более 50 символов);
  • Текст задания(текст не более 65535 символов).

Сотрудники не могут сами отмечать задания как выполненные.

 Модуль имеет представления:

  1. Вывод заданий по сотруднику, сортируемый в обратном хронологическом порядке.
  2. Вывод статистики производительности сотрудников (количество заданий в месяц, при этом если задание растянуто на несколько месяцев, считать производительность пропорционально дням).
  3. Вывод диаграммы Ганта занятости сотрудников в проектах (по завершённым проектам) на указанный интервал дат.

Для изображения диаграммы Ганта используйте таблицу с закрашенными ячейками. По горизонтальной оси диаграммы отложены дни. По вертикальной оси расположены группы {сотрудник → {проекты}}.

Модуль имеет интерфейс администратора, позволяющий добавлять, изменять и удалять отдельные задания.

Расширение задачи

Реализовать защиту интерфейса администратора системой аутентификации пользователей. Данные пользователей хранится в таблице:

  • Идентификатор;
  • Логин;
  • Хеш пароля;
  • Наличие прав суперпользователя;
  • ФИО;
  • Время последнего доступа к системе.

Вместо перечисления сотрудников в базовой задаче используйте связь с таблицей пользвателей.

Каждый пользователь имеет право пометить приписанную ему задачу как завершённую, при этом моментом завершения задачи считается момент выставления признака "Завершена". Добавлять, изменять и удалять задачи имеет право только суперпользователь.

Система аутентификации имеет интерфейс суперпользователя, доступный только тем пользователям, кому назначено соответствующее право. Интерфейс суперпользователя позволяет добавлять и удалять пользователей системы, а также изменять различные атрибуты существующих пользователей.

Вариант 8*

Базовая часть

Модуль "Риэлтер". Информационная единица — запись о квартире — имеет структуру:

  • Идентификатор;
  • Этажность дома;
  • Этаж, на котором расположена квартира;
  • Количество комнат;
  • Цена в рублях;
  • Строительный материал: кирпич, панель, дерево (выбор из списка материалов);
  • Район города (выбор из списка районов);
  • Имя риэлтера (текст не более 50 символов);
  • Email риэлтера (текст не более 100 символов);
  • Описание (текст не более 65535 символов).

Модуль имеет представления:

  1. Вывод таблицы всех квартир с возможностью  сортировки по колонкам (по 20 записей на страницу).
  2. Вывод карточки квартиры (полное описание).
  3. Вывод списка квартир удовлетворяющих критерию отбора {Этаж, Этажность, Материал, Количество комнат, Минимальная цена, Максимальная цена, Район}. Часть параметров отбора могут быть неопределены. При отборе по цене должен выполняться критерий: Минимальная цена ≤ Цена ≤ Максимальная цена.
  4. Вывод статистики по количеству предложений квартир по риэлтерам.

Модуль имеет интерфейс администратора, позволяющий добавлять, изменять и удалять отдельные записи.

Расширение задачи

Реализовать защиту интерфейса администратора системой аутентификации пользователей. Данные пользователей хранится в таблице:

  • Идентификатор;
  • Логин;
  • Хеш пароля;
  • Наличие прав суперпользователя;
  • ФИО;
  • Email;
  • Телефон;
  • Время последнего доступа к системе.

Вместо использования текстовой строки «Имя риэлтера», используйте связь с таблицей пользователей. При этом атрибут таблицы квартир «Email» становится не нужным. Переделайте все имеющиеся представления с учётом подбора ФИО и контактных данных риэлтера из таблицы пользователей.

Пользователь имеет право изменять или удалять запись о квартире, если он является риэлтером, выставляющим квартиру на продажу.

При добавлении записи, риэлтером автоматически назначается создающий запись пользователь.

Система аутентификации имеет интерфейс суперпользователя, доступный только тем пользователям, кому назначено соответствующее право. Интерфейс суперпользователя позволяет добавлять и удалять пользователей системы, а также изменять различные атрибуты существующих пользователей. Кроме того, суперпользователь имеет право создания, изменения и удаления любых записей о телефонных номерах.

Баннер SGU.RU