Файл: Разработка промо сайта «Галактика».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 18.05.2023

Просмотров: 431

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. Техническое задание и выбор средств реализации.=

1.1. Техническое задание

1.2. Выбор средств реализации

2. Описание модулей серверной части программы и их взаимодействие.

2.1. Описание пользовательской части

2.1.1. Структура пользовательской части промо-сайта

2.1.2. Основные программные модули

2.2. Описание административной части

2.2.1. Структура административной части промо-сайта

2.1.2. Основные программные модули

3. Описание структуры базы данных и ее функций

3.1. Описание структуры базы данных

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

4. Описание структуры клиентской части

4.1. Описание интерфейса «Обычный пользователь»

4.2 Описание интерфейса «Администратор»

4.3. Инструкция пользователя

4.3.1. Инструкция простого пользователя

4.3.2. Инструкция администратора

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЯ

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

Основные положения теоретической части проекта:

  • Был проведен анализ исходных данных и разработка технического задания;
  • Было произведён выбор программного обеспечения;

Основные положения практической части проекта:

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

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

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

Итак, перед разработчиком была поставлена цель: создание сайта торговой компании «Галактика». Гипотеза о том, что данная тема исследования важна и необходима, была подтверждена аналитически и реализован проект согласно этой гипотезе практически.

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

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

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

Общая концепция сайта

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

Дизайн

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


Набор веб–разработчика и локальный сервер

Для реализации проекта использован локальный сервер «Openserver».

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

Другими словами, openserver позволяет полностью эмулировать работу сайта на локальном компьютере, что существенно упрощает разработку и реализацию проекта [4].

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

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

В целом, проект успешно реализован и полностью работоспособен.

СПИСОК ЛИТЕРАТУРЫ

1. Ipipe.ru Установка OpenServer. [Электронный ресурс] // iPipe.ru. - https://www.ipipe.ru/info/ustanovka-openserver.html

2. HTML5BOOK.RU Адаптивная верстка сайта [Электронный ресурс] // HTML5BOOK.RU. - https://html5book.ru/adaptivnaya-vyorstka-sayta.

3. WebReference Уроки по HTML и CSS [Электронный ресурс] // WebReference. - https://webref.ru/layout/learn-html-css.

4. Open Server — профессиональный инструмент веб-разработчика под Windows [Электронный ресурс] // Википедия. - https://habr.com/ru/post/137388

5. PHP, SQL [Электронный ресурс] / блог. - Россия, 2010.: http://phpsql.ru/.

6. PHPForum [Электронный ресурс] /форум.- Россия, 2003. - Режим доступа: http://phpforum.ru. - Дата доступа: 09.02.2012.

7. Богданов, М.Р. Перспективные языки веб-разработки / М.Р. Богданов. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016

8. Википедия Bootstrap_(Фреймворк) [Электронный ресурс] https://ru.wikipedia.org/wiki/Bootstrap_(Фреймворк)

9. Гущин А.Н. Базы данных: учебник. - М.: Директ-Медиа, 2014. - 266с

10. Мазуркевич, А. PHP: настольная книга программиста / А. Мазуркевич. - М.: Новое знание, 2003. - 480 с.

11. Макфарланд Д. Большая книга CSS. 3-е изд. [Текст]. - СПб : Питер, 2014. - 608 стр.

12. Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.

13. Никсон, Р. Создаем динамические web-сайты с помощью PHP, MySQL и JavaScript / Р. Никсон. - П.: Питер, 2011. - 496 с.

14. Парк, Д. PHP и MySQL. Библия программиста / Д. Парк, С. Суэринг. - Диалектика, 2010. - 912 с.

15. Прохоренок, Н. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера / Н. Прохоренок. - СПб.: БХВ - Петербург., 2010. - 900 с.

16. Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016


17. Томсон, Л. Разработка Web-приложений на РНР и MySQL/ Л. Томсон. - М.: ДиаСофтЮП, 2003. - 672 с.

18. Филиппов, С.А. Основы современного веб-программирования [Электронный ресурс].— М. : НИЯУ МИФИ, 2011 .— 160 с.

19. Фримен Эрик и Робсон Элизабет Изучаем HTML, XHTML [Текст]. - СПб : Питер, 2014. – 720 стр.

20. Харрис, Э. PHP/MySQL для начинающих / Э. Харрис. - М.: Кудиц - образ, 2005.

ПРИЛОЖЕНИЯ

Приложение А

Листинг программного файла Category.php

<?php

// Вывод всех записей в панель

function index(){

?>

<script>

function confirmSpelll() {

if (confirm("Вы действительно хотите удалить этот элемент?")) return true;

else return false;

}

</script>

<h1>Категории</h1>

<center><a href='?table=category&action=insertform'>Добавить новую</a></center>

<table>

<tr>

<th></th>

<th>Номер</th>

<th>Наименование</th>

<th>Родительская категория</th>

</tr>

<?php

$sql = "SELECT id,name,image,(SELECT name FROM category WHERE id = C.parent_id) AS parent_id FROM category AS C WHERE 1 ORDER BY id";

$result = getMysqliResult($sql);

if($result) while ($category = $result->fetch_assoc()) {

?>

<tr>

<td style='width:70px;'>

<?php if($category[id]<>1) { ?>

<a onclick='return confirmSpelll();' href='?table=category&action=delete&id=<?php echo $category['id']; ?>'><img src='images/del.png'></a>&nbsp;&nbsp;

<a href='?table=category&action=updateform&id=<?php echo $category['id']; ?>'><img src='images/edit.png'></a>

<?php } ?>

</td>

<td><?php echo $category['id']; ?> </td>

<td><?php echo $category['name']; ?> </td>

<td><?php echo $category['parent_id']; ?> </td>

</tr>

<?php

}

echo "</table>";

}

// Обновления записи (форма)

function updateform($id = NULL){

if(!empty($id)) {

$sql = "SELECT * FROM category WHERE id=".$id." ORDER BY id";

$result = getMysqliResult($sql);

if($result)

$category = $result->fetch_assoc();

}

else {

$fields = "id,name,image,parent_id";

foreach(explode(",",$fields) as $f) $category[$f] = '';

}

if(!empty($id)) echo "<h1 class='text-center' style='margin-top:60px;'>Редактирование записи № ".$id." в таблице Категории</h1></center>".PHP_EOL;

else echo "<center><h1 class='text-center' style='margin-top:60px;'>Добавление записи в таблицу Категории</h1></center>".PHP_EOL;

echo "<div class='row'>".PHP_EOL;

echo ' <div class="col-xs-1 col-sm-3 col-md-4 col-lg-4"></div>'.PHP_EOL;

echo ' <div class="p-3 col-xs-10 col-sm-6 col-md-4 col-lg-4" style="margin:10px auto 20px auto; padding:5px 10px; border:1px solid #ddd; border-radius:10px;">'.PHP_EOL;

echo ' <div style="position:relative;width:100%; text-align:right; float:right;right:-13px;">'.PHP_EOL;

echo ' <a href="admin.php"><span style="color:grey; font-size:20px" class="btnicon icon-close"></span></a>'.PHP_EOL;

echo ' </div>'.PHP_EOL;

echo " <form enctype='multipart/form-data' action='?table=category' method='post'>".PHP_EOL;

echo " <input type='hidden' name='id' value = '".$id."'>".PHP_EOL;

?>

<div class='form-group'>


<label style='word-wrap: break-word;'>Наименование</label>

<div>

<input class='form-control' id='name' name='name' type='text' value='<?php echo $category['name']; ?>'/>

</div>

</div>

<div class='form-group'>

<label style='word-wrap: break-word;'>Изображение</label>

<div>

<?php if(!empty($category['image'])) echo '<img width = "25%" src="'.$category['image'].'">'; ?>

<input id = "image" name = "image" type="file" />

<input cols = "70" name = "imagename" type = "hidden" value="<?php echo $category['image']; ?>" />

</div>

</div>

<div class='form-group'>

<label style='word-wrap: break-word;'>Родительская категория</label>

<div>

<select class="form-control" id="parent_id" name="parent_id">

<?php

if(!empty($category['id'])) $sql = "SELECT id,name FROM category AS C WHERE (id<>".$category['id'].") AND (id<>1) ORDER BY name";

else $sql = "SELECT id,name FROM category WHERE 1 ORDER By name";

$result = getMysqliResult($sql);

$options = array();

while ($option = $result->fetch_assoc())

$options[] = getPathCategory($option['id'])." ".$option['id'];

asort($options);

echo '<option value="1" '.is_sel(1,$category['parent_id']).'>Каталог</option>';

foreach($options as $option) {

$cid = (int)substr($option, -3);

echo '<option value="'.$id.'" '.is_sel($cid,$category['parent_id']).'>'.substr($option,0,strlen($option)-5).'</option>';

}

?>

</select>

</div>

</div>

<?php

if(!empty($id)) echo " <input type='hidden' name='action' value = 'update'>".PHP_EOL;

else echo " <input type='hidden' name='action' value = 'insert'>".PHP_EOL;

echo " <input type='hidden' name='table' value = 'category'>".PHP_EOL;

if(!empty($id)) echo ' <div class="text-center"><input class="submit" id="Submit" value="Сохранить изменения" type="submit" name="Submit" ></div>'.PHP_EOL;

else echo ' <div class="text-center"><input class="submit" id="Submit" value="Добавить" type="submit" name="Submit" ></div>'.PHP_EOL;

echo " </form>".PHP_EOL;

echo " </div>".PHP_EOL;

echo "</div>".PHP_EOL;

}

// Обновление записи

function update() {

$post = $_POST;

$files = $_FILES;

if (!empty($files)) {

$uploaddir = 'uploads/';

foreach($files as $ki=>$f) {

$var = $ki."name";

$uploadfile = $uploaddir . str_replace("-".$end,".".$end,str2url(basename($files[$ki]['name'])));

if (basename($files[$ki]['name'])) {

move_uploaded_file($files[$ki]['tmp_name'] , $uploadfile);

$post[$ki] = $uploadfile;

} else $post[$ki] = $post[$var];

unset($post[$var]);

}

}

$table = $post['table'];

$id = $post['id'];

unset($post['Submit'],$post['action'],$post['table'],$post['id']);

$values = array();

foreach($post as $key=>$val) $values[] = $key." = '".$val."'";

$sql = "UPDATE category SET ".implode(",",$values)." WHERE id=".$id;

$result = getMysqliResult($sql);

index();

}

// Добавление записи

function insert() {

$post = $_POST;

$files = $_FILES;

if (!empty($files)) {

$uploaddir = 'uploads/';

foreach($files as $ki=>$f) {

$var = $ki."name";

$uploadfile = $uploaddir . str_replace("-".$end,".".$end,str2url(basename($files[$ki]['name'])));

if (basename($files[$ki]['name'])) {

move_uploaded_file($files[$ki]['tmp_name'] , $uploadfile);

$post[$ki] = $uploadfile;

} else $post[$ki] = $post[$var];

unset($post[$var]);

}

}

$table = $post['table'];

$id = $post['id'];

unset($post['Submit'],$post['action'],$post['table'],$post['id']);

$values = "'".implode("','",array_values($post))."'";

$keys = implode(",",array_keys($post));

$sql = "INSERT INTO category (".$keys.") VALUES (".$values.")";

$result = getMysqliResult($sql);


index();

}

function delete() {

$id = $_GET['id'];

$sql = "DELETE FROM category WHERE id=".$id;

$result = getMysqliResult($sql);

index();

}

// Добавления записи (форма)

function insertform(){

updateform();

}

Приложение Б

Дамп базы данных проекта promo.sql

--

-- База данных: `promo`

--

-- --------------------------------------------------------

--

-- Структура таблицы `cart`

--

CREATE TABLE IF NOT EXISTS `cart` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`user_id` int(11) unsigned DEFAULT NULL,

`product_id` int(11) unsigned DEFAULT NULL,

`kol` int(5) NOT NULL,

PRIMARY KEY (`id`),

KEY `index_foreignkey_cart_user` (`user_id`),

KEY `index_foreignkey_cart_product` (`product_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=21 ;

--

-- Дамп данных таблицы `cart`

--

INSERT INTO `cart` (`id`, `user_id`, `product_id`, `kol`) VALUES

(11, 3, 2, 1),

(18, 6, 13, 1),

(19, 6, 12, 5),

(20, 6, 3, 3);

-- --------------------------------------------------------

--

-- Структура таблицы `category`

--

CREATE TABLE IF NOT EXISTS `category` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`image` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`parent_id` int(11) unsigned DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `index_foreignkey_category_parent` (`parent_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=6 ;

--

-- Дамп данных таблицы `category`

--

INSERT INTO `category` (`id`, `name`, `image`, `parent_id`) VALUES

(1, 'Каталог', '', NULL),

(2, 'Бытовая техника', 'uploads/cat1.jpg', 1),

(3, 'Климатическая техника', 'uploads/cat2.jpg', 1),

(4, 'Электроника', 'uploads/cat3.jpg', 1),

(5, 'Встраиваемая техника', 'uploads/cat4.jpg', 1);

-- --------------------------------------------------------

--

-- Структура таблицы `menu`

--

CREATE TABLE IF NOT EXISTS `menu` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`image` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,

`url` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`content` text COLLATE utf8mb4_unicode_ci,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=13 ;

--

-- Дамп данных таблицы `menu`

--

INSERT INTO `menu` (`id`, `name`, `image`, `url`, `content`) VALUES

(1, 'Главная', '', 'main', ''),

(2, 'О компании', 'uploads/Какая-то картинка.jpg', 'about', '<p>«ГАЛАКТИКА» — сеть торговых центров, один из крупнейших налогоплательщиков региона в категории ритейл и лидер розничной торговли. «ГАЛАКТИКА» стабильно развивается, профессионально совершенствуется, предоставляя возможность покупателям приобретать качественный товар для строительства, ремонта, декорирования и оформления жилья в формате «от и до» и воспользоваться дополнительными услугами в торговых центрах.</p>\r\n\r\n<h3 class="text-primary">Философия и принципы работы компании</h3>\r\n<p>У торговых центров «ГАЛАКТИКА» четко сформирована собственная философия, которая заключается в максимальном удовлетворении потребностей покупателей: индивидуальном подходе, предоставлении лучших цен, обеспечении отличного сервиса и постоянной заботе о потребителях. Ведь залогом успешной деятельности сети «ГАЛАКТИКА» есть главное правило обслуживания клиентов — «ПОКУПАТЕЛЬ ВСЕГДА ПРАВ!». Лояльная ценовая политика и демократический подход к потребностям клиентов показывают, что торговые центры «ГАЛАКТИКА» рассчитаны на разные слои населения.</p>\r\n\r\n<p>Традиционный принцип работы компании — «ПРОИЗВОДИТЕЛЬ-ГАЛАКТИКА-ПОТРЕБИТЕЛЬ» позволяет избежать посредников и дает возможность компании гарантированно получать лучшие цены на рынке и качество товаров для покупателей торговых центров «ГАЛАКТИКА».</p>\r\n<h3 class="text-primary">Социальная ответственность компании</h3>\r\n<p>Социальная ответственность — это неотъемлемая часть стратегии развития компании «ГАЛАКТИКА». Регулярно «ГАЛАКТИКА» принимает активное участие в жизни региона.\r\n</p>\r\n<p>К новогодним праздникам торговые центры «ГАЛАКТИКА» проводят детские утренники, где детей радуют аниматоры, конкурсы, игры и бесплатные подарки.\r\n</p>\r\n<h3 class="text-primary">Уникальность формата компании</h3>\r\n<p>«ГАЛАКТИКА» работает в уникальном формате, который сочетает строительное, хозяйственное и продовольственное направления. Следует отметить, что на сегодняшний день такого формата среди других операторов региона нет. Открытие таких новых ассортиментных групп, как: посуда, текстиль, подарки, «Спорттовары» — широкий ассортимент тренажеров и аксессуаров, товаров для спортивных игр, фитнеса и т.д.; «Детские товары» — игрушки, средства гигиены и ухода, детское питание, «Канцтовары» — товары для творчества, обучения и офиса, «Бытовая техника» — широкая линейка товаров для дома, работы и отдыха, предоставило покупателю возможность комплексно приобрести все необходимое для ведения хозяйства, обустройства дома и быта в одной торговой точке.\r\n</p>\r\n<p>Сейчас компания системно развивается, постоянно совершенствуется и постепенно трансформируется в мультиформатный центр торговли.</p>'),