Разработка автоматизированной системы создания динамических web-сайтов

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

РАЗРАБОТКА АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ СОЗДАНИЯ ДИНАМИЧЕСКИХ WEB-САЙТОВ

1. ВВЕДЕНИЕ

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

Для разработки данного приложения существуют несколько причин. Первая и главная — это отсутствие у обычного пользователя персонального компьютера необходимых знаний для создания своей собственной web-странички, доступной всем пользователям сети Internet. Эти знания обычно включают HTML (Hyper Text Markup Language), JavaScript — язык написания скриптов исполняемых на клиенте (браузере) и одной или нескольких технологий генерации содержимого на сервере. Передо мной стояла задача предоставить таким пользователям возможность создать, опубликовать, и, в дальнейшем, поддерживать собственный сайт. Вторая причина заключается в универсализации процесса создания web-сайта. Большинство существующих сайтов представлены в виде набора страниц определённых типов, колонки новостей, меню и логотипа. Отличаются такие сайты друг от друга лишь дизайном. Поэтому, структурировав данные параметры, можно избавить пользователя от необходимости расположения элементов дизайна на странице, предоставив ему возможность выбора из готовых вариантов дизайна. Всё, что остаётся пользователю — это только заполнить свой сайт содержимым, что также упрощает моя система.

Данный программный продукт может найти применение в организациях, предоставляющих хостинг (hosting-providers), на общедоступных web-серверах или в других возможных областях, связанных с предоставлением услуг пользователям Internet.

В процессе выполнения проекта мной проделаны следующие виды работ:

· Изучена новая предметная область;

· Найдены и рассмотрены существующие аналоги;

· Составлена спецификация требований к системе;

· Исследованы возможные способы реализации;

· Разработана объектная модель;

· Разработана модель данных;

· Разработан пользовательский интерфейс;

· Реализованы все функции системы;

· Сделан анализ проделанной работы.

2. ПОСТАНОВКА ЗАДАЧИ, ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

2.1. Постановка задачи

Основная задача системы предоставить своим пользователям возможность создать и, в дальнейшем, опубликовать свой собственный web сайт в Интернете, упростив процесс разработки. Для того чтобы создание web-сайта было простым для обычных пользователей, не имеющих опыта разработки, система должна скрыть сложные процессы, такие, например, как обращение к базе данных. В результате пользователь должен получить полноценный web-сайт, который он сможет редактировать и обновлять в режиме WYSIWYG (What You See Is What You Get), то есть на интуитивно понятном уровне. Пользователи без фактического знания web-дизайна могут получить полностью готовый web-сайт с современным дизайном и удобной навигацией в течение пяти-десяти минут.

2.2. Пользователи системы и их роли

В системе существует две группы пользователей: обычные пользователи (клиенты) и администраторы.

Обычные пользователи регистрируются в системе, тем самым получая доступ к основным инструментам создания сайта. При регистрации они указывают своё имя, адрес, электронный почтовый ящик и реквизиты для входа в систему. Для каждого клиента система предоставляет одинаковый функционал создания web-сайта. В диалоговом режиме определяются основные параметры сайта, такие как дизайн, расположение элементов меню, логотип, и так далее. На любом этапе создания сайта пользователь может посмотреть результаты своей работы, используя функцию предварительного просмотра.

Один сайт может содержать несколько страниц различных типов. Пользователи системы могут добавлять новые страницы, переупорядочивать страницы, редактировать содержимое и изменять тип страниц.

Набор типов страниц сайта предусмотрен заранее. В него входят:

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

· Текстовая страница. Содержит блоки форматируемого текста, включая различные ссылки, изображения, таблицы и списки.

· Ссылка на внешний ресурс.

· Гостевая книга. Позволяет посетителям сайта добавлять на страницу свои сообщения. Владельцу сайта (пользователю) предоставляется функционал управления списком сообщений, в том числе удаления сообщений.

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

· Фотоальбом. Позволяет пользователям выкладывать свои фотографии для просмотра посетителями. Предоставляет интерфейс для добавления, удаления, а также именования фотографий. Посетители на странице фотоальбома могут просмотреть все фотографии в виде списка из уменьшенных изображений (для уменьшения трафика) и каждую фотографию в отдельности в оригинальном размере.

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

Меню сайта генерируется автоматически, исходя из списка страниц. Расположение элементов меню обуславливается порядком страниц. Вид меню целиком и каждого из элементов меню в отдельности определяется дизайном, который пользователь выбрал для своего сайта.

Дизайн сайта клиент должен выбрать из набора готовых шаблонов, предусмотренных в системе. Варианты дизайна разбиваются по категориям. В каждой из категорий присутствует несколько шаблонов дизайна для web-сайта. В шаблонах уже определены расположение элементов меню, цвета и стили текста и основных элементов содержимого, различные изображения и логотип. В дизайне также могут быть предусмотрены несколько вариаций шаблона, отличающиеся цветовой схемой, основными изображениями или другими параметрами. Пользователь выбирает дизайн по своему вкусу, просматривая готовые изображения сайта с выбранным шаблоном и изменяя различные параметры шаблона.

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

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

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

· Просмотр списка клиентов. Возможность просмотра информации о клиентах в списке и по каждому клиенту в отдельности. Данная функция также включает возможность просмотра сайта каждого клиента.

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

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

2.3. Аналоги системы

У данной системы существует несколько аналогов. Все они сходны по структуре и организации, а также всех их объединяет сфера применения -Internet. Вот несколько из наиболее известных:

· Page Builder

· SW-Soft SiteBuilder

· Google Page Creator

· Online Website Builder

Основные отличия данной системы от вышеперечисленных таковы:

1. Данная система хранит все данные web-сайта в собственной базе данных, что позволяет создавать динамические страницы, то есть страницы, содержимое которых генерируется сервером. Это позволяет пользователям создавать такие страницы как гостевая книга, форма отправки данных или др.

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

3. Система многоязычна. На начальном этапе поддерживается два языка: английский и русский, но архитектура системы поддерживает расширение этого списка без внесения изменений в функциональность.

2.4. Выбранные программные средства

Для реализации системы выбраны следующие программные средства и технологии.

Web-сервер Apache: Данный web-сервер имеет огромное распространение в среде Unix и Windows, большинство Unix-серверов работают именно через Apache. По данным компании Netcraft общее число Web-узлов, работающих под его управлением, к концу 1998 г. достигло 2 млн. (55% общего числа узлов) и постоянно растет. Для сравнения: на долю серверов Microsoft приходится 25%, Netscape -7%. Будучи бесплатной открытой программой, предназначенной для бесплатных же Unix-систем (FreeBSD, Linux и др.), Apache по функциональным возможностям и надежности не уступает коммерческим серверам, а широкие возможности конфигурирования позволяют настроить его для работы практически с любой конкретной системой. Существуют локализации сервера для различных языков, в том числе и для русского.

Apache http-сервер легко конфигурируется и имеет множество настроек различного уровня для работы с серверным содержимым.

СУБД Cache: CACHE -- это постреляционная СУБД, уникальное качество которой заключается в равноправной и эффективной поддержке сразу трех способов работы с данными:

· Объектного;

· Реляционного, на основе SQL;

· Высокопроизводительного и гибкого многомерного метода доступа к данным.

Кроме того, CACHE обеспечивает быструю и эффективную разработку Web-приложений, поддержку механизма транзакций при работе с данными, легкую масштабируемость приложений, предъявляя, при этом, крайне скромные требования к аппаратным ресурсам, используемым системой и администрированию. CACHE поддерживает большинство платформ, используемых для создания промышленных приложений — от Windows, OpenVMS, Unix/Linux до Mac OS X. На ее основе разработаны различные системы, оперирующие как малыми, так и большими массивами данных (порядка нескольких терабайт), с которыми одновременно могут работать до 50 000 пользователей.

Cache Server Pages: Для разработки Web-приложений в Cache используется технология серверных страниц, т. е. создаются специальные страницы, которые заполняются данными немедленно («on-the-fly»), как только они запрашиваются браузером. Отличие серверных страниц Cache (Cache Server Pages) от других технологий разработки Web-приложений состоит в том, что они хранятся на сервере данных Cache, так сказать, рядом с используемыми данными. При обращении к CSP-странице выполняются методы, генерирующие HTML или XML. Чтобы подсоединиться к Web-серверу, используется стандарт API, обеспечивающий высокую скорость. Такая архитектура позволяет создавать высокопроизводительные Internet- или Intranet-приложения.

Если данная система будет установлена в среде Unix, то для полноценной функциональности требуется, чтобы на сервере были также установлены следующие программы:

· Sendmail: программа для отправки электронных писем;

· ImageMagick: набор программ для обработки цифровых изображений.

Таким образом, система предусмотрена для работы под управлением операционных систем Unix или Windows с установленным программным обеспечением, перечисленным выше. Для связки Apache + Cache Server Pages необходима дополнительная настройка, детали которой зависят от выбранной операционной системы. Все подробности описаны в документации, прилагаемой к СУБД Cache.

2.5. Проектирование системы

Предметом проектирования явилось ядро системы, отвечающее за общую функциональность. За основу я взял технологию CSP (Cache Server Pages), которая сама по себе позволяет довольно легко создавать страницы различной сложности. Большим минусом данной технологии является практическое отсутствие разделения так называемой бизнес логики от логики представления. Для каждой страницы, предоставляющей пользователю какую-либо информацию, должен быть создан отдельный файл, в котором смешены системные вызовы, обращение к данным и обработка этих самых данных для конечного представления пользователю. Созданные таким способом системы плохо адаптированы к возможным изменениям в дальнейшем, поэтому плохо расширяемы. Например, для того, чтобы изменить дизайн пользовательского интерфейса, дизайнеру понадобится перебрать много лишней информации, относящейся к функциональности и обработке данных, что неоспоримо лишнее и занимает больше времени.

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

В процессе проектирования использовались некоторые шаблоны объектно-ориентированного проектирования, такие как Команда (Command) и Model View Controller. Каждый из шаблонов будет описан ниже. Спроектированная мною архитектура является универсальной и легко может стать основой любой другой системы, работающей в тех же условиях и с тем же программным обеспечением.

Model View Controller: Шаблон MVC часто используется в Web-приложениях. Такой подход позволяет строить трехзвенные приложения и предоставляет необходимые уровни абстракции кода. Кроме того, MVC позволяет упростить взаимодействие дизайнеров и разработчиков, а также — упрощает сопровождение и обновление созданных приложений.

Обычно Представление (View) — это конечный результат работы приложения, который отсылается браузеру (например — код HTML). Говоря о представлении, многие подразумевают шаблонизатор (template engine), но такая ассоциация весьма спорна. Основная идея представления — оно должно существовать «само по себе». В процессе рендеринга (rendering) представления его элементы должны знать о своей роли в системе. Если для примера рассмотреть XML, то при обработке документа XML с помощью DOM API такое «знание» присутствует — узел в дереве DOM «знает», где он находится и что он содержит, в то время, как при обработке с помощью SAX узел ничего не знает до тех пор, пока обработчик не доберется до него.

Модель (Model) включает в себя логику работы приложения (в корпоративных приложениях обычно называется бизнес уровнем).
В общем случае модель занимается превращением исходных данных в данные, имеющие смысл, которые передаются в представление для последующего отображения. Часто модель содержит SQL-запросы, в некоторых случаях обладая преимуществом перед абстрактным классом БД.

Контроллер (Controller) обычно вызывается первым при получении HTTP запроса. Он обрабатывает запрос (GET, POST переменные, cookie и т. п.) и формирует соответствующий ответ.

Принцип шаблона Команда: Шаблон Команда (Command) включает в себя процесс выполнения одиночного действия (команды). Он отлично подходит для проектирования реакции системы на запрос пользователя и возвращение ему ответа (результата) в каком-либо виде. В процессе выполнения создаётся соответствующий объект класса Command и ему передаются параметры запроса. Запуск команды осуществляется методом Execute (выполнить) и результат работы команды возвращается в место вызова.

В результате проектирования были созданы следующие классы:

1. HttpResponse (ответ пользователю): Класс, содержащий ответ на пользовательский запрос, то есть представление. Наследуется от класса %CSP. Response, входящего в состав стандартных классов технологии CSP. Имеет дополнительный метод Evoke (вызов ответной реакции). Этот класс является базовым для различных классов ответа пользователю: XmlResponse, возвращающий пользователю XML, HtmlResponse, возвращающий пользователю HTML-страницу, RedirectResponse, перенаправляющий пользователя на другую команду и Template, являющийся основным классом для представления информации в виде HTML-шаблонов. Все эти классы переопределяют метод Evoke базового класса.

2. Command (команда): Этот класс является абстрактным и реализует один метод — Execute (выполнение), возвращающий объект HttpResponse. Он является базовым для всех классов команд, каждый из которых предназначен для обработки конкретного запроса пользователя.

3. Application (приложение): Класс приложения имеет функцию контроллера, принимая пользовательский запрос и возвращая результат его обработки. Этот класс имеет единственный метод Page, который извлекает из запроса название команды, которая должна обработать запрос, создаёт объект соответствующего класса и вызывает его метод Execute. Результат работы команды в виде объекта HttpResponse возвращается пользователю посредством вызова метода Evoke данного объекта. Этот класс также определяет основные параметры приложения, такие как кодировку символов, язык, время бездействия приложения, после которого будут уничтожены данные текущей сессии и т. д.

Роль модели в системе под управлением СУБД Cache играют специальные классы данных, вынесенные в отдельный пакет Model.

создание пакет класс web сайт

2.6. Реализация

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

Ядро системы было вынесено в отдельный пакет классов Core, который может быть повторно использован в дальнейшем для других приложений.

Структура основных пакетов и классов, созданных в приложении: Пакет Core содержит базовые классы ядра, а также пакет специальных классов- утилит, которые могут использоваться в различных приложениях на базе Core, такие как Image, Email, Localization и Matrix. Класс Core. Utils. Image служит для обработки изображений, закачке изображений на сервер, а также для создания уменьшенных изображений. Core. Utils. Email предназначен для отправки писем электронной почтой. Оба эти класса требуют установки соответствующего программного обеспечения. Класс Core. Utils. Localization упрощает процесс локализации приложения. Класс Core. Utils. Matrix используется для создания двумерных матриц из данных, представленных как векторы (списки, массивы).

Пакет SiteBuilder содержит все рабочие классы приложения. В него входят три пакета: пакет команд SiteBuilder. Commands, содержащий все классы, которые наследуются от класса Core. Command, пакет классов модели SiteBuilder. Model, содержащий классы данных, хранимые в БД и пакет SiteBuilder. Views, который содержит классы представления, наследуемые от Core. Template.

Основной класс приложения — класс SiteBuilder. Application. Он наследуется от класса Core. Application и переопределяет основные параметры приложения, такие как язык пользовательского интерфейса по умолчанию.

Пакет SiteBuilder. Views содержит четыре класса представления: AdminView — представление системы для администратора, ClientView — представление для клиента, вошедшего в систему, IndexView, отвечающий за вид системы для пользователя, не вошедшего в систему и VisitorView — представление созданного системой web-сайта для посетителя.

Пакет SiteBuilder. Commands содержит множество команд, отвечающих за различную функциональность в системе. Так как каждая команда способна обрабатывать определённый формат запроса и выдавать ответ пользователю, все команды разбиты на группы по функциональности. При реализации частично использовалась технология AJAX (Asynchronous JavaScript And XML) -- подход к построению пользовательских интерфейсов web приложений, при котором web-страница, не перезагружаясь, сама догружает нужные пользователю данные. В пакет SiteBuilder. Commands. Ajax вынесены все команды, использующие AJAX-запросы.

Пакет SiteBuilder. Model содержит классы, отвечающие за хранение и обработку данных. Все они подробно описаны в пункте 3. ОПИСАНИЕ БАЗЫ ДАННЫХ.

3. ОПИСАНИЕ БАЗЫ ДАННЫХ

В данной системе используется объектно-ориентированная база данных Cache, поэтому все сущности БД описываются в виде классов, их свойств и методов. В следующих пунктах подробно описываются классы, отвечающие за хранение и обработку данных на сервере. Все эти классы объединены в один пакет SiteBuilder. Model.

Классы данных, как и любые другие классы, могут наследоваться друг от друга и содержать ссылки на другие классы. Производные наследуют все хранимые в БД свойства и методы базового класса, и, поэтому, они могут выступать в качестве полноценных объектов как базового, так и производного классов одновременно. Схема наследования в данной системе приведена на рис. 3.1 и 3.2. Стрелками обозначено направление наследования, от производного класса к базовому.

Рис. 3.1 Схема наследования от класса Image

Рис. 3.2 Схема наследования от класса Page.

3.1. Класс Admin — администратор системы

Название

Вид

Тип данных

Назначение

Email

Свойство

%String

Электронный почтовый адрес

Login

Свойство

%String

Логин для входа в систему

Name

Свойство

%String

Ф.И.О.

Password

Свойство

%String

Пароль для входа в систему

Login ()

Метод

Загружает данные администратора по его логину и паролю

Login

Запрос

Осуществляет выборку из БД по логину и паролю

3.2. Класс Client — пользователь системы

Название

Вид

Тип данных

Назначение

Address

Свойство

%String

Адрес клиента

ConfirmationTime

Свойство

%TimeStamp

Время потверждения регистрации

Confirmed

Свойство

%Boolean

Флаг потверждения регистрации

Email

Свойство

%String

Электронный почтовый адрес

Login

Свойство

%String

Логин для входа в систему

Name

Свойство

%String

Ф.И.О.

Password

Свойство

%String

Пароль для входа в систему

Phone

Свойство

%String

Номер телефона

RegistrationTime

Свойство

%TimeStamp

Время регистрации

Sites

Отношение

Site

Сайты клиента (один)

%OnNew ()

Метод

Инициализация данных нового объекта (записи)

Login ()

Метод

Загружает данные клиента, используя логин и пароль

ByLogin ()

Метод

Возвращает пользователя по его логину

All ()

Метод

Возвращает всех пользователей системы

Confirm ()

Метод

Функция подтверждения регистрации

GetRegistrationTime ()

Метод

Возвращает время регистрации

GetConfirmationTime ()

Метод

Возвращает время подтверждения регистрации

GetSite ()

Метод

Возвращает сайт пользователя

Login

Запрос

Осуществляет выборку по логину и паролю

ByLogin

Запрос

Осуществляет выборку по логину

All

Запрос

Возвращает выборку всех записей

3.3. Класс CustomizableForm — форма с данными

Название

Вид

Тип данных

Назначение

Fields

Отношение

CustomizableFormField

Поля формы

Title

Свойство

%String

Заголовок

Process ()

Метод

Заполняет шаблон страницы данными

ProcessRequest ()

Метод

Посылает результаты заполнения формы на E-mail адрес клиента

3.4. Класс CustomizableFormField — поля формы с данными

Название

Вид

Тип данных

Назначение

Form

Отношение

CustomizableForm

Ссылка на форму

Mandatory

Свойство

%Boolean

Флаг для обязательного заполнения

Name

Свойство

%String

Название поля

Options

Свойство

%String

Опции (варианты)

Type

Свойство

%String

Тип поля

3.5. Класс ExternalLink — внешняя ссылка

Название

Вид

Тип данных

Назначение

Blank

Свойство

%String

Флаг открытия ссылки в новом окне

Href

Свойство

%String

URL ссылки

3.6. Класс GuestBook — гостевая книга

Название

Вид

Тип данных

Назначение

Header

Свойство

%String

Заголовок гостевой книги

Posts

Отношение

GuestBookPost

Сообщения

GetPosts ()

Метод

Возвращает все сообщения для гостевой книги, упорядоченные по времени

ProcessRequest ()

Метод

Обрабатывает запрос, добавляет новое сообщение

Process ()

Метод

Заполняет страницу гостевой книги данными

3.7. Класс GuestBookPost — сообщение гостевой книги

Название

Вид

Тип данных

Назначение

Comments

Свойство

%String

Текст сообщения

PostTime

Свойство

%TimeStamp

Время отправки сообщения

Email

Свойство

%String

E-mail адрес отправителя

GuestBook

Отношение

GuestBook

Ссылка на гостевую книгу

Href

Свойство

%String

URL web-сайта отправителя

Name

Свойство

%String

Ф.И.О. отправителя

New

Свойство

%Bolean

Флаг нового сообщения

%OnNew ()

Метод

Инициализирует новое сообщение

GetPostTime ()

Метод

Возвращает время отправки сообщения

3.8. Класс Image -изображение

Название

Вид

Тип данных

Назначение

Height

Свойство

%Integer

Высота изображения (в пикселях)

Name

Свойство

%String

Название

Source

Свойство

%String

Путь к файлу (относительный)

Width

Свойство

%Integer

Ширина изображения (в пикселях)

DeleteFile ()

Метод

Удаляет изображение из БД и из файловой системы

Upload ()

Метод

Закачивает изображение с клиента на сервер (через протокол HTTP)

GetSize ()

Метод

Определяет размер изображения

CreateThumbnail ()

Метод

Создаёт уменьшенную копию изображения

Resize ()

Метод

Пропорционально изменяет размер изображения

%OnDelete ()

Метод

Осуществляет физическое удаление файла изображения при удалении данных

3.9. Класс Logo — логотип сайта

Название

Вид

Тип данных

Назначение

Color

Свойство

TemplateColor

Цвет логотипа

Site

Отношение

Site

Ссылка на сайт

Default ()

Метод

Возвращает логотип по умолчанию

Current ()

Метод

Возвращает текущий логотип для сайта

ForSite ()

Метод

Возвращает либо текущий логотип, если он определён, либо логотип по умолчанию

3. 10. Класс NewsItem — новости

Название

Вид

Тип данных

Назначение

Content

Свойство

%String

Содержимое новости

CreateDate

Свойство

%Date

Дата создания

Description

Свойство

%String

Описание

Site

Отношение

Site

Ссылка на сайт

Title

Свойство

%String

Заголовок

%OnNew ()

Метод

Инициализирует новую запись

GetDate ()

Метод

Возвращает дату создания

3. 11. Класс Page — страница сайта

Название

Вид

Тип данных

Назначение

Name

Свойство

%String

Название страницы

Site

Отношение

Site

Ссылка на сайт

Weight

Свойство

%Integer

Порядковый номер

Type

Свойство

PageType

Тип страницы

Process ()

Метод

Абстрактный метод наполнения шаблона страницы данными

ProcessRequest ()

Метод

Абстрактный метод обработки запроса к странице

3. 12. Класс PageType — тип страницы

Название

Вид

Тип данных

Назначение

Name

Свойство

%String

Название типа

PageClass

Свойство

%String

Название соответствующего класса страницы

All ()

Метод

Возвращает список всех типов

All

Запрос

Осуществляет выборку всех типов из БД

3. 13. Класс Photo — фотография

Название

Вид

Тип данных

Назначение

CreateTime

Свойство

%TimeStamp

Дата создания фотографии

Description

Свойство

%String

Описание

PhotoAlbum

Отношение

PhotoAlbum

Ссылка на фотоальбом

Thumbnail

Свойство

Image

Изображение

%OnNew ()

Метод

Инициирует данные новой фотографии

GetCreateTime ()

Метод

Возвращает время создания фотографии

3. 14. Класс PhotoAlbum — фотоальбом

Название

Вид

Тип данных

Назначение

Footer

Свойство

%String

Нижний текст страницы фотоальбома

Header

Свойство

%String

Верхний текст страницы фотоальбома

Photos

Отношение

Photo

Фотографии

Process ()

Метод

Заполняет страницу фотоальбома данными

Delete ()

Метод

Удаляет фотоальбом и все фотографии

3. 15. Класс Publication — запрос на публикацию

Название

Вид

Тип данных

Назначение

Status

Свойство

%String

Статус запроса (в процессе, одобрен, отклонён)

Comments

Свойство

%String

Комментарии к запросу

CreationDate

Свойство

%TimeStamp

Дата и время запроса

ResponseDate

Свойство

%TimeStamp

Дата и время ответа

RespnoseComments

Свойство

%String

Комментарии к ответу

Site

Отношение

Site

Ссылка на сайт

%OnNew ()

Метод

Инициирует данные нового запроса

Approve ()

Метод

Метод для одобрения публикации

Deny ()

Метод

Метод для отклонения публикации

GetCreationDate ()

Метод

Возвращает дату запроса

GetResponseDate ()

Метод

Возвращает дату ответа

All ()

Метод

Возвращает список всех запросов на публикацию

All

Запрос

Производит выборку всех запросов на публикацию

3. 16. Класс Site — сайт

Название

Вид

Тип данных

Назначение

Owner

Отношение

Client

Ссылка на владельца сайта (клиента)

CreateDate

Свойство

%Date

Дата создания

ModifyDate

Свойство

%Date

Дата последней модификации

Complete

Свойство

%Boolean

Флаг готовности к публикации

Customization

Свойство

TemplateCustomization

Настройки шаблона

NewsItems

Отношение

NewsItem

Новости

Published

Свойство

%Boolean

Флаг публикации

Pages

Отношение

Page

Страницы

Publications

Отношение

Publication

Запросы на публикацию

Status

Свойство

%String

Статус (создан, в процессе публикации, опубликован, отклонён)

Title

Свойство

%String

Заголовок

%OnBeforeSave ()

Метод

Устанавливает дату модификации на текущую

%OnNew ()

Метод

Инициализирует данные нового сайта

GetCreateDate ()

Метод

Возвращает дату создания

GetModifyDate ()

Метод

Возвращает дату последней модификации

GetPages ()

Метод

Возвращает список страниц, сортированный по порядковым номерам

GetNews ()

Метод

Возвращает список новостей, сортированный по дате

Publish ()

Метод

Публикует сайт

GetLastPublication ()

Метод

Возвращает последний запрос на публикацию

Template

Отношение

Template

Ссылка на шаблон дизайна

3. 17. Класс Template — шаблон дизайна

Название

Вид

Тип данных

Назначение

Category

Отношение

TemplateCategory

Ссылка на объект категории дизайна

Colors

Отношение

TemplateColor

Цвета шаблона

Customizations

Отношение

TemplateCustomization

Возможные настройки шаблона

Name

Свойство

%String

Название

ImageSections

Отношение

TemplateImageSection

Секции изображений

Sites

Отношение

Site

Сайты с данным шаблоном дизайна

Thumbnail

Свойство

Image

Уменьшенное изображение шаблона

ByCategory ()

Метод

Возвращает все шаблоны в категории

All ()

Метод

Возвращает все шаблоны

ByCategory

Запрос

Осуществляет выборку шаблонов по категории

3. 18. Класс TemplateCategory — категория дизайна

Название

Вид

Тип данных

Назначение

Name

Свойство

%String

Название категории

Templates

Отношение

Template

Шаблоны в категории

All ()

Метод

Возвращает список всех категорий

All

Запрос

Производит выборку всех категории, сортируя по названию

3. 19. Класс TemplateColor — цвет шаблона

Название

Вид

Тип данных

Назначение

Images

Отношение

TemplateImage

Изображения в шаблоне, соответствующие данной цветовой схеме

Hex

Свойство

%String

Шестнадцатеричное представление цвета

Template

Отношение

Template

Ссылка на шаблон

3. 20. Класс TemplateCustomization — настройка шаблона

Название

Вид

Тип данных

Назначение

Params

Ссылка

TemplateCustomizationParam

Набор параметров настройки

Screenshot

Свойство

Image

Уменьшенное изображение шаблона с данной настройкой

Template

Ссылка

Template

Ссылка на шаблон

GetColor ()

Метод

Возвращает цвет, соответствующий настройке

GetImage ()

Метод

Возвращает изображение в шаблоне, соответствующее данной настройке

3. 21. Класс TemplateCustomizationParam — параметры настройки

Название

Вид

Тип данных

Назначение

Customization

Отношение

TemplateCustomization

Ссылка на объект настройки

KeyId

Свойство

%Integer

Идентификатор секции изображений либо 0 для параметра цвета.

ValueId

Свойство

%Integer

Идентификатор соответствующего изображения либо цвета

3. 22. Класс TemplateImage — изображения в шаблоне

Название

Вид

Тип данных

Назначение

Color

Отношение

TemplateColor

Ссылка на цвет изображения

ImageSection

Отношение

TemplateImageSection

Ссылка на секцию изображений

3. 23. Класс TemplateImageSection — секция изображений шаблона

Название

Вид

Тип данных

Назначение

Images

Отношение

TemplateImage

Изображения из данной секции

Name

Свойство

%String

Название секции

Template

Отношение

Template

Ссылка на шаблон

GetImages ()

Метод

Возвращает список изображений из данной секции по цвету

3. 24. Класс TextPage — текстовая страница

Название

Вид

Тип данных

Назначение

Text

Свойство

%String

Текст страницы

Process ()

Метод

Заполняет содержимое текстовой страницы

3. 25. Класс WelcomePage — главная страница

Название

Вид

Тип данных

Назначение

Footer

Свойство

%String

Верхняя часть страницы

Header

Свойство

%String

Нижняя часть страницы

Process ()

Метод

Заполняет главную страницу содержимым

4. СХЕМА ФУНКЦИОНИРОВАНИЯ

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

Рис 4.1. Схема функционирования системы для пользователя.

5. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

5.1. О данном руководстве

Данное руководство включает подробную информацию о возможных действиях, которые могут быть произведены в автоматизированной системе создания web-сайтов. Большинство пунктов руководства служат для подробного описания способов решения конкретных задач с помощью данной системы. Оно также описывает основные шаги, которые должен пройти пользователь системы для того, чтобы создать собственный web-сайт:

1. Создание дизайна для сайта;

2. Создание и изменение структуры сайта;

3. Создание и изменение содержимого страниц;

4. Публикация web-сайта для посетителей.

В отдельный пункт вынесено руководство для администратора, описывающее основные виды деятельности администратора в процессе управления данной системой.

5.2. Основные этапы создания web-сайта

Как правило, процесс создания web-сайта включает три основных этапа: планирование, реализацию и поддержку (обновление).

Планирование: Первый и основной этап в любом проекте. Прежде чем приступить к работе с системой, подумайте, для какой цели Вы хотите создать сайт и каких посетителей он должен иметь. Затем Вам необходимо создать детальную структуру Вашего web-сайта и его страниц и подготовить его содержимое, включая текст, информацию и изображения. Этап планирования чрезвычайно важен, так как в итоге он определяет дальнейшую пригодность и функциональность Вашего сайта.

Реализация: Следующий этап это реализация Вашего сайта. Пять шагов Мастера создания сайта (Site Wizard) проведут Вас через внутреннюю процедуру создания web-сайта, от выбора заголовка сайта до получения готового дизайна. Основные шаги, необходимые для создания web-сайта:

1. Чтобы получить доступ к инструментам создания сайта, Вам необходимо войти в систему, используя Ваш логин и пароль, указанные при регистрации. При первом входе в систему запустится Мастер создания сайта, с помощью которого Вам предстоит указать основные параметры Вашего сайта.

2. Пройдите первые четыре этапа Мастера создания сайта (укажите заголовок Вашего сайта, выберите дизайн и определите основные параметры дизайна — его цвет и изображения, входящие в состав дизайна).

3. После завершения Мастера, Вам останется создать структуру сайта добавить страницы в список страниц, указать их название и тип и отредактировать каждую из них. Для вариантов дизайна, включающих колонку новостей или логотип, Вы сможете настроить данные параметры через соответствующие пункты меню на этапе «Управление страницами».

4. После того, как все шаги пройдены, и Вы готовы опубликовать Ваш web-сайт для того, чтобы он был виден для всех остальных пользователей сети Internet, Вы сможете это сделать через соответствующий пункт «Публикация» верхнего меню. Ваш сайт будет опубликован после того, как администратор системы одобрит Ваш запрос на публикацию.

Поддержка: Когда Вы завершите все шаги, перечисленные выше, Ваш сайт станет доступным для посетителей. На этом этапе важно поддерживать содержимое Вашего web-сайта свежим, потому что это отличный способ показать Ваше отношение к заказчикам и/или другим посетителям Вашего сайта. Поэтому всегда удостоверяйтесь в том, что содержимое Вашего сайта соответствует реальному положению дел, и вовремя обновляйте содержимое. В данной системе это легко сделать, достаточно лишь войти в систему и отредактировать нужные страницы или добавить новости в колонке новостей. Все изменения сразу же будут видны посетителям Вашего сайта.

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

5.3. Начало работы над созданием web-сайта

В начале работы над созданием своего web-сайта, Вам необходимо пройти основные шаги Мастера создания сайта.

Шаг первый: Заголовок сайта. На этом шаге Вам необходимо указать заголовок для Вашего сайта, который будет выводиться в окне браузера (рис. 5. 1).

Рис. 5.1 Первый шаг Мастера создания сайта

Для продолжения введите свой заголовок и нажмите кнопку «Далее».

Шаг второй: Выбор категории дизайна. Для удобства, все шаблоны дизайна распределены по категориям (рис. 5. 2). Каждая из них содержит различное количество шаблонов дизайна.

Рис. 5.2 Выбор категории дизайна

На любом из этапов Мастера создания сайта вы можете вернуться назад, нажав соответствующую кнопку. Выберите нужную Вам категорию дизайна для перехода на следующий этап мастера. Вы также можете выбрать общую категорию, которая содержит все шаблоны дизайна, которые есть в данной системе.

Шаг третий: Выбор шаблона дизайна. В системе предусмотрены несколько готовых шаблонов дизайна для вашего сайта. Шаблон включает в себя оформление текста, таблиц, ссылок, рисунков, списков и других элементов страниц, а также их цвет, размер и расположение. Каждый шаблон может содержать несколько цветовых схем и различных изображений. На рис. 5.3 показаны шаблоны из категории дизайна «Автомобили», на данный момент эта категория содержит всего один шаблон. Выберите подходящий шаблон для своего web-сайта и переходите на следующий этап мастера.

Рис. 5.3 Выбор шаблона дизайна

Шаг четвёртый: Определение параметров шаблона. Каждый шаблон может включать в себя несколько вариаций цветовых схем и рисунков. На данном шаге мастера Вам предстоит выбрать подходящие параметры для Вашего дизайна. Для просмотра дизайна с выбранными параметрами внизу для Вас расположено изображение сайта с выбранным дизайном. Примерно так должен выглядеть Ваш web-сайт после того, как вы закончите мастер создания сайта. При изменении параметров шаблона изображение тоже поменяется (рис. 5. 4). Нажмите кнопку «Далее» для предварительного просмотра Вашего сайта.

Рис. 5.4 Определение параметров шаблона дизайна

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

Вы сможете заново пройти все шаги Мастера создания сайта в любое время. Для этого необходимо выбрать пункт «Мастер сайта» верхнего меню приложения.

5.4. Управление страницами

После того, как Вы задали основные параметры Вашего сайта такие как заголовок, дизайн и цвет, Вам предстоит наполнить Ваш сайт содержимым. Для этого Вам необходимо добавить несколько страниц и отредактировать их содержимое. В списке страниц отображается информация о названии страницы, её типе и порядке, в котором страницы расположены. Для добавления новой страницы введите её название в пустое поле в конце списка, выберите её тип из списка и нажмите кнопку «Сохранить». Страница добавится к Вашему списку и появится поле для ввода данных новой страницы, как показано на рис. 5.5.

Рис. 5.5 Управление страницами

Вы сможете изменять и редактировать название и тип созданных страниц прямо в списке. Для редактирования названия страниц просто установите курсор в необходимую позицию. После внесения изменений, нажмите кнопку «Сохранить» для их сохранения или кнопку «Сбросить» для отмены всех внесённых в список изменений.

Список готовых типов страниц содержит все возможные типы страниц, которые есть в системе. В него входят:

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

· Текстовая страница. Содержит блоки форматируемого текста, включая различные ссылки, изображения, таблицы и списки.

· Ссылка на внешний ресурс.

· Гостевая книга. Позволяет посетителям сайта добавлять на страницу свои сообщения. Владельцу сайта (пользователю) предоставляется функционал управления списком сообщений, в том числе удаления сообщений.

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

· Фотоальбом. Позволяет пользователям выкладывать свои фотографии для просмотра посетителями. Предоставляет интерфейс для добавления, удаления, а также именования фотографий. Посетители на странице фотоальбома могут просмотреть все фотографии в виде списка из уменьшенных изображений (для уменьшения трафика) и каждую фотографию в отдельности в оригинальном размере.

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

Внимание: Все изменения, связанные с удалением страниц, не могут быть отменены.

Для изменения положения страницы в списке нажмите кнопку или. Расположение страниц учитывается для соответствующего расположения элементов меню, которое будет на Вашем сайте.

Заполните список страниц в соответствие с Вашим проектом структуры сайта, после чего Вам предстоит отредактировать каждую из них.

5.5. Управление логотипом

Некоторые из шаблонов дизайна могут включать в себя изображение логотипа. Вы можете изменить логотип по умолчанию для Вашего шаблона через соответствующий пункт меню «Управление страницами» -> «Логотип для сайта». Страница настройки логотипа показана на рис. 5.6. Сохраните изображение логотипа по умолчанию у себя на компьютере, после чего Вы сможете изменить его в любом графическом редакторе. Когда Ваш логотип будет готов, скопируйте его на сервер, используя соответствующий интерфейс внизу страницы: «добавить/заменить логотип».

Рис. 5.6 Настройка логотипа

В результате логотип по умолчанию будет заменён, в чём Вы сможете убедиться, выбрав пункт «Предпросмотр» верхнего меню. Чтобы удалить Ваш логотип и вернуть логотип по умолчанию, нажмите кнопку «Удалить» на странице настройки логотипа.

5.6. Колонка новостей

Различные шаблоны дизайна также могут иметь обновляемую колонку новостей. Вы можете редактировать список новостей на сайте, обновлять или добавлять новости, а также удалять устаревшие, используя пункт меню «Управление страницами» -> «Колонка новостей». Каждая новость может содержать заголовок, краткое описание и подробный текст. Чтобы добавить новость, нажмите кнопку «Добавить» на странице «Колонка новостей». Введите заголовок для новости и краткое описание. Подробный текст Вы можете редактировать внизу страницы, используя соответствующий html-редактор (см. рис 5. 7). Нажмите кнопку «Добавить» для того, чтобы новость появилась в колонку новостей Вашего сайта. После того, как новости будут добавлены в список, Вы можете заново редактировать либо удалять новости, нажав кнопку либо соответственно, напротив в колонке новостей.

Рис. 5.7 Редактор новостей

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

5.7. Публикация

Для того чтобы созданный Вами web-сайт был доступен другим пользователям сети Internet, Вам необходимо опубликовать его. Сделать это можно через соответствующий пункт верхнего меню «Публикация». Выбрав этот пункт, Вы попадаете на страницу публикации web-сайта, на которой Вам представится возможность ввести комментарии к своей публикации, которые будут прочитаны администратором системы перед тем, как одобрить или отклонить Ваш запрос. Администратор следит за тем, чтобы на Вашем сайте не было никакой недопустимой информации, такой, например, как порнография. Он вправе отклонить запрос на публикацию, посчитав, что содержимое Вашего сайта не соответствует этим требованиям. В любом случае, Вам будет отослано электронное письмо с подробным обоснованием решения. Для отправки запроса на публикацию, Вы можете набрать комментарии и нажать кнопку «Опубликовать». Страница публикации показана на рис. 5.8.

Рис. 5.8 Публикация web-сайта

5.8. Руководство администратора

Администратор системы должен контролировать деятельность пользователей, одобрять либо отклонять запросы на публикацию web-сайтов под доменом данной системы, тем самым предотвращая возможность появления нежелательной информации. Под «нежелательной информацией» следует понимать любую информацию, которая не должна быть представлена в пределах данного домена. Допустимость той или иной информации определяет владелец, либо администратор системы.

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

Отдельным списком идёт список публикаций, в котором можно просмотреть все одобренные, отклонённые и находящиеся в процессе публикации web-сайты.

Также каждый администратор должен заполнить свои личные данные в системе, которые будут предоставлены пользователям для связи в случае системных поломок либо при возникновении каких-либо вопросов, касающихся администрирования. Эти данные будут видны только зарегистрированным пользователям.

6. ЗАКЛЮЧЕНИЕ

В результате проделанной мною работы система была полностью спроектирована и реализована в соответствии с поставленной задачей. Были выявлены особенности системы, отличия от других подобных систем и возможные точки роста, такие как:

· Расширение списка встроенных типов страниц для сайта;

· Расширение списка поддерживаемых языков пользовательского интерфейса;

· Изменение дизайна пользовательского интерфейса системы;

· Добавление новых шаблонов дизайна для web-сайтов пользователей;

· Добавление новых категорий дизайна для пользователей.

Объём разработанного программного средства в количестве реализованных классов составляет примерно 100 единиц, учитывая вспомогательные и системные классы, а также классы команд приложения.

Данная автоматизированная система предназначена для применения в организациях, предоставляющих Internet-хостинг (hosting-providers) либо в других организациях, предоставляющих услуги пользователям сети Internet.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1. Design Patterns, Elements of Reusable Object-Oriented Software / Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.

ПоказатьСвернуть
Заполнить форму текущей работой