Приднестровский государственный университет им. Т.Г. Шевченко
Инженерно-технический институт
Кафедра программного обеспечения вычислительной техники
и автоматизированных систем
Допустить к защите
зав. кафедрой ПОВТиАС,
к.т.н., доцент
Ю.А. Столяренко
« ____» _______________ 2014 г
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
на соискание академической степени
бакалавра техники и технологии
по направлению 230100 «Информатика и вычислительная техника»
тема: «РЕАЛИЗАЦИЯ ВЕБ-ФОРУМА»
Расчетно-пояснительная записка
Студент
группы ИТ10ДР62ИВ1
Научный руководитель
к.т.н., доцент
Нормоконтроль,
ст. преподаватель
« ____» ____________ 2014 г.
Тирасполь, 2014
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
1 ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 4
1.1 Исследование актуальности реализации веб – форума 4
1.2 Обзор существующих веб – форумов 5
2 ПРОЕКТИРОВАНИЕ СТРУКТУРЫ И АРХИТЕКТУРЫ 10
2.1 Структурная схема программного продукта 10
2.2 Диаграмма вариантов использования 11
2.3 Процесс инициализации форума 13
2.4Описание процесса авторизации 14
2.5 Описание базы данных 14
3 РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА 16
3.1 Постановка задачи 16
3.2 Разработка алгоритма модуля пользователя и администратора 17
ЗАКЛЮЧЕНИЕ 19
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 20
ВВЕДЕНИЕ
Форум — это англоязычное слово, которое в буквальном переводе обозначает «свободная дискуссия» или конференция.
В интернет-терминологии под данным понятием веб-форум – подразумевают класс веб-приложений для организации общения посетителей веб-сайта. Первый веб-форум появился в 1994 году, одним из разработчиков которого выступил Ari Luotonen, известный тем, что трудился в начале 90-х годов над созданием веб-сервера CERN (W3C). Данный форум был предназначен только для разработчиков и носил исключительно коммерческий характер. Позднее, весной 1998 года, появился его бесплатный аналог на языке PHP, разработчиком которого являлся Brian Moon. Первоначальное название его проектабылоWebThreads, но впоследствии за ним укрепилось имя Phorum.
Суть работы форума заключается в создании пользователямисвоих тем и последующим их обсуждением, путём «постинга» сообщений, внутри этих тем. Отдельно взятая тема, по сути, представляет собой тематическую гостевую книгу. Пользователи могут комментировать заявленную тему, задавать вопросы по ней и получать ответы, а также сами отвечать на вопросы других пользователей форума и давать им советы. Внутри темы также, могут устраиваться опросы (голосования). Вопросы и ответы сохраняются в базе данных форума, и, в дальнейшем, могут быть полезны как участникам форума, так и любым пользователям сети Интернет, которые могут зайти на форум, зная адрес сайта, или получив его от поисковых систем при поиске нужной информации.
Тематика форумов может быть самой разнообразной, охватывая все сферы жизни, и определяется контингентом участников. При этом форумы могут быть как специализированные/узкоспециализированные, так и самого широко спектра заявленных тем.
Таким образом форумы уже не раз оказывали помощь пользователям в сети интернет, заинтересованным в поиске различной информации или получении индивидуального ответа на поставленный вопрос.
1 ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Исследование актуальности реализации веб-форума
Целью данной работы является программная реализация интернет сценария «веб-форум». Сценарий представляет собой набор модулей в виде файлов с расширением php, реализующихвозможности обмена информацией пользователей в сети. Областью применения данной курсовой работы могут являться задачи обеспечения общения, пользователей между компьютерами по сети Интернет.
Актуальность изучения данного вопроса связана с востребованностью подобных ресурсов в сети интернет.
Благодаря форумам люди могут общаться, обсуждать различные вопросы и проблемы, что неудобно делать посредствам комментариев к записям в блогах, социальных сетей, чатов и гостевых книг. На форумах можно писать более развёрнуто, вставлять картинки, давать ссылки и делать цитаты. Цитирование поста оппонента — любимый способ общения на форумах, а цитирование частями, «вырванными» из контекста предложениями — один из главных приёмов диалога между людьми и многие находят это очень удобным. Посты на форумах, прошедшие проверку модератором по определенным критериям, остаются там навсегда и становятся доступными для поисковых систем, которые находят их по запросу пользователей сети интернет что делает эти посты полезными не только для тех людей которые обсуждали подобную тему ранее, но и в последующем для тех, кто сталкивается с похожими вопросами. В социальных проектах и в программах обменом мгновенными сообщениями (skype, icq, viberи др) подобные функции не реализованы или присутствуют частично.
В то время как форум — это некое «место», в котором постоянно кипит какая-то жизнь: идут обсуждения той или иной новости, проекта, it-устройства и др.и каждый человек может найти себе единомышленников на любимые ему темы.
Еще один немаловажный аспект — это завоевание аудитории молодым и талантливым писателем, художником, музыкантом, и пр. Для этого более удобен и подходит блог, где ты главный, а остальные читатели. На практике — на активном форуме тебя будет читать хоть кто-то и шансов быть замеченным значительно больше, а у не раскрученного блогаесть большая вероятность так и остаться с нулём комментариев.
Можно сделать вывод что реализация такого проекта как веб-форум будет актуальна и востребована пользователями сети интернет.
1.2 Обзор существующих веб-форумов.
Пред началом разработки интернет сценария веб-форум был проведен анализ подобного рода веб-приложений в сети интернет и был сделан вывод что в настоящее время существует достаточно много решений подобной задачи ввиду актуальности объекта исследований. Но часто такие веб-форумы требуют оплаты услуг за предоставление доступа к разделам помечая их закрытым или работают с устаревшими данными. В этой части я протестировал 2 веб-форума.
1) http://konstantinfirst.com/forum
Первый веб-форум, который я хотел бы рассмотреть это - http://konstantinfirst.com/forum
Рисунок 1.1 –Главная страница веб-форума
Достоинствами этого форума является удобная классическая навигация по темам расположенная в середине экрана, также имеются ссылки «Сообщения без ответов» и «Активные темы» нажав на которые в первом случае можно увидеть список тем, которые остались без ответа администрации или участников форума и во втором случаем будут отображены темы которые пользуются наибольшей популярностью у пользователей, так называемые «горячие темы»
Рисунок 1.2– Структурная схема программного продукта
Главным недостатком данного форума является всплывающая реклама при посещении топика темы, а также реклама, расположенная по обеим сторонам страницы, которая отвлекает пользователя, а также многочисленные кнопки призыва перейти на страницу рекламируемого продукта
Рисунок 1.3–Пример всплывающей рекламы
При вводе своего e-mailадреса в поле на почту начинает приходить большое количество спам сообщений что доставляет неудобство.
2) http://forumdts.org/
Рисунок 1.4–Главная страница веб-форума
При анализе данного продукта было выявлено что для поиска по форуму требуется детальное изучение инструкции и правильного ввода ключевых слов используя специальные приставки AND чтобы определить слова, которые должны быть в результатах, OR для слов, которые могут быть в результатах, и NOT для слов, которых в результатах быть не должно. Данные правила являются не для всех понятными что затруднит комфортный поиск по темам форума.
Рисунок 1.5–Форма поиска по темам форума
На данном форуме, как и на предыдущем имеется большое количество рекламы что пагубно влияет на комфортное использование сервиса
Из плюсов можно также отметить удобную навигацию, расположенную в центральной части экрана что позволяет легко ориентироваться по форуму.
Рисунок 1.6–Навигационное меню форума
Еще одним преимуществом является кнопка «Информация | Настройка», которая располагается в верхней части экрана
Рисунок 1.7–Пример кнопки навигации
Ее активация разворачивает навигационную панель в которой пользователь может авторизироваться либо зарегистрироваться, а участнику который пожелал остаться под учетной записью «Гость» открыт раздел «Диалог с администрацией». Также имеются кнопки «Настройки форума» которые включают в себя описание разделов и смену внешнего стиля страниц форума так называемые «скины». В другой части навигационной панели располагаются кнопки «Контакты» что позволяет получить связь с администрацией или пользователями проекта посредствам личных сообщений
Рисунок 1.8–Развернутый пример кнопки навигации
Таким образом основными недостатками форумов являются: всплывающая реклама и реклама отвлекающая от просмотра, неудобная сортировка, не всегда интуитивно понятный интерфейс.
1.3 Требования к безопасности форума
Первым шагом на пути к безопасности форума было введение регистрации. Также необходимо добиться невозможности получения пользователями доступа к внутренним страницам форума с других доменов и защиту от "DoS" атак. Предоставление пользователям ограниченных прав так же способствует высокой защищенности форума. Сохранность паролей пользователя должна обеспечиваться односторонним шифрованием.
1.4 Требования к администрированию форума
В рамках форума должна существовать иерархия пользователей, в соответствии с которой обычному пользователю могут быть присвоены или отключены права по созданию сообщений и тем форума, редактированию и удалению собственных постов; модератор может создавать и удалять любые сообщения, темы, в том числе и закрытые. Администратор является высшим органом власти на форуме, и он в праве назначать и снимать с должности модераторов, управлять привилегиями пользователей форума, создавать и удалять темы, сообщения, иметь доступ во все разделы форума и пр.
2 ПРОЕКТИРОВАНИЕ СТРУКТУРЫ И АРХИТЕКТУРЫ
2.1 Выбор методов и средств реализации
Для разработки веб-приложения используется среда разработки Adobe Dreamweaver CS6, язык PHP, HTML.
Основные технологические характеристики: персональная ЭВМ с процессором с тактовой частотой 1 ГГц или выше, с операционной системой Microsoft Windows ХРс пакетом обновления SP2 (рекомендуется SP3)или более поздние версии WindowsNT, с объемом оперативной памяти не меньше 512 Мб, с емкостью жесткого диска не менее 80 Гб и свободного места не жестком диске не менее 10 Гб, монитором с разрешением (1024 x 768) или более высоким.
PHP — скриптовый языкпрограммирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.
HTML— стандартный язык разметки документов во всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML (или XHTML). Язык HTML интерпретируется браузерами и отображается в виде документа в удобной для человека форме.
Для разработки веб-форума используется интегрированная среда разработки Adobe Dreamweaver CS6, языки программирования – PHP, HTML. Среда разработки Adobe Dreamweaver CS6это полезный и удобный HTML редактор, который может быть полезен не только новичкам, но и даже продвинутым пользователям. С помощью этого редактора, можно с легкостью, без каких-либо проблем создать полноценный сайт. Adobe Dreamweaverподдерживаетсинтаксисследующегорядаязыковпрограммирования: ActionScript, Active Server Pages (ASP), ASP.NET, C#, Cascading Style Sheets (CSS), ColdFusion, EDML, Extensible HyperText Markup Language (XHTML),Extensible Markup Language (XML), Extensible Stylesheet Language Transformations (XSLT), HyperText Markup Language (HTML), Java, JavaScript, JavaServer Pages (JSP), PHP: Hypertext Preprocessor (PHP), Visual Basic (VB ), Visual Basic Script Edition (VBScript), Wireless Markup Language (WML). Работать с программным кодов в этом редакторе довольно просто и не составит затруднений. Дизайн сайта можно редактировать в визуальном режиме кода угодно.
Среда разработки Adobe Dreamweaver CS6позволяет упростить процесс программирования, благодаря таким функциям, как:
• Подсветка синтаксиса кода – это функция позволяет быстро проверить код и найти возможные ошибки.
• Автоподстановка кода – функция, которая существенно экономит время при написании кода, она на основе первых введенных букв выводит подходящие команды
• Режим дизайна и режим кода – функция, которая позволяет быстро переключаться с режима кода в визуальный режим, где можно видеть визуальные изменения при написании кода
• Проверка кода – функция, которая проверяет написанный код на соответствие требованиям стандартов веб-дизайна.
• Проверка кода – функция, которая проверяет написанный код на соответствие требованиям стандартов веб-дизайна.
• Встроенный файловый менеджер – позволяет выполнять навигацию по директориям сайта, не покидая программы Adobe Dreamweaver.
• Встроенный файловый менеджер – позволяет выполнять навигацию по директориям сайта, не покидая программы Adobe Dreamweaver.
• Вкладки и связанные файлы –функция, с которой стало удобнее вставлять ссылки с одной страницы на другую, а также перемещать контент из одной папки в другую.
Для создания базы данных была выбрана система управления базами данных PhpMyAdmin.Данная СУБД является самой распространённой
системой, которая используется для хранения и доступа к данным на сервере на сегодняшний день.
2.2 Структурная схема программного продукта
Структурная схема – схема, отражающая состав и взаимодействие по управлению частей разрабатываемого продукта.
Рисунок 2.1 – Структурная схема программного продукта
Как видно на схеме, процесс использования веб-страницы начинается с входа на форум после чего посетитель форума может как просмотреть контент сайта в роли гостя, так и авторизоваться под своей учетной записью или зарегистрироваться на сайте.
После авторизации учетной записи Пользователь, становится доступна «пользовательская панель» с ее помощью можно оценить пост, участвовать в дискуссии, скачать прикрепленные файлы. Учетной записи Администратор будет доступна «административная панель» с которой появляются возможности добавления, редактирования форумов, тем, сообщений, а также их удаление. Обычный пользователь этого делать не может, ему можно создавать только темы и сообщения и оценивать посты.
2.3Диаграмма вариантов использования
Первым шагом при описании функциональности системы является моделирование требований к ней. Целями анализа и моделирования требований являются:
– достижение соглашения между разработчиками, заказчиками и пользователями о том, что должна делать проектируемая система
– ограничение системной функциональности;
– определение пользовательского интерфейса.
Для достижения этих целей используются унифицированный язык моделирования UML (Unified Modeling Language). Для определения логической структуры программного продукта выполнено три диаграммы: диаграмма классов, диаграмма вариантов использования, диаграмма последовательности.
Диаграмма вариантов использования в UML-диаграмма, отражающая отношения между актёрами и прецедентами и являющаяся составной частью модели прецедентов, позволяющей описать систему на концептуальном уровне.
Прецедент – возможность моделируемой системы построить реальную копию события, благодаря которой пользователь может получить конкретный, визуальный результат.
Основное назначение диаграммы – описание функциональности и поведения, программы.
Рисунок 2.2– Диаграмма вариантов использования
Связь Generalization (обобщение) между прецедентами «Смена пользователя», «Выход» используется потому, что для прецедента «Панель Пользователя» и «Административная панель» не имеет значения,какое из возможных действий будет выполнено.
Связь Include(включение) объединяет прецеденты «Оценка», «Комментирование» и «Поиск» с прецедентом «Панель Пользователя»,так как Оценка», «Комментирование» и «Поиск» являются расширением прецедента «Панель Пользователя».
Связь Include(включение) объединяет прецеденты «Оценка», «Комментирование», «Поиск»«Удаление», «Редактирование данных»с прецедентом «Административная панель»,так как «Оценка», «Комментирование», «Поиск»«Удаление», «Редактирование данных»являются расширением прецедента «Административная панель».
В таблицах 2.1 и 2.2 описаны роли и прецеденты, используемые в диаграмме вариантов использования.
Таблица 2.1¬¬– Описание ролей
Актёр Краткое описание
Пользователь Пользователь, обладающий базовыми правами доступа
Администратор Пользователь, обладающий полными правами доступа
Гость Пользователь, обладающий ограниченными правами доступа
Таблица 2.2 – Описание прецедентов
Прецедент Краткое описание
Авторизация Предоставление прав для работы в системе
Панель Пользователя Вход под учетной записью пользователя, выход
Панель Администратора Вход под учетной записью администратора, выход
Смена пользователя Переход в окно авторизации с логином
Выход Переход на начальную страницу
Оценка Оценка статьи
Комментирование Комментарии либо поправки содержимого
Поиск Перезагрузка ПК
Редактирование данных Смена пользователя ПК
Удаление Запуск добавленных программ
Просмотр данных Пользователи и Гоисти могут просматривать любые данные
Просмотр - пользователь или администратор может просматривать любые данные на форуме. Это вариант использования выводит информацию на экран.
Оценка - пользователь или администратор может оценивать статьи в информационной системе. Это вариант использования оценивает статью.
Поиск - пользователь или администратор может искать информацию на форуме по имени или фрагменту текста статьи. Этот вариант использования ищет информацию по ключевым словам или фразам в ИС.
Редактирование данных - администратор форума может вносить изменения в данные, а именно в статьи и посты. Данный вариант использования вносит изменения в записи ИС через запросы с указанием id статьи и поста.
Удаление данных - администратор форума может удалять данные из информационной системы. Данный вариант использования удаляет данные с помощью запроса на удаление с указанием idстатьи и поста.
Авторизация - администратор и пользователь для работы в информационной системе производят авторизацию для получения прав на внесение или изменение информации. Данный вариант использования производит авторизацию пользователей по логину и паролю. После верификации данных вариант использования позволяет или не позволяет работать в системе.
Комментирование - пользователь и администратор могут комментировать те или иные данные на форуме. Данный вариант использования записывает в информационную базу текст для статьи в таблицу с комментариями.
2.4 Процесс инициализации форума
С помощью PhpMyadmin будет создана база данных с именем «infra-forum». Данные будут кодироваться стандартом «Windows 1251» - т.е. полная совместимость с русским языком. Далее будут созданы таблицы атрибутами на удаленном сервере с размещенным на нем SQL и Apache. Будет создана таблица «users» отвечающая за права для работы с базой данных. В эту таблицу будет занесен пользователь администратор для дальнейшего заполнения таблиц данными. Данная БД будет подключена к программному модулю для внесения данных и последующей модификации. После чего на сервере запускается консоль управления XAMMP, SQL и Apache.
2.5 Описание процесса авторизации
Для входа пользователь должен авторизироваться. Авторизация выполняется при введении логина и пароля в соответствующие поля формы авторизации. Для этого пользователь должен быть заранее зарегистрирован на форуме, если он не зарегистрирован он может вызвать форму регистрации и также заполнить все поля. После чего он сможет войти на форум используя личные данные для входа введя их в форму авторизации на сайте. Обычному пользователь не прошедшему авторизацию присваивается учетная запись Гость, в рамках которой можно просматривать описание разделов форума, тем и сообщений без возможности их цитирования, дополнения и редактирования.
2.6Описание базы данных
В UML диаграмма классов является одной из статических диаграмм. Посредством её описывается структура системы, отображаются классы, их атрибуты и операторы, а также взаимосвязи этих между ними. На этапе анализа при построении системы диаграммы классов используются, чтобы выделить общие роли и обязанности сущностей, обеспечивающих требуемое поведение системы. На этапе проектирования при построении системы диаграммы классов используются, чтобы передать структуру классов, формирующих архитектуру системы.
База данных «users» может быть использована для ведения учета пользователей, которые могут быть зарегистрированына форуме infra-forum. Просмотр, поиск сведений по базе данных осуществляется любым пользователем (посетителем, администрацией сайта) для получения подробной информации (название раздела, описание темы, дата создания темы, имя пользователя, количество просмотров, количество ответов и т.д.) о той или иной теме форума. Сотрудники администрации должны иметь возможность добавлять новые ветки разделов, темы форума и удалять старые.
База данных должна реализовывать следующие функции:
− вывод информации о разделах, темах, сообщениях, пользователях;
− поиск информации (например, по названию, типу, автору и т.д.);
− поиск пользователя (например, по логину, темам);
− поиск по разделам форума;
− удаление сообщений, тем, разделов;
− вывод списка всех разделов, тем;
− добавление новых разделов, тем, сообщений в базу данных;
− корректировка и дополнение данных.
Дополнительные требования к системе: должно быть явное разграничение прав на пользование данной системой посетителем форума: он не имеет прав на изменение (удаление, добавление) информации в базе данных.Схема данных информационной системы представлена на рисунке 2.3
Рисунок 2.3–Схема данных
Таблицаusers хранит в себе информацию о пользователях форума в которой отображены idпользователя, имя, фамилия, пароль в зашифрованном виде md5, пол пользователя, и дата его рождения.
Таблица themeхранит информацию о темах форума в которой отображены idпользователя, тип темы в которой пользователь хочет оставить сообщение, имя темы, дата создания и рейтинг темы.
Таблица sectionхранит информацию о разделах форума в которой отображены idпользователя, тип раздела в котором пользователь выберет тему для создания сообщения, имя раздела, дата создания раздела и соответственно рейтинг раздела.
Полеid связано с полем type отношением один ко многим так как один владелец канала может давать доступ к слежению нескольким пользователям.
Поле name связано с полями typeтаблицы theme отношением один ко многим, так как один пользователь может давать доступ к каналу для нескольких пользователей, а также являться подписчиком нескольких каналов.
2.7 Описание ключевых алгоритмов
Самым важным реализованным алгоритмом является
Реализация web-форума
Дипломная работа по предмету «Web-программирование»