Разработка сайта компании ГИК



содержание

ВВЕДЕНИЕ

6

1АНАЛИЗ СУЩЕСТВЮЩИХ ПРОГРАММНЫХ РЕШЕНИЙ

8

  1. Написание собственного ядра сайта

8

  1. Использование готовой системы управления сайтом

12

  1. Система управлением контентом Joomla!

16

  1. Система управлением контентом Drupal

20

  1. Система управлением контентом Typo3

23

  1. Система управлением контентом 1С-Битрикс

25

  1. Система управлением контентом MODx

28

  1. РАЗРАБОТКА АРХИТЕКТУРЫ САЙТА

32

  1. Структура главной станицы

35

  1. Структура страницы «Услуги»

40

  1. Структура страницы «Компания»

42

  1. Структура страницы «Портфолио»

44

  1. Структура страницы «События»

45

  1. Структура страницы «Контакты»

46

  1. Адаптивный веб-дизайн

47

  1. РАЗРАБОТКА СТРУКТУР ДАННЫХ

50

  1. Работа с таблицами в CMS MODx

50

  1. Описание основных таблиц

51

  1. Разработка и реализация программных модулей

53

  1. Экспериментальное тестирование и отладка

56

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

59

  1. Основные элементы CMS MODx

59

  1. Создание раздела

61

  1. Создание подраздела

62

  1. Управление фотогалереей

62

  1. Оценка качества продукта

63

  1. Определение состава работ

63

  1. Определение трудоёмкости разработки

63

  1. Оценка качества проекта

65

ЗАКЛЮЧЕНИЕ

71

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

72

Введение

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

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

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

Разработка сайта – это комплекс работ, состоящий из дизайна, оптимизации, программирования, создания контента, наполнения, тестирования, запуска и продвижения.

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

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

Цель дипломной работы – разработка сайта компании «ГИК».

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

  1. Проанализировать существующие программные решения;
  2. Разработать архитектуру сайта;
  3. Разработать структуру данных и необходимые программные модули;
  4. Провести экспериментальное тестирование и отладку;
  5. Внедрить административное редактирование сайта;
  6. Дать конечную оценку качества продукта

Объект дипломной работы – сайт.

Предмет курсовой работы –разработка сайта для компании «ГИК».

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

Компания «ГИК» взяла на себя миссию – рассказать людям о современных способах ведения бизнеса и с 2011 года успешно ведет работу по ее выполнению. Тогда она представляла собой небольшую веб-студию, которая занималась разработкой сайтов. Со временем увеличилось число клиентов, и расширился спектр предлагаемых услуг. Штаб сотрудников стал больше, изменилась и рабочая площадь. Сегодня «Гик» – это серьезная компания, одна из лидирующих по Вологодской области, партнер крупных интернет-порталов, предоставляющих услуги комплексного интернет-маркетинга.

Основа любой компании – это ее коллектив. Сотрудники компании «ГИК» – это молодые специалисты, посвятившие себя сложной сфере IT-технологий. Вы можете видеть лишь результаты их кропотливой работы – отличные сайты, прекрасно оформленные, полноценно работающие, с богатым функционалом. Однако за каждым таким продуктом стоит большой коллектив работников студии, которые потратили уйму рабочего и нерабочего времени, чтобы сайт стал таким, каким все его видят сегодня. В настоящий момент в компании трудятся 18 человек – представители разных направлений: отдела продаж, отдела разработки, отдела по работе с клиентами. Все они, по отдельным частям, собирают одну большую картину – Ваш сайт.

1 анализ существующих программных решений

При создании сайта возникает проблема выбора способа его программирования.

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

Программирование сайтов может осуществляется на множестве языков, но в данной работе преимущественно используется программный код на языке общего назначения, интенсивно применяемый для разработки веб-приложений – PHP. При создании сайта можно выбрать 2 пути разработки:

- Написание собственного ядра сайта

- Использование готовой системы управления сайтом (CMS)

1.1 Написание собственного ядра сайта

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

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

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

Создание собственного ядра сайта включает в себя несколько важных этапов:

  1. Вёрстка основных страниц сайта.

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

  1. Создание всех таблицы для базы данных.

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

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

Например, класс по работе с базой данных, класс по управлению пользователями, класс по управлению статьями, класс для создания журнала действий пользователей и так далее. Нужно обратить внимание на то, что один класс не должен реализовывать задачи, которые по смыслу относятся к другим. Например, не надо соединяться с базой данных в классе пользователя. А надо создать объект базы данных в классе пользователя и им манипулировать. В каждом классе нужно должны написать все методы, которые в дальнейшем потребуются. Например, метод получения логина пользователя по его id или метод изменения e-mail пользователя и так далее. Также потребуется создать глобальный абстрактный класс, в котором будут содержаться методы, общие для всех других. Например, очень полезный метод – это получения значения некоего поля, по известному имени и значению другого поля. Например, по известному e-mail пользователя нужно узнать его логин. Такой метод легко данную задачу решит.

  1. Создание шаблонной страницы сайта.

Следует разбить шаблон на составные логические части – подходящая часть готового шаблона (например, форма авторизации, часть, где выводятся статьи, меню, шапка, подвал и другие) вырезается и из этих частей создаются отдельные блоки или шаблоны с соответствующими вырезанными частями. В результате, появится большое количество отдельных блоков шаблонов, которые могут представлять собой отдельные файлы или же записи в базе данных. В этих блоках-шаблонах помечаются места, в которые следует встроить нужное модули или элементы шаблона. Например, там, где должно быть имя пользователя используется {username}. Там, где должен быть заголовок статьи, используется {article_title}. Аналогичным образом помечаются все нужные элементы в получившихся блоках.

  1. Создание класса шаблонизатора.

В задачу этого класса будет входить работа с основными другими классами (например, классом пользователей), а также подстановка соответствующих данных в файлы-шаблоны вместо помеченных элементов. Например, вместо {username} этот класс должен будет подставить имя пользователя. Разумеется, здесь будет очень много методов, каждый из которых выполняет свою функцию.

  1. Вывод html кода получившегося на основе получившихся шаблонов.

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

  1. Финальное оформление сайта – создание уникального дизайна.

Требуется исправить получившиеся модули-шаблоны для соответствия требованиям, добавить CSS-файлы и JavaScript. Функциональность сайта, которая была создана на предыдущих шагах, трогать не требуется [1].

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

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

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

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

1.2 Использование готовой системы управления сайтом

Система управления содержимым (контентом) (англ. Content management system, CMS) – информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления контентом (то есть содержимым).

Основные функции CMS:

  1. Предоставление инструментов для создания содержимого, организация совместной работы над содержимым.
  2. Управление содержимым: хранение, контроль версий, соблюдение режима доступа, управление потоком документов и т. п.
  3. Публикация содержимого.
  4. Представление информации в виде, удобном для навигации, поиска.

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

В общем случае системы управления содержимым делятся на:

- Систему управления содержимым масштаба предприятия (англ.Enterprise Content Management System).

- Система управления веб-содержимым (англ.Web Content Management System).

В силу того, чтоECMS имеют глубокую внутреннюю классификацию по предметным областям (HRM, DMS, CRM, ERP и т. д.), термин CMS заместил собой WCMS, превратившись в синоним системы управления сайтами. Подобные CMS позволяют управлять текстовым и графическим наполнением вебсайта, предоставляя пользователю интерфейс для работы с содержимым сайта, удобные инструменты хранения и публикации информации, автоматизируя процессы размещения информации в базах данных и её выдачи в HTML.

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

  1. Генерация страниц по запросу.

Системы такого типа работают на основе связки «Модуль редактирования → База данных → Модуль представления». Модуль представления генерирует страницу с содержанием при запросе на него, на основе информации из базы данных. Информация в базе данных изменяется с помощью модуля редактирования. Страницы заново создаются сервером при каждом запросе, что в свою очередь создаёт дополнительную нагрузку на системные ресурсы. Нагрузка может быть многократно снижена при использовании средств кэширования, которые имеются в современных веб-серверах.

  1. Генерация страниц при редактировании.

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

  1. Смешанный тип.

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

Система управления — программа, предоставляющая инструменты для добавления, редактирования, удаления информации на сайте.

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

Сайты, организованные посредством системы управления контентом, основаны на следующих технологиях: веб-сервер, хранилище данных (зачастую СУБД, например, такие как MySQL или PostgreSQL, однако существуют и noSQL CMS), веб-приложение для обеспечения работы самой системы, визуальный (WYSIWYG) редактор страниц, файловый менеджер с веб-интерфейсом для управления файлами сайта, система управления правами пользователей и редакторов сайта.

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

Наиболее распространены следующие технологические платформы, используемые в качестве основы веб-приложения, реализующего работу CMS: PHP, Perl, .NET.

Существует термин контент-менеджер, обозначающий род профессиональной деятельности — редактор сайта или сотрудника, работающего с CMS.

Большая часть современных систем управления содержимым реализуется в виде визуального (WYSIWYG) редактора — программы, которая создаёт HTML-код из специальной упрощённой разметки, позволяющей пользователю проще форматировать текст [1].

Можно выделить несколько преимуществ готовых систем управления контентом:

- в работе используется наиболее эффективный инструмент для решения конкретной задачи (в зависимости от вида сайта и требований к его функционалу подбирают оптимальную CMS);

- использование CMS позволяет владельцу сайта самостоятельно создавать и удалять разделы сайта, редактировать различную информацию без привлечения стороннего специалиста – это одно из преимуществ над статическими сайтами;

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

- временные затраты на разработку сайта существенно снижаются, так как разработчику не надо фиксировать своё внимание на чисто технических задачах: «как сделать ленту с новостями» или «как научить CMS искать товары в каталоге», а можно сосредоточиться на информационной и визуальной составляющих будущего сайта;

Можно условно разделить CMS по выполняемому функционалу. Некоторые системы ориентированы только на решение конкретных задач (ведение блогов, интернет магазины, форумы), другие являются универсальными и предоставляют разработчиком удобную среду проектирования и программирования для разработки чего угодно. Часть CMS состоять из множества функциональных блоков и модулей, другие монолитны, неделимы, да ещё и зашифрованы. Одни системы поставляются бесплатно и с возможностью внесения своих доработок, а некоторые предоставляются за деньги и не допускают возможность редактирования ядра движка.

В данной области можно выделить несколько лидеров:

Joomla! – яркая, современная, постоянно обновляющаяся, достаточно простая в разработке и использовании, предоставляется совершенно бесплатно;

Drupal – это полноценная функциональная среда для разработки и создания всевозможных сайтов, которая предоставляется так же бесплатно и имеет гибкие возможности;

MODx – достаточно современная разработка, которая в последнее время уверенно набирает обороты и увеличивает свою аудиторию поклонников. К тому же она является чрезвычайно гибкой и эффективной, при этом поставляется безвозмездно, но и порог вхождения в число разработчиков на этой CMS несколько выше, чем у других систем;

1C-Битрикс– очень большая по объёму разработка от компании 1С, в которой можно найти различные редакции от простой, до портальной, при этом стоимость её значительно отличается от версии к версии.

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

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

1.3 Система управлением контентом Joomla!

Joomla! (произносится джумла) – система управления содержимым, написанная на языках PHP и JavaScript, использующая в качестве хранилища базы данных СУБД MySQL или другие индустриально-стандартные реляционные СУБД. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL [2].

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

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

Основные возможности CMS Joomla!:

  1. Функциональность можно увеличивать с помощью дополнительных расширений (компонентов, модулей и плагинов).
  2. Имеется модуль безопасности для многоуровневой аутентификации пользователей и администраторов (используется собственный алгоритм аутентификации и «ведения» сессий).
  3. Система шаблонов позволяет легко изменять внешний вид сайта: расположение модулей, шрифты и другое. Можно предоставить пользователям выбирать одно из нескольких отображений. В сети существует огромный выбор готовых шаблонов, как платных, так и бесплатных. Также существует программное обеспечение для самостоятельного создания оригинальных шаблонов.
  4. Предусмотрены настраиваемые схемы расположения модулей, включая левый, правый, центральный и любое другое произвольное положения блока. При желании содержимое модуля можно включить в содержимое материала. Например, выражение {loadposition mod_fpslideshow}, введенное (вместе с фигурными скобками) в произвольное место в статье, выведет содержимое модуля, которому задана позиция вывода как «mod_fpslideshow».
  5. К преимуществам системы можно отнести то, что все компоненты, модули, плагины и шаблоны можно написать самому, разместить их в структурированном каталоге расширений или отредактировать существующее расширение по своему усмотрению.
  6. Происходит регулярный выход обновлений. Существует публичный «багтрекер» (система отслеживания ошибок). Существуют также трекеры миграции со старых версий Joomla, трекер пожеланий расширения функционала и так далее, где пользователи Joomla могут оставлять замечания по поводу работы CMS, которые впоследствии изучаются её разработчиками, при необходимости включающими в очередное обновление Joomla исправления, решающие те или иные проблемы.
  7. Многоязычность.

Начиная с версии 2.5 расширена поддержка баз данных. Реализована поддержка Microsoft SQL Server, в версии 3.0 — PostgreSQL. В настоящее время действует версия 3.5.

Joomla! имеет простую для понимания панель администрирования, которая включает следующие возможности: